1 2008-03-04 Zoltan Varga <vargaz@gmail.com>
3 * class.c (mono_class_layout_fields): Set the min alignment of small structs to
4 their size on all platforms for perf reasons.
6 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
8 * reflection.h: Move mono_reflection_is_valid_dynamic_token to
11 * object-internal.h: Same.
13 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
15 * reflection.h: Fix the build I just broke.
17 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
19 * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
20 Test if a token is valid, this remove explicit usage of
21 MonoDynamicImage::tokens from the verifier code.
23 * reflection.h: Added mono_reflection_is_valid_dynamic_token.
25 * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
26 instead of direct access to MonoDynamicImage::tokens.
28 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
30 * verify.c (token_bounds_check): Fix the build I just broke.
32 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
34 * verify.c (token_bounds_check): Fix bounds check for dynamic images.
36 * verify.c (verifier_load_method): Fixed the errors message.
38 * verify.c (mono_method_verify): Fixed a debug message.
40 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
42 * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
43 mono-perfcounters.h, class-internals.h: support for predefined
44 writable counters, query of categories and counters, bugfixes.
46 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
48 * verify.c (do_refanytype): Verify the refanytype opcode.
50 * verify.c (mono_method_verify): Use do_refanytype.
52 2008-02-28 Rodrigo Kumpera <rkumpera@novell.com>
54 * verify.c (do_mkrefany): Verify the mkrefany opcode.
56 * verify.c (mono_method_verify): Use do_mkrefany.
58 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
60 * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
61 mono-perfcounters.c, mono-perfcounters.h: basic performance counter
64 2008-02-27 Zoltan Varga <vargaz@gmail.com>
66 * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
67 the type load exception.
69 2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
71 * verify.c: Added a few FIXME for method signatures
73 * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
74 of mono_method_get_signature and get vararg call working. Removed unused
75 checks for return value.
77 * verify.c (do_refanyval): Verify the refanyval opcode.
79 * verify.c (mono_method_verify): Implemented verification of arglist and
82 2008-02-27 Zoltan Varga <vargaz@gmail.com>
84 * class.c (mono_class_setup_methods): Move the check for synchronized methods on
87 * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
88 it works for AOT as well.
90 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
92 * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
93 with mono_msec_ticks () which is monotonic and doesn't cause bugs when
94 the system time is adjusted.
96 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
98 * icall.c, icall-def.h: use the new time functions (fixes the
99 non-monotonic behaviour of TickCount).
101 2008-02-26 Zoltan Varga <vargaz@gmail.com>
103 * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
106 * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
107 cattr is not finished yet.
109 2008-02-25 Rodrigo Kumpera <rkumpera@novell.com>
111 * verify.c: Proper token validation for field, method and type.
113 2008-02-25 Rodrigo Kumpera <rkumpera@novell.com>
115 * loader.c (field_from_memberref): Generate a loader error if the type is not found.
117 * loader.c (method_from_memberref): Generate type load error instead of method missing
118 if the type is not found.
120 2008-02-23 Zoltan Varga <vargaz@gmail.com>
122 * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
123 some of the conversions caused the generation of a marshal directive exception.
125 2008-02-21 Rodrigo Kumpera <rkumpera@novell.com>
127 verify.c: Report which exception should be thrown by the JIT.
128 Added a lot of FIXME notes.
130 2008-02-22 Mark Probst <mark.probst@gmail.com>
132 * generic-sharing.c: Runtime generic context slots are not
133 instantiated on init anymore. Instead, provide function to do the
134 instantiating on demand.
136 * class-internals.h: Added vtable to runtime generic context.
137 Macros for encoding direct and indirect slot offsets in one
140 2008-02-21 Mark Probst <mark.probst@gmail.com>
142 * object.c, generic-sharing.c: Moved some generic sharing code
143 from object.c to generic-sharing.c.
145 * generic-sharing.c: Added support for extensible runtime generic
148 * metadata-internals.h: Two new hash tables in MonoImage for
149 extensible runtime generic context support.
151 * domain.c: Unregister generic vtables upon domain unloading.
153 * image.c: Destroy new hash tables upon image unloading.
155 * metadata.c: Unregister generic subclasses upon image unloading.
157 * class-internals.h: New data structure for runtime generic
158 context template. New fields in the runtime generic context for
161 * Makefile.am: Added generic-sharing.c.
163 2008-02-21 Rodrigo Kumpera <rkumpera@novell.com>
165 icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
166 there is a pending loader exception, raise it.
168 icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
171 icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken):
176 2008-02-20 Zoltan Varga <vargaz@gmail.com>
178 * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
180 * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
182 * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
183 ref-only requests for compatibility with MS.
185 2008-02-20 Raja R Harinath <harinath@hurrynot.org>
187 * reflection.c (mono_custom_attrs_from_method): Don't silently
188 return an empty list for generic method instances.
189 (mono_custom_attrs_from_param): Likewise.
191 2008-02-20 Rodrigo Kumpera <rkumpera@novell.com>
192 Raja R Harinath <harinath@hurrynot.org>
195 * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
196 * class.c (mono_class_inflate_generic_method_full): Initialize it
197 when a fully-open method is instantiated.
198 * metadata.c (inflated_method_equal, inflated_method_hash): Update
200 * reflection.c (inflate_mono_method): Don't create a temporary context.
202 2008-02-20 Raja R Harinath <harinath@hurrynot.org>
204 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
205 Compute correct value, to prepare for imethod->reflection_info going away.
207 2008-02-19 Zoltan Varga <vargaz@gmail.com>
209 * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
211 2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
213 * verify.c: Implement skip visibility flag.
215 2008-02-18 Rodrigo Kumpera <rkumpera@novell.com>
217 * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
218 which contains an extra field to tell the kind of exception that should be thrown.
220 * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
222 2008-02-17 Raja R Harinath <harinath@hurrynot.org>
224 * loader.c (mono_method_get_param_names): Initialize 'klass' after
227 2008-02-11 Zoltan Varga <vargaz@gmail.com>
229 * class.c (mono_class_layout_fields): Set class->min_align for classes using
230 explicit layout as well. Fixes #360375.
232 2008-02-11 Geoff Norton <gnorton@novell.com>
234 * loader.c: Guard and dereference against inflated generic methods
236 2008-02-10 Gert Driesen <drieseng@users.sourceforge.net>
238 * class.c: Include Retargetable spec in assembly name.
239 * assembly.c: Always include PublicKeyToken spec in assembly name
240 (with value "null" if assembly is not signed), and include
242 * icall-def.h: Added icall for Assembly.get_fullname.
243 * icall.c: Added icall returning the fullname of an assembly.
245 2008-02-09 Zoltan Varga <vargaz@gmail.com>
247 * class.c (mono_class_setup_vtable_general): Add a missing call to
248 mono_class_setup_methods () which is needed in the AOT case.
250 2008-02-08 Rodrigo Kumpera <rkumpera@novell.com>
252 * verify.c (mono_type_get_stack_name): Added. Return the name for the
253 stack type of the given MonoType.
255 * verify.c (verify_type_compatibility_full): Handle the void type.
257 * verify.c (is_compatible_boxed_valuetype): Changed to fit the
258 way stack merging works.
260 * verify.c (store_local): Improved verification message.
262 * verify.c (do_branch_op): If the merging is invalid, the method
263 is unverifiable and not invalid. Improved error message.
265 * verify.c (merge_stacks): Properly merge a boxed valuetype and
266 a reference type diferent than System.Object. Improved error
269 2008-02-07 Rodrigo Kumpera <rkumpera@novell.com>
271 * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
273 * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
274 type of an enum even if the argument is byref.
276 * verify.c: Replace all explicit uses of enumtype and enum_basetype
277 to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
279 * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
281 *verify.c (verify_type_compatibility_full): Make enum types
282 compatible with their base types.
284 * verify.c (is_compatible_boxed_valuetype): Added. Check if both
285 types are compatible for the special case of a boxed valuetype and
288 * verify.c (verify_stack_type_compatibility): The function
289 is_compatible_boxed_valuetype was extracted from here.
291 * verify.c (push_arg): Only set ctx->has_this_store if the method
294 * verify.c (do_ldelem): Fixed a typo in an error message and added
295 strict check for mixing int32 and native int as the array type
298 * verify.c (merge_stacks): Consider boxed valuetypes in the
299 compatibility checks.
301 2008-02-07 Massimiliano Mantione <massi@ximian.com>
302 * profiler.h: (MonoGCEvent): Added start-stop the world events.
304 2008-02-06 Massimiliano Mantione <massi@ximian.com>
305 *class.c: use_new_interface_vtable_code: renamed the env var to have
306 a "MONO_" prefix, and fix the logic to enable it by default.
308 2008-02-06 Massimiliano Mantione <massi@ximian.com>
310 mono_class_setup_vtable_general: rewrote the way in which interface
311 methods are added to vtables. Makes bug-77127.exe pass, and hopefully
312 makes the code more maintainable.
313 For now the old code is still there, and can be activated setting
314 the env var "USE_NEW_INTERFACE_VTABLE_CODE".
316 2008-02-06 Rodrigo Kumpera <rkumpera@novell.com>
318 * verify.c: guarded some debug functions around and #ifdef.
320 * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
322 2008-02-06 Zoltan Varga <vargaz@gmail.com>
324 * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
325 changes for now since they seem to break too many things.
327 2008-02-05 Mark Probst <mark.probst@gmail.com>
329 * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
330 mono_marshal_find_nonzero_bit_offset): Added macro and function
331 for finding the byte- and bit-offset of a bitfield within a
334 2008-02-05 Zoltan Varga <vargaz@gmail.com>
336 * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
337 (mono_marshal_get_struct_to_ptr): Ditto.
339 * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of
342 2008-02-03 Zoltan Varga <vargaz@gmail.com>
344 * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
345 between methods for non-corlib types.
347 2008-02-02 Geoff Norton <gnorton@novell.com>
349 * loader.c (mono_method_get_param_names): Populate the parameter name for
350 generic parameters as well. (Fixes #342536)
352 2008-01-31 Rodrigo Kumpera <rkumpera@novell.com>
354 * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
356 * verify.c (do_invoke_method): Fix for calling with byref structs.
358 * verify.c (do_cast): push a boxed value type based on the type token and not
361 2008-01-31 William Holmes <billholmes54@gmail.com>
363 * process.c (process_module_string_read): Check the size returned form
364 VerQueryValue to avoid out of memory exception.
366 2008-01-30 Zoltan Varga <vargaz@gmail.com>
368 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
369 Handle properly modules which are not in the moduleref table. Fixes
372 2008-01-29 Zoltan Varga <vargaz@gmail.com>
374 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
375 the dynamic case which is now in managed code.
376 (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
378 * marshal.c (mono_string_to_bstr): Fix a warning.
379 (init_com_provider_ms): Ditto.
381 * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
383 * exception.c (mono_get_exception_out_of_memory): New helper function.
385 2008-01-28 Jonathan Chambers <joncham@gmail.com>
387 * marshal.c: Add support for BSTR marshalling
388 using other COM systems.
390 Code is contributed under MIT/X11 license.
392 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
394 * object.c (mono_runtime_invoke_array): reverted previous
395 commit as it breaks the build.
397 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
399 * object.c (mono_runtime_invoke_array): Verify arguments for
400 invalid types. Fixes #348522.
402 2008-01-28 Rodrigo Kumpera <rkumpera@novell.com>
404 * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
405 non-final virtual calls using call.
407 * verify.c (do_invoke): fixed some TODOs.
409 * verify.c (push_arg): set has_this_store for "ldarga 0".
411 2008-01-27 Zoltan Varga <vargaz@gmail.com>
413 * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
414 which belong to an inflated class. Fixes #356531.
416 2008-01-26 Robert Jordan <robertj@gmx.net>
418 * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
419 which resort to FindFirstFile when a certain error condition
420 (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
421 Code is contributed under MIT/X11 license.
423 2008-01-24 Jonathan Chambers <joncham@gmail.com>
425 * marshal.c (emit_marshal_string): Fix out string marshalling
426 to use specified encoding. Fixes #323900.
428 Code is contributed under MIT/X11 license.
430 2008-01-24 Raja R Harinath <harinath@hurrynot.org>
432 * class.c (mono_class_inflate_generic_method_full): Don't modify
433 iresult->context after cache check.
435 2008-01-23 Zoltan Varga <vargaz@gmail.com>
437 * class.c (mono_class_inflate_generic_method_full): Change the
438 struct assignments to memcpy for better visibility and add some comments.
440 2008-01-23 Dick Porter <dick@ximian.com>
442 * threads.c (mono_threads_set_shutting_down): Simplify shutdown
443 procedure, and make it work on windows.
445 2008-01-22 Zoltan Varga <vargaz@gmail.com>
447 * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
448 a MonoReflectionTypeBuilder since it is always of that type.
450 * reflection.c (mono_type_get_object): Remove an unneccesary check.
452 * reflection.c (mono_generic_class_get_object): Simplify this a bit.
454 * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
456 * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
458 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
460 * reflection.c (mono_reflection_create_runtime_class): Remove already created
461 instantiations from the type cache.
463 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
465 * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
467 * verify.c (do_unbox_value): push a controled mutability managed pointer.
469 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
471 * verify.c (do_ldstr): added, verifies if the #US token is valid.
473 * verify.c (mono_method_verify): removed old TODO
475 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
477 * verify.c (do_newobj): add visibility check.
479 2008-01-21 Rodrigo Kumpera <rkumpera@novell.com>
481 * verify.c (do_load_function_ptr): add visibility check.
483 2008-01-21 Massimiliano Mantione <massi@ximian.com>
485 mono_generic_class_get_class: hook profiler events.
486 mono_field_get_offset: added to support heap-shot in the new profiler.
487 *class.h: exported mono_field_get_offset.
489 mono_reflection_setup_internal_class: hook profiler events.
491 2008-01-20 Zoltan Varga <vargaz@gmail.com>
493 * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions'
494 argument here too and use it to avoid checking for pending exceptions if
497 2008-01-20 Gert Driesen <drieseng@users.sourceforge.net>
499 * assembly.c (build_assembly_name): add arg for passing the assembly
500 flags. Do not consider a PublicKey with value "null" valid.
501 (mono_assembly_name_parse_full): added boolean argument that will be
502 set if the assembly name contains a PublicKeyToken spec. Added support
503 for the Retargetable spec for which only Yes or No are allowed as valid
504 value. Consider assembly name invalid if Retargetable spec is set, but
505 either version, culture or public key (token) are not specified.
506 * metadata-internals.h: sync signature of mono_assembly_name_parse_full
507 with implementation in assembly.c.
508 * icall.c (fill_reflection_assembly_name): also copy assembly flags
509 from MonoAssemblyName.
510 (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
511 introduced argument for mono_assembly_name_parse_full to know if the
512 assembly name has a PublicKeyToken spec, and if it has instruct
513 fill_reflection_assembly_name to use default value for keyToken (if
514 PublicKeyToken is null).
516 2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
518 * verify.c (mono_method_verify): fixed ovf ops with
519 float values. They are unverifiable now.
521 2008-01-18 Rodrigo Kumpera <rkumpera@novell.com>
523 * class.c (set_failure_from_loader_error): add BadImageException to the
524 list of exceptions that can cause a type to fail to load.
526 * class.c (mono_class_get_exception_for_failure): same.
528 2008-01-17 Rodrigo Kumpera <rkumpera@novell.com>
530 * verify.c (in_any_exception_block): added, check if offset
531 is part of any exception handling clause.
533 * verify.c (get_stack_type): added VAR and MVAR types.
535 * verify.c (do_stobj): better error messages.
537 * verify.c (do_cpobj): added, check cpobj.
539 * verify.c (do_initobj): added, check initobj.
541 * verify.c (do_sizeof): added, check sizeof.
543 * verify.c (do_localloc): added, check localloc.
545 * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
547 2008-01-17 Zoltan Varga <vargaz@gmail.com>
549 * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
550 save_lmf/restore_lmf opcodes.
552 * threads.c (mono_threads_install_notify_pending_exc): New function to
553 install a callback notifying the JIT there is a pending exception on a thread.
554 (mono_thread_request_interruption): Call the new callback.
555 (mono_thread_get_and_clear_pending_exception): New function to return the
556 exception pending on a thread.
558 * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
559 to turn off checking for pending exceptions.
560 (mono_marshal_get_native_wrapper): Ditto.
562 2008-01-16 Zoltan Varga <vargaz@gmail.com>
564 * threads-types.h: Get rid of the unnecessary extern declarations.
566 2008-01-16 Gert Driesen <drieseng@users.sourceforge.net>
568 * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
569 return field from parent class if not private.
570 (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
571 returns fields from parent class if they are not private.
572 (method_nonpublic): added function to determine if a given method
573 should be considered non-public. Returns false for private methods
574 on parent class, and internal methods from parent on the 1.0 profile.
575 (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
576 use method_nonpublic function to determine whether method should be
578 (property_accessor_public): use newly introduced method_nonpublic
579 function to determine whether accessor is non-public.
580 (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
581 event from parent class if not private. Only return static event if
582 Static flag is set, and only return static event from parent class if
583 FlattenHierarchy flag is set.
584 (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
585 include non-private events from parent class.
587 2008-01-16 Zoltan Varga <vargaz@gmail.com>
589 * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
592 2008-01-16 Wade Berrier <wberrier@novell.com>
594 * security.c: Add assembly.h header to appease some warnings
596 2008-01-16 Dick Porter <dick@ximian.com>
598 * process.c (process_module_string_read): Remove trailing null
601 2008-01-16 Mark Probst <mark.probst@gmail.com>
603 * class-internals.h: A new data structure describing the layout of
604 a runtime generic context (MonoRuntimeGenericContextTemplate).
606 * metadata-internals.h: Added a hash table to MonoDomain that maps
607 from open generic classes to their runtime generic context
610 * object.c: Building of the runtime generic context, including
611 proper handling of generic type arguments of superclasses.
612 Building of the runtime generic context according to the template.
614 2008-01-15 Zoltan Varga <vargaz@gmail.com>
616 * class.c (mono_class_setup_fields): Set field.count for generic instances.
619 * image.c (do_mono_image_open): Pass TRUE as last_exists to
620 mono_portability_find_file (). Fixes #325466.
621 (mono_image_get_public_key): Fix a warning.
623 2008-01-14 Zoltan Varga <vargaz@gmail.com>
625 * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
627 (mono_class_from_name_case): Ditto.
629 2008-01-13 Eyal Alaluf <eyala@mainsoft.com>
631 * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
632 common storage for the tables used in the System/NumberFormatter class.
634 2008-01-13 Zoltan Varga <vargaz@gmail.com>
636 * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
638 2008-01-11 Rodrigo Kumpera <rkumpera@novell.com>
640 * verify.c (get_boxable_mono_type): check if the token is valid.
642 * verify.c (set_stack_value): changed to add an error if an
643 invalid type is set on stack. Changed all callers due to signature change.
645 * verify.c (do_stobj): implement stobj validation.
647 2008-01-11 Zoltan Varga <vargaz@gmail.com>
649 * reflection.c (reflection_methodbuilder_to_mono_method): No need to
650 set container->is_method, it was set earlier.
652 * metadata.c (type_in_image): Handle MVARs which belong to not finished
655 * reflection.c (mono_reflection_initialize_generic_parameter): Set
656 is_method of the generic container to TRUE for methods.
658 2008-01-10 Zoltan Varga <vargaz@gmail.com>
660 * metadata.c (type_in_image): Handle type parameters properly.
662 * class-internals.h (MonoGenericParam): Add an 'image' argument to track
663 memory ownership of this structure.
665 2008-01-10 Rodrigo Kumpera <rkumpera@novell.com>
667 * verify.c (get_boxable_mono_type): make typedref types been just
668 unverifiable. check for void type.
670 * verify.c (do_unbox_any): added, verify opcode unbox.any.
672 * verify.c (do_load_function_ptr): accept method spec tokens.
674 2008-01-10 Zoltan Varga <vargaz@gmail.com>
676 * marshal.c (mono_class_native_size): Always set *align even if this is called
679 2008-01-09 Zoltan Varga <vargaz@gmail.com>
681 * verify.c (mono_verify_corlib): Remove this as it was not used and was
684 2008-01-09 Rodrigo Kumpera <rkumpera@novell.com>
686 * verify.c: removed some old unused tables. A huge bunch of small fixes
687 to things found while testing the verifier with mono basic.
689 * verify.c (dump_stack_value): dump null literal flag to.
691 * verify.c (verify_type_compatibility_full): fix comparison
692 for types that have a generic super type.
694 * verify.c (verify_stack_type_compatibility): fix compatibility
695 between null literals and reference types. fix compatibility between
696 boxed valuetypes and object. fix corner case test for enums.
698 * verify.c (do_cmp_op): proper verification of cgt.un in case
701 * verify.c (do_invoke_method): fix error message.
703 * verify.c (do_store_indirect
705 * verify.c (check_is_valid_type_for_field_ops): proper verification
706 of managed pointers to valuetypes and boxed valuetypes. proper verification
709 * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
710 allow token to be a reference type.
712 * verify.c (do_cast): proper handling of boxes valuetypes.
714 * verify.c (do_stelem): proper handling of storing a boxed valuetype
717 * verify.c (mono_method_verify): pass the opcode to do_cmp_op
718 to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
719 fixed the decoding of unbox_any
721 2008-01-08 Zoltan Varga <vargaz@gmail.com>
723 * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
725 2008-01-08 Rodrigo Kumpera <rkumpera@novell.com>
727 * verify.c (do_newobj): do delegate verification.
729 * verify.c (verify_delegate_compatibility): perform delegate
732 * verify.c (verify_ldftn_delegate): perform tests related to
735 * verify.c (mono_delegate_signature_equal): perform the
736 slightly diferent signature comparison required by delegates.
738 * metadata.c (mono_metadata_type_equal_full): added and exported
739 as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
740 allows signature only comparison.
742 * metadata-internal.h (mono_metadata_type_equal_full): added and exported
745 2008-01-07 Rodrigo Kumpera <rkumpera@novell.com>
747 * verify.c: added a bunch of stack_slot_* functions to
748 make access to stack slot type easier. This is required to
749 allow optional flags, like null literal, boxed value and
751 All access paths to IlStackDesc::stype have been changed
752 to use these new funcions.
753 Removed a bunch of unused functions and cleared all warnings.
754 This patch introduces the usage of the this pointer and
757 2008-01-07 Zoltan Varga <vargaz@gmail.com>
759 * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
761 2008-01-06 Zoltan Varga <vargaz@gmail.com>
763 * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
764 match managed version.
766 * appdomain.c: Bump corlib version.
768 * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
771 2008-01-06 Gert Driesen <drieseng@users.sourceforge.net>
773 * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
774 Set public key token to zero-length byte array if assembly is not
777 2008-01-05 Zoltan Varga <vargaz@gmail.com>
779 * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
780 writing a vtype array elem.
782 2007-01-05 Gert Driesen <drieseng@users.sourceforge.net>
784 * assembly.c (build_assembly_name): return FALSE if length of token is
785 not 16 (if not "null").
786 (mono_assembly_name_parse_full): return FALSE if value of version,
787 culture, token or key is 0.
788 * icall.c (fill_reflection_assembly_name): add boolean arguments to
789 specify whether public key and public key token must be set to default
790 value (zero-length byte array) if not available. Set versioncompat to
791 SameMachine. If public key is available or the default is set, then
793 (ves_icall_System_Reflection_Assembly_FillName): if no public key
794 is available, use empty byte array as default value. On the 2.0
795 profile, use default value for public key token if not set.
796 (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
797 profile, use default value for public key if not set. On the 2.0
798 profile, use default value for public key token if not set.
799 (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
800 default values for public key and public key token.
802 2008-01-05 Zoltan Varga <vargaz@gmail.com>
804 * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
805 field to keep it in synch with the managed object.
807 * marshal.c (emit_marshal_object): Add support for byref marshalling of
808 delegates. Fixes #351520.
810 * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
811 contains defined memory.
813 * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
815 * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
817 * sgen-gc.c (check_consistency): New helper function to do a consistency check
818 of the GC data structures.
820 * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
822 * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
824 * object.c (mono_array_full_copy): Fix detection of whenever to use a write
826 (mono_array_clone_in_domain): Ditto.
827 (mono_array_clone_in_domain): Ditto.
829 * threads.c (start_wrapper): Register the thread start argument as a GC root.
830 (cache_culture): Use a write barrier.
832 * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
833 (ves_icall_get_property_info): Ditto.
835 * object.h (MONO_STRUCT_SETREF): New macro.
837 * class-internals.h (MonoStats): Add some GC statistics.
839 * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
841 2008-01-04 Andreas Faerber <andreas.faerber@web.de>
843 * exception.c (mono_exception_from_name_two_strings):
844 Break from loop after method is found.
846 2008-01-04 Dick Porter <dick@ximian.com>
848 * process.c (process_module_string_read): Rename variable to
849 reflect correct usage, after fixing bug 345972.
851 2008-01-03 Rodrigo Kumpera <rkumpera@novell.com>
853 * verify.c (mono_type_create_fnptr_from_mono_method):
854 created a MonoType function pointer instance to be used during
855 verification. The verifier releases this memory at end.
857 * verify.c (mono_method_is_constructor): extracted repeated
858 checks for constructor into a single class.
860 * verify.c (do_push_field): use new extracted method
861 for constructor check.
863 * verify.c (do_newobj): same.
865 * verify.c (do_ldftn): renamed to do_load_function_ptr
866 and make it verify ldvirtftn too.
868 * verify.c (mono_method_verify: proper verification
869 of ldvirtftn. release created MonoMethod instances.
871 2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
873 * verify.c (token_bounds_check): added.
875 * verify.c (do_ldftn): added.
877 * verify.c (mono_method_verify): proper verificartion of ldftn.
879 2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
881 * metadata.c (mono_metadata_decode_row): Assert if index is bigger
882 than the table row count. It's the resposibility of the caller to
883 make the bounds check and raise the correct error.
885 * metadata.c (mono_metadata_decode_row_col): Same.
887 * loader.c (mono_get_method_from_token): perform bounds check
888 on token for methoddef table.
890 2007-12-29 Miguel de Icaza <miguel@novell.com>
893 (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
894 assert into a negative result, the managed code already coped with
897 Some folks on Windows reported this error.
899 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
901 * appdomain.c: Bump corlib version.
903 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
904 CultureInfo.CreateCulture to create CultureInfo for name.
905 (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
906 create CultureInfo for name. Fixes bug #347174.
908 2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
910 * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
913 * verify.c (is_valid_branch_instruction): allow branching to the
914 first instruction of the protected block.
916 * verify.c (is_valid_cmp_branch_instruction): same.
918 * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
919 avoid double initialization.
921 * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
922 detect which cases the eval stack should just be copied.
924 * verify.c (mono_method_verify): check if the eval stack
925 is empty when entering a protected block.
927 2007-12-27 Rodrigo Kumpera <rkumpera@novell.com>
929 * verify.c: added is_clause_in_range, is_clause_inside_range,
930 is_clause_nested and verify_clause_relationship. They perform
931 the verifications stated in P1 12.4.2.7.
933 * verify.c (mono_method_verify): remove some unused variables,
934 add the new exception clause checks, add instruction border
935 checks for protected block start/end, improved some error
936 messages and fixed a bug in the way invalid instruction access
939 2007-12-26 Zoltan Varga <vargaz@gmail.com>
941 * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
942 from GC 7.0 if available.
944 * object.c: Remove an unused define.
946 * object.c (mono_class_compute_gc_descriptor): Fix a warning.
948 * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
950 * null-gc.c (mono_gc_make_descr_for_array): Implement.
952 * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
954 * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
955 to take the same arguments as the other make_descr functions.
957 * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
959 * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
962 * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
965 * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc ()
968 * boehm-gc.c (mono_gc_register_root): Fix a warning.
970 * null-gc.c (mono_gc_register_root): Fix a warning.
972 * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
974 * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
975 (mono_gc_base_init): Call GC_init ().
977 * null-gc.c: Define mono_gc_register_root () as a no-op.
979 * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
981 2007-12-24 Rodrigo Kumpera <rkumpera@novell.com>
983 * verify.c: add prototype for merge_stacks at top
985 * verify.c (do_switch): added.
987 * verify.c (merge_stacks): on some cases the stack merging
988 was not happening properly. Unequal stack sizes at merge
989 points should be invalid.
991 * verify.c (mono_method_verify): added more debug info on stack state.
992 verify switch properly.
994 2007-12-24 Zoltan Varga <vargaz@gmail.com>
996 * method-builder.h: New file, moved the mono_mb_ declarations here from
999 * boehm-gc.c marshal.c: Include method-builder.h.
1001 * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1003 * marshal.c: Remove some code which is now in method-builder.c.
1005 2007-12-23 Zoltan Varga <vargaz@gmail.com>
1007 * method-builder.c: New file, extraction of the method builder functionality
1010 * marshal.c: Move the mb functions into method-builder.c.
1012 * marshal.h marshal.c: Export some mono_mb_... functions.
1014 * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1016 * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1019 * class.c (mono_class_get_full): Check the token type in the dynamic case.
1021 * loader.c (mono_field_from_token): Ditto.
1023 * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1026 * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1029 * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1030 a helper function for setting it.
1032 * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1035 * assembly.c: Significally simplify code now that referenced assemblies are
1036 loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1038 * threads.h: Don't include the internal threads-types.h header file. Fixes
1041 2007-12-21 Rodrigo Kumpera <rkumpera@novell.com>
1043 * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1044 instructions that were target of branches or are at protected block boundaries.
1046 * verify.c (in_same_block): handle filter clauses.
1048 * verify.c (is_valid_branch_instruction): added. checks the target of
1049 instructions br or brtrue/false.
1051 * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1052 binary branch instructions such as beq and bge.
1054 * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1055 and made it pin the instruction as been part of the exception block.
1057 * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1060 * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1063 * verify.c (do_ret): ret from a protected block is unverifiable and
1066 * verify.c (do_static_branch): verify br and br.s instructions.
1068 * verify.c (merge_stacks): add extra param to support detection
1069 of branches in the middle of instructions.
1071 * verify.c (mono_method_verify): verify branches and exception blocks
1072 that target the middle of instructions. Proper verification of br and br.s.
1074 2007-12-21 Zoltan Varga <vargaz@gmail.com>
1076 * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1077 skip_visibility field.
1078 (reflection_methodbuilder_from_dynamic_method): Ditto.
1080 * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1081 registrations. Fixes #348193.
1083 * threads.h: Move the internal mono_thread_get_pending_exception () to
1084 threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1086 2007-12-20 Zoltan Varga <vargaz@gmail.com>
1088 * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1089 icall registration. Fixes #348193.
1091 * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1092 for corlib classes into object. Fixes #349621.
1094 2007-12-20 Gert Driesen <drieseng@users.sourceforge.net>
1096 * icall.c (property_accessor_nonpublic): new function to determine
1097 whether an accessor allows a property to be considered non-public.
1098 Returns false for private accessor(s) from parent class, and internal
1099 accessor(s) from parent on 2.0 profile (and higher).
1100 (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1101 to determine whether property should be included if NonPublic flag
1102 is set. Fixes bug #349078.
1104 2007-12-20 Rodrigo Kumpera <rkumpera@novell.com>
1106 * verify.c (init_stack_with_value): added.
1108 * verify.c (mono_method_verify): extracted common
1109 code for exception initialization into init_stack_with_value.
1111 * verify.c (mono_method_verify): initialize the exception
1112 for handler clauses as well.
1114 * verify.c (mono_method_verify): fix the exception clause
1115 ordering rules, it should use handler end offset and not
1118 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1120 * rawbuffer.c: remove useless warning.
1122 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1124 * threads.h, threads-types.h: move functions to the correct header
1127 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1129 * verify.c (mono_method_verify): proper verification
1130 of exception handling clauses ranges and fallthru in
1131 and out of protected blocks.
1133 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1135 * verify.c (mono_method_verify): fixed compilation issue.
1137 2007-12-19 Rodrigo Kumpera <rkumpera@novell.com>
1139 * verify.c (mono_method_verify): a printf slipped in, changed
1140 to use verifier debug macro.
1142 2007-12-18 Rodrigo Kumpera <rkumpera@novell.com>
1144 * verify.c (is_correct_leave): check for filter clauses.
1146 * verify.c (do_filter): added.
1148 * verify.c (mono_method_verify): property verification of leave.
1151 2007-12-18 Mark Probst <mark.probst@gmail.com>
1153 * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1154 Win32 build, until we figure out how to do the proper thing on
1157 2007-12-17 Zoltan Varga <vargaz@gmail.com>
1159 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1160 by the previous patch.
1162 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1163 the assembly resolve handler for refonly assemblies.
1165 2007-12-17 Mark Probst <mark.probst@gmail.com>
1167 * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1168 Make sure only one thread is allowed to commence shutdown, and
1169 don't allow new threads to be started once shutdown is in
1172 2007-12-14 Rodrigo Kumpera <rkumpera@novell.com>
1174 * verify.c (is_correct_endfilter): added.
1176 * verify.c (is_unverifiable_endfilter): added.
1178 * verify.c (do_endfilter): added.
1180 * verify.c (mono_method_verify): property verification of endfilter
1181 and fixed a corner case or endfinally.
1183 2007-12-13 Rodrigo Kumpera <rkumpera@novell.com>
1185 * verify.h: new flags to support fail fast of unverifiable code and
1186 do non-strict verification. Non-strict verification is required to
1187 have MS runtime compatibility. There are a huge amount of unverifiable
1188 code that it accepts as verifiable. The strict mode verifies the code
1190 Non-strict mode will be required in cases where code needs to be
1191 accepted as verifiable but fails under strict mode.
1193 * pedump.c: added support to fail fast and non-strict verification.
1195 * verify.c: added support for both fail fast and non-strict verification.
1197 2007-12-12 Rodrigo Kumpera <rkumpera@novell.com>
1199 * verify.c (is_correct_endfinally): added.
1201 * verify.c (mono_method_verify): property verification of endfinally.
1203 2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
1205 * verify.c (in_any_block): check for filter clauses.
1207 * verify.c (is_correct_rethrow): added.
1209 * verify.c (mono_method_verify): property verification of rethrow.
1211 * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1213 2007-12-11 Rodrigo Kumpera <rkumpera@novell.com>
1215 * verify.c (do_throw): added.
1217 * verify.c (mono_method_verify): property verification of throw
1219 2007-12-11 Zoltan Varga <vargaz@gmail.com>
1221 * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1222 assemblies. Fixes #346425.
1224 2007-12-10 Zoltan Varga <vargaz@gmail.com>
1226 * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1229 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1231 * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1232 prevent asserts when this is called with a token which might not be valid.
1234 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1235 lookup_dynamic_token_class with valid_token == FALSE.
1237 * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1239 * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1241 * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1243 2007-12-10 Mark Probst <mark.probst@gmail.com>
1245 * gc.c: Don't delay threadpool thread finalization unless Mono is
1248 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1250 * threads.c: turn an assert into a non-fatal warning.
1252 2007-12-09 Robert Jordan <robertj@gmx.net>
1254 * icall.c (GetVirtualMethod): Add missing argument validation.
1256 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1258 * verify.c (do_cast): added.
1260 * verify.c (mono_method_verify): property verification of castclass and isinst.
1263 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1265 * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
1267 * verify.c (do_stelem): added.
1269 * verify.c (mono_method_verify): property verification of stelem.X.
1271 2007-12-07 Mark Probst <mark.probst@gmail.com>
1273 * class.c, class-internals.h: Introduce an environment variable
1274 (MONO_GENERIC_SHARING) through which the extent of generic code
1275 sharing can be controlled (share all classes, share only corlib
1276 classes, or share nothing).
1278 * object.c: Only create runtime generic context for classes for
1279 which sharing is enabled.
1281 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1283 * verify.c (do_ldelem): refactor it to work with ldelem.any.
1285 * verify.c (mono_method_verify): property verification of ldelem.any.
1287 2007-12-06 Rodrigo Kumpera <rkumpera@novell.com>
1289 * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
1290 added ldelem.X opcodes.
1292 * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
1294 * verify.c: proper verification of ldelem.X
1296 2007-12-06 Zoltan Varga <vargaz@gmail.com>
1298 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
1300 2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
1302 * verify.c (mono_method_verify): null literal requires special handling,
1303 the value pushed on stack need to be flagged as so.
1305 * verify.c (do_ldelema): Verify ldelema properly.
1307 2007-12-05 Rodrigo Kumpera <rkumpera@novell.com>
1309 * verify.c: Verify ldlen properly.
1311 2007-12-05 Zoltan Varga <vargaz@gmail.com>
1313 * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
1314 to the target object's type. Fixes #346160.
1316 2007-12-05 Dick Porter <dick@ximian.com>
1318 * threadpool.c (socket_io_add_poll): Asynchronous connect() on
1319 Solaris needs the same workaround as BSD-derived systems. Fixes
1320 bug 323524, patch by Burkhard Linke
1321 <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
1323 2007-12-04 Gert Driesen <drieseng@users.sourceforge.net>
1325 * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
1326 handle to use when error dialog is shown; otherwise, update mask
1327 to show no error dialog when an error occurs.
1329 2007-12-03 Zoltan Varga <vargaz@gmail.com>
1331 * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
1333 * class.c (mono_class_get_field_default_value): New helper function to initialize
1334 field->def_type and field->data.
1336 2007-11-30 Zoltan Varga <vargaz@gmail.com>
1338 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
1341 * object.c (mono_runtime_create_delegate_trampoline): New helper function.
1343 * marshal.c: Avoid depending on delegate->method_info being set.
1345 * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
1347 * object.c (mono_delegate_ctor): Set delegate->method.
1349 * object-internals.h (struct _MonoDelegate): Add 'method' field.
1351 * appdomain.c: Bump corlib version.
1353 2007-11-27 Raja R Harinath <harinath@gmail.com>
1355 * metadata.c (mono_generic_inst_equal_full): Short-circuit
1356 equality check if we're comparing canonicalized MonoGenericInsts.
1358 2007-11-23 Zoltan Varga <vargaz@gmail.com>
1360 * class.c (generic_array_methods): Call mono_class_setup_methods () before
1361 accessing class->methods.
1363 2007-11-22 Dick Porter <dick@ximian.com>
1365 * threads.c: Ensure that the synch_cs is set before trying to use
1368 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
1370 * profiler.c: r89126 broke the statistial profiler, unbreak.
1372 2007-11-22 Martin Baulig <martin@ximian.com>
1374 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
1377 (mono_debug_debugger_version): Bump to 3.
1378 (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
1379 -> mono_debugger_class_initialized().
1381 * mono-debug-debugger.c
1382 (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
1385 (mono_debugger_start_class_init_func): Removed.
1386 (mono_debugger_class_loaded_methods_func): Added.
1387 (mono_class_setup_methods): Call it here.
1389 2007-11-22 Martin Baulig <martin@ximian.com>
1392 (mono_debug_add_delegate_trampoline): New public method.
1393 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
1396 (MonoSymbolTable): Added `global_data_table'.
1397 (MonoDebuggerTypeKind): Removed.
1399 2007-11-21 Zoltan Varga <vargaz@gmail.com>
1401 * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
1404 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1406 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1408 * object.c: some fields don't have a valid rva: ignore them (bug #343083).
1410 2007-11-20 Martin Baulig <martin@ximian.com>
1412 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
1414 * mono-debug-debugger.c
1415 (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
1416 (mono_debugger_remove_breakpoint): Likewise.
1417 (mono_debugger_check_breakpoints): Likewise.
1418 (mono_debugger_register_class_init_callback): New public method.
1419 (mono_debugger_remove_class_init_callback): Likewise.
1420 (mono_debugger_add_type): Likewise.
1422 * mono-debug-debugger.h
1423 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
1425 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
1427 * class.c: more interface implementations needed for the
1428 array enumerator (fixes bug #341112).
1430 2007-11-18 Gert Driesen <drieseng@users.sourceforge.net>
1432 * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
1433 fix ParamName of ArgumentNullExceptions.
1435 2007-11-17 Miguel de Icaza <miguel@novell.com>
1437 * reflection.c (mono_reflection_encode_sighelper): Generate the
1438 modopts and modreqs. I have a useless test that crashes monodis,
1439 but that shows the code working.
1441 2007-11-17 Zoltan Varga <vargaz@gmail.com>
1443 * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
1444 (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
1446 2007-11-15 Dick Porter <dick@ximian.com>
1448 * threads.c (ves_icall_System_Threading_Thread_Join_internal):
1449 When joining a thread, it's the thread that's calling Join that
1450 gets WaitSleepJoin state not the target. Fixes the standalone
1451 test case in bug 334740, and hopefully the whole bug too.
1453 2007-11-15 Dick Porter <dick@ximian.com>
1455 * process.c: Read file version info from the files pointed at by
1456 process modules, not the current process. Fixes bug 315969.
1458 Use windows typedef names in some places to fix warnings on the
1461 2007-11-15 Mark Probst <mark.probst@gmail.com>
1463 * image.c, metadata-internals.h: Added a generic_class_cache hash
1464 to MonoImage for looking up generic classes when sharing generics.
1466 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1468 * sgen-gc.c: warning cleanups.
1470 2007-11-15 Zoltan Varga <vargaz@gmail.com>
1472 * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1473 inherited properties.
1475 2007-11-14 Mark Probst <mark.probst@gmail.com>
1477 * object.c, class-internals.h: Added more information to the
1478 runtime generic context.
1480 2007-11-13 Zoltan Varga <vargaz@gmail.com>
1482 * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
1483 instead of just the target method. Generalize the abstract method handling to
1484 handle any non-static method.
1486 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1487 mono_marshal_get_delegate_invoke () signature change.
1489 2007-11-13 Mark Probst <mark.probst@gmail.com>
1491 * class.c, class-internals.h: Made
1492 mono_type_get_basic_type_from_generic () public. Fixed member
1493 access check for shared generics.
1495 * loader.c: Don't insert field into field cache if it's part of a
1496 non-inflated generic class.
1498 * domain.c, domain-internals.h: The generic sharing context is now
1499 part of the jit info data structure. Added two accessor
1502 2007-11-12 Zoltan Varga <vargaz@gmail.com>
1504 * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
1505 the array Get/Set/Address methods, since the JIT inlines them.
1507 * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
1509 * image.c (mono_image_close): Free runtime_invoke_direct_cache.
1510 (mono_image_init): Initialize runtime_invoke_direct_cache.
1512 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
1513 mono_marshal_get_delegate_invoke signature change.
1515 * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
1516 an additional argument. Add support for invoking abstract methods.
1518 * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
1520 * image.c (mono_image_close): Free delegate_abstract_invoke_cache.
1522 2007-11-09 Mark Probst <mark.probst@gmail.com>
1524 * class.c: Do field layout for open generic classes as well.
1526 2007-11-09 Mark Probst <mark.probst@gmail.com>
1528 * gc.c, gc-internal.h: Don't finalize threadpool threads with
1529 other objects, because the threadpool is still around. Put them
1530 in a list instead and after finalizing all other objects in the
1531 root domain shut down the thread pool and then finalize the
1532 threads. Fixes bug #337383.
1534 * threads.c, thread-types.h: New mono_thread_create_internal()
1535 function for marking a thread with the threadpool flag before it
1536 started. Set synch_cs to NULL after freeing it.
1538 * threadpool.c: Mark threadpool threads before they start.
1540 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1542 * reflection.h, reflection.c: don't export random functions
1543 and lazy load dbnull and missing objects.
1545 2007-11-07 Jonathan Chambers <joncham@gmail.com>
1547 * class.c: Initialize COM types if COM interfaces
1548 are present (not just COM classes).
1550 Code is contributed under MIT/X11 license.
1552 2007-11-07 Massimiliano Mantione <massi@ximian.com>
1554 create_dynamic_mono_image: hook module profiler events (dynamic case).
1555 mono_image_basic_init: hook assembly profiler events (dynamic case).
1557 2007-11-07 Massimiliano Mantione <massi@ximian.com>
1559 simple_appdomain_unload: completely terminate the profiler
1560 instead of only processing the statistical samples.
1561 simple_shutdown: make sure this is really called exactly once,
1562 even in multithreaded applications, and always listen to
1564 * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
1565 here, the "[un]load" functions will do it.
1566 Fixes bugs #333791 and #325261.
1568 2007-11-07 Geoff Norton <gnorton@novell.com>
1570 * socket-io.c: Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
1571 rather than depend on __APPLE__.
1573 2007-11-07 Mark Probst <mark.probst@gmail.com>
1575 * icall.c: Safety checks in InitializeArray. Fixes bug #324535.
1577 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
1579 * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
1580 UTF16 MonoString. Fix the crash from bug #335488
1582 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
1584 * marshal.c: Correct (for non-Win32 OS) length != size in
1585 mono_string_from_bstr. Fix #339530.
1587 2007-11-06 Geoff Norton <gnorton@novell.com>
1589 * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
1592 2007-11-05 Kornél Pál <kornelpal@gmail.com>
1594 * process.c: Added run-time GetProcessId API detection for Windows.
1596 2007-11-04 Miguel de Icaza <miguel@novell.com>
1598 * reflection.c (mono_param_get_objects): If a parameter has the
1599 attribute [System.Runtime.InteropServices.Optional] we should
1600 set the DefaultValue of the ParameterInfo to be
1601 System.Reflection.Missing instead of DBNull.
1605 (mono_get_reflection_missing_object): New method,
1606 returns the System.Reflection.Missing.Value singleton instance.
1608 2007-11-03 Atsushi Enomoto <atsushi@ximian.com>
1610 * culture-info-table.h : regenerated.
1612 2007-11-02 Jonathan Chambers <joncham@gmail.com>
1614 * icall.c: Use GetEnvironmentStrings on windows
1615 so we are using the same environment block as
1616 GetEnvironmentVariable/SetEnvironmentVariable. Fixes
1619 Code is contributed under MIT/X11 license.
1621 2007-10-31 Martin Baulig <martin@ximian.com>
1623 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
1625 * mono-debug-debugger.h
1626 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
1628 2007-10-30 Zoltan Varga <vargaz@gmail.com>
1630 * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated
1633 2007-10-30 Atsushi Enomoto <atsushi@ximian.com>
1635 * culture-info-table.h : regenerated.
1637 2007-10-30 Robert Jordan <robertj@gmx.net>
1639 * icall-def.h, icall.c:
1640 Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
1642 Code is contributed under MIT/X11 license.
1644 2007-10-29 Zoltan Varga <vargaz@gmail.com>
1646 * class.c (mono_class_setup_vtable): Find the inflated methods in the
1647 inflated class instead of inflating them again.
1649 * class.c (mono_class_setup_vtable): Inflate the override methods in the
1652 * class.c (mono_generic_class_get_class): Set klass->property.count as well.
1653 Call setup_supertypes () after klass->parent is set.
1654 (mono_class_setup_properties): Enable this to work on dynamic generic classes.
1656 * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
1657 for inflated instances of not yet created dynamic generic classes.
1658 (ctorbuilder_to_mono_method): Handle the case when this is called multiple
1659 times from inflated_method.
1660 (methodbuilder_to_mono_method): Ditto.
1662 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1664 * gc.c: code cleanup and removed old untested option of not creating the
1667 2007-10-29 Zoltan Varga <vargaz@gmail.com>
1669 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
1670 creating a jump trampoline for dynamic methods.
1672 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
1674 * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
1675 generic TypeBuilders when called from another method of the same type (bug #335131).
1678 2007-10-27 Zoltan Varga <vargaz@gmail.com>
1680 * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
1681 doesn't seem to work perfectly.
1683 * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
1684 called multiple times.
1685 (methodbuilder_to_mono_method): Ditto.
1686 (resolve_object): Inflate FieldBuilder's.
1688 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1690 * string-icalls.c, string-icalls.h, appdomain.c: patch from
1691 Tyler Larson <mono-devel@tlarson.com> to fix the handling of
1692 RemoveEmptyEntries in the string.Split implementation (bug #322375).
1694 2007-10-26 Dick Porter <dick@ximian.com>
1696 * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
1697 Thread initialisation changes
1699 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
1701 * verify.c: fix compatibility check between arrays and System.Array
1703 2007-10-26 Zoltan Varga <vargaz@gmail.com>
1705 * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
1708 2007-10-25 Zoltan Varga <vargaz@gmail.com>
1710 * object.c (mono_value_box): Use typed allocation here.
1712 2007-10-23 Zoltan Varga <vargaz@gmail.com>
1714 * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
1715 trampoline instead of compiling the method right away.
1717 * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
1719 2007-10-21 Zoltan Varga <vargaz@gmail.com>
1721 * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
1722 related fields for dynamic classes. Fixes #334493.
1724 2007-10-20 Zoltan Varga <vargaz@gmail.com>
1726 * class.c (mono_generic_class_get_class): Set klass->field.count as well.
1728 * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
1730 * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
1731 (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
1733 * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
1735 * reflection.c (create_generic_typespec): Initialize klass->generic_container
1737 (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
1739 2007-10-18 Jonathan Chambers <joncham@gmail.com>
1741 * marshal.c: Use correct key when removing item
1744 Code is contributed under MIT/X11 license.
1746 2007-10-17 William Holmes <billholmes54@gmail.com>
1748 *marshal.c: Adding a case to marshal booleans to U1
1750 Code is contributed under MIT/X11 license.
1752 2007-10-18 Zoltan Varga <vargaz@gmail.com>
1754 * class.c (mono_class_from_name): Search the modules compromising dynamic
1755 assemblies. Fixes #331601.
1757 2007-10-16 Zoltan Varga <vargaz@gmail.com>
1759 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
1760 exception if the type name contains an assembly component. Fixes #334203.
1762 * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
1763 modules inside dynamic assemblies. Fixes #334200.
1765 * reflection.c: Set image->public_key and image->public_key_length;
1767 * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
1770 * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.
1772 2007-10-16 Mark Probst <mark.probst@gmail.com>
1774 * metadata.c: Implemented correct comparing of generic classes.
1775 An inflated generic class can be equal to a non-inflated one if it
1776 is inflated with generic type variables as type arguments. Fixes
1779 2007-10-15 Dick Porter <dick@ximian.com>
1781 * monitor.c (mono_monitor_try_enter_internal): Set thread state to
1782 WaitSleepJoin while it is waiting to acquire a lock. Fixes bug
1785 * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
1786 instead of a monitor lock. This means that monitor_try_enter and
1787 co can set the thread state safely.
1788 (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
1789 thread_interrupt_requested, so interrupt actually works.
1791 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
1792 ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
1793 state accessor function
1795 2007-10-15 Martin Baulig <martin@ximian.com>
1798 (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
1799 the debugger with the current runtime.
1801 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
1803 * object.c, object-internals.h: added the ability to set a single
1804 trampoline for all the slots in a vtable.
1806 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1808 * marshal.c: deal with a possible race condition during multicast
1809 delegate invocation.
1811 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1813 * class.c: ensure value type methods don't have the synchronized
1816 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
1818 * string-icalls.c, string-icalls.h: reverted unapproved patch that
1821 2007-10-11 Joel Reed <joelwreed@comcast.com>
1823 * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
1824 to take an options parameter so that empty entries can be removed during
1825 the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
1827 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1829 * marshal.c: make sure we don't store the signature from a dynamic
1830 method into the runtime invoke cache (bug #327189).
1832 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1834 * marshal.c: make sure the wrapper methods are properly initialized.
1836 2007-10-11 Mark Probst <mark.probst@gmail.com>
1838 * metadata.c, metadata-internals.h: Generalized
1839 mono_type_stack_size() to mono_type_stack_size_internal() which
1840 takes an additional argument specifying whether it allows open
1843 2007-10-10 Rodrigo Kumpera <rkumpera@novell.com>
1845 * verify.c (do_invoke_method): handle typedbyref params
1846 correctly and check for unverifiable return values.
1848 * verify.c (do_newobj): fix a warning.
1850 2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
1852 * verify.c: don't tread typedbyref as allways unverifable,
1853 so uses, like (ld/st)loc.0 are valid. verify for the cases
1854 that it matters, like boxing related operations.
1856 2007-10-09 Rodrigo Kumpera <rkumpera@novell.com>
1858 * verify.c: add verification of the newobj opcode. verification
1859 of delegate instantation still missing due ldftn and virldftn not
1860 pushing the function type on stack
1862 2007-10-08 Mark Probst <mark.probst@gmail.com>
1864 * class-internals.h: Runtime generic context data structure
1867 * object.c: Initialization of runtime generic context at runtime
1868 vtable creation time.
1870 2007-10-08 Massimiliano Mantione <massi@ximian.com>
1871 * class.c (mono_class_create_from_typedef,
1872 mono_class_from_generic_parameter, mono_ptr_class_get,
1873 mono_fnptr_class_get, mono_bounded_array_class_get)
1874 * domain.c (mono_domain_create, mono_domain_free)
1875 * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
1876 * image.c (do_mono_image_load, mono_image_close):
1877 Hooked up load-unload profiler events.
1879 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
1881 * domain.c: track statistics about the actual amount of native code
1884 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1886 * class.c: the valuetype enumerators don't have the additional
1887 supertypes interfaces.
1889 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1891 * class.c: need more interfaces setup for the IEnumerator<T>
1892 object created for arrays (tests/ienumerator-interfaces.2.cs).
1894 2007-10-05 Zoltan Varga <vargaz@gmail.com>
1896 * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
1898 2007-10-05 Alp Toker <alp@atoker.com>
1900 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1901 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1904 2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
1906 * verify.c (verify_type_compatibility_full): verification of
1907 compatibility improved, validates correctly non-strict checks between
1908 native int and I4 types different than (unsigned)int32.
1910 * verify.c (do_store_indirect): added, do all verification of
1913 * verify.c (get_load_indirect_mono_type): renamed to
1914 get_indirect_op_mono_type, as it now returns the MonoType for
1915 ldind.X and stind.X opcodes.
1917 2007-10-04 Rodrigo Kumpera <rkumpera@novell.com>
1919 * reflection.c: Fix the encoding of generic type definition for
1922 * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
1923 mono_image_typedef_or_ref but allows to specify if typespec lookups should
1924 be made. Typespec check is done prior to typeref cache lookup.
1926 * reflection.c (mono_image_typedef_or_ref): now just delegate to
1927 mono_image_typedef_or_ref_full.
1929 * reflection.c (encode_generic_class): encode the generic class
1930 directly instead of calling encode_type.
1932 * reflection.c (encode_type): encode the generic type definition
1933 MonoClass as a generic instantiation.
1935 * reflection.c (create_typespec): cache typespec tokens in
1936 the assembly->typespec cache. Don't create typespec for a generic
1937 instance MonoClass. Create typespec for the generic type defintion.
1939 * reflection.c (create_generic_typespec): encode the generic
1940 class directly instead of calling encode_type.
1942 * reflection.c (mono_image_create_token): encode the generic
1943 type definition not using a typespec for MonoType instances.
1946 2007-10-04 Raja R Harinath <rharinath@novell.com>
1949 * class.c (mono_image_init_name_cache): Don't return nested
1950 'protected internal' classes.
1951 (mono_class_from_name_case): Likewise.
1953 2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
1955 * icall-def.h, icall.c : get_bundled_machine_config() is now the
1956 common function used by both DefaultConfig in System.dll and
1957 InternalConfigurationHost in System.Configuration.dll.
1959 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1961 * class.c: automatically add to vectors only a few essential explicit
1962 generic interfaces. The rest of the interfaces that arrays should
1963 provide are currently implicitly added (but still not lazily, see the
1964 design in the discussion of bug#325495 for the details of what is
1965 needed for that). Additionally, implicit interfaces are assigned the
1966 same vtable slot as the explicit interfaces (as they are compatible):
1967 this enables huge memory savings since we don't need to instantiate
1968 as many memthods and as large vtables anymore. Also, Since
1969 GetEnumerator<T> returns an instance of a type that is required to
1970 support a similarly large set of interfaces as arrays, we add
1971 implicit interfaces and interface offset sharing support to those
1972 types, too. This change adds all the required interfaces so that
1973 the anonarray.cs test case in the bug report works (we don't add
1974 all the interfaces to arrays of arrays 3-level deep and more because
1975 of the memory requirements explained in the bug and since they are much
1976 less common: the lazy-loading support will enabled them to work, too).
1978 2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
1980 * verify.c (merge_stacks): major clean up, all type compatibility
1981 checks are done by verify_type_compatibility. This fix my earlier lack
1982 of understanding of the CLR type system and merge_stacks no longer looks
1985 * verify.c: fixed some bad spelling.
1987 2007-10-02 Rodrigo Kumpera <rkumpera@novell.com>
1989 * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
1990 a given stack slock.
1992 * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
1993 verify_type_compatibility_full. This removed a near indentical function and fixed
1994 handling of Int32 and IntPtr across all opcodes.
1996 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1998 * class.c: only vectors have the additional generic interfaces.
2000 2007-10-01 Jonathan Chambers <joncham@gmail.com>
2002 * mono-config.c: Use g_strcasecmp instead of
2003 strcasecmp like everywhere else to fix
2004 compilation with MSVC.
2006 Code is contributed under MIT/X11 license.
2008 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2010 * object.c, object-internals.h: refactored the IMT code to enable
2011 building a single slot at a time and lazily creating the IMT trampolines
2014 2007-09-29 Zoltan Varga <vargaz@gmail.com>
2016 * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2018 * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2021 2007-09-29 Raja R Harinath <harinath@gmail.com>
2023 * loader.c (method_from_methodspec): Rearrange to avoid
2024 un-necessary exposition. Don't assert out if the method's
2025 declaring type is a generic type definition.
2027 2007-09-28 Martin Baulig <martin@ximian.com>
2029 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2031 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2033 * class-internals.h: optimize field layout of MonoClass to
2034 requires less cachelines at runtime and save a few bytes on 64 bit
2037 2007-09-28 Jb Evain <jbevain@novell.com>
2039 * reflection.c: when encoding type names in custom attributes,
2040 if the type is a closed generic type, its generic arguments
2041 have to be serialized as AssemblyQualifiedName, so that when
2042 they are deserialized, it's possible to re-create them properly.
2046 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2048 * object.c, class-internals.h: added delegate-creation counter.
2050 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2052 * class.c: cleanup of the code that synthetizes interfaces for
2053 arrays in 2.0: saves quit a bit of corlib mempool memory.
2054 Code to fix bug #325495 ifdeffed out for now until the issues
2055 with memory usage and O(n^2) behaviour are fixed.
2057 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2059 * marshal.c: when possible, do not duplicate the name of the methods
2060 in the method builder and in the generated MonoMethod.
2062 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
2063 * verify.c: added support for type checking ldind_* opcodes.
2065 2007-09-27 Rodrigo Kumpera <rkumpera@novell.com>
2067 * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2068 which is used to distinguish the fully open instantiation of a TypeBuilder
2069 with the rest. This temporary hack is required to restore the property that
2070 the fully open instantiation is the same type of the generic type definition.
2072 * class-internals.h (mono_generic_class_is_generic_type_definition):
2073 new function as part of the internal API.
2075 * class.c (inflate_generic_type): return NULL when the generic inst is
2076 fully open. The fully open generic type is now the same as the generic type
2077 definition for non TypeBuilder types.
2079 * class.c (mono_generic_class_get_class): removed assert since it is
2080 no longer valid, gklass->cached_class can point to the generic type definition.
2082 * class.c (mono_generic_class_is_generic_type_definition): new.
2084 * metadata.c (mono_generic_class_hash): added is_tb_open field
2085 to the hash calculation.
2087 * metadata.c (free_generic_class): if the generic class is associated
2088 with the generic type definition, its field will come from the mempool and
2091 * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2092 new, this function identifies the corner case of a TypeBuilder fully open
2095 * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2096 for lookup. Set gclass->cached_class to be the container class in case of
2097 the fully open instantiation of non TypeBuilder types.
2099 * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2100 to compare generic classes.
2102 * reflection.c (method_encode_methodspec): remove assert that
2105 * reflection.c (mono_reflection_generic_class_initialize): add
2106 an aditional assert to ensure the proper type is used.
2108 2007-09-26 Rodrigo Kumpera <rkumpera@novell.com>
2110 * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2113 2007-09-25 Rodrigo Kumpera <rkumpera@novell.com>
2115 * verify.c (push_arg): Fixed support for ldarga
2116 * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2117 MonoType used as first arg in case of instance calls.
2119 2007-09-25 Rodrigo Kumpera <rkumpera@novell.com>
2121 * verify.c: Support for verifying VAR and MVAR types,
2123 2007-09-25 Zoltan Varga <vargaz@gmail.com>
2125 * icall.c (ves_icall_get_property_info): Set the reflected type of the
2126 accessors correctly.
2128 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2130 * threads.c: support OSX and other systems in
2131 mono_thread_get_stack_bounds (bug #328026).
2133 2007-09-25 Martin Baulig <martin@ximian.com>
2136 (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2138 2007-09-24 Martin Baulig <martin@ximian.com>
2141 (MonoDebugClassEntry): Moved the definition of this struct into
2142 mono-debug.c to make it private.
2145 (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2146 type table per symbol file, we don't need to store the symfile id
2149 2007-09-24 Martin Baulig <martin@ximian.com>
2151 Create one type table per symbol file, since a `MonoClass *' gets
2152 invalid when its image is unloaded.
2154 * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2155 (MonoDebugHandle): Added `type_table'.
2157 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2159 * mempool.c, mempool.h: added mono_mempool_new_size () API
2160 to be able to specify a smaller initial size for the pool.
2161 Adjusted the code to slowly increase pool size before using
2162 the previous default size.
2163 * image.c: use a small initial size for image mempools.
2165 2007-09-23 Zoltan Varga <vargaz@gmail.com>
2167 * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2170 * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal):
2171 Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2173 2007-09-22 Zoltan Varga <vargaz@gmail.com>
2175 * metadata.c (mono_type_create_from_typespec): Remove an invalid
2176 free. Fixes #327438.
2178 2007-09-21 Raja R Harinath <harinath@gmail.com>
2180 * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2181 generic instantiations, etc.
2182 <MONO_TYPE_ARRAY>: Likewise.
2184 2007-09-21 Martin Baulig <martin@ximian.com>
2186 * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2187 these structs were never defined.
2188 (MonoDebugHandle): Removed the `_priv' field, it was never used.
2190 2007-09-21 Martin Baulig <martin@ximian.com>
2192 * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2194 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2196 * image.c: removed the guid hash tables: we can get the same info
2197 without the additional memory usage hit (partially fixes also bug #327052).
2199 2007-09-10 Massimiliano Mantione <massi@ximian.com>
2201 * profiler.h, profiler-private.h, profiler.c: add a new profiler
2202 event to handle unloading methods. After the event is called, the
2203 corresponding MonoMethod* must be considered invalid.
2204 * loader.c (mono_free_method): call the new mono_profiler_method_free
2207 2007-09-20 Mark Probst <mark.probst@gmail.com>
2209 * domain-internals.h: New flag in MonoJitInfo which marks shared
2210 generic methods. New hash table (shared_generics_hash) in
2211 MonoDomain to keep track of shared generic methods. Prototypes
2212 for functions to register and lookup shared generic methods.
2214 * domain.c: Support for registering and looking up shared generic
2215 methods via a hash table (shared_generics_hash) in MonoDomain.
2217 * class-internals.h: New exception to signal failure of shared
2218 compilation of a generic method. New counters for generics
2219 sharing in MonoStats.
2221 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2223 * image.c, metadata-internals.h: don't keep a file descriptor open
2224 for loaded assemblies (bug#325988).
2226 2007-09-19 Raja R Harinath <rharinath@novell.com>
2228 * metadata.c (signature_in_image): New. Carve out of type_in_image.
2229 (ginst_in_image, gclass_in_image): Simplify. Change signature to
2230 use the corresponding datatypes.
2231 (type_in_image): Update to changes.
2232 (CleanForImageUserData): Simplify.
2233 (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2234 Avoid quadratic behaviour in handling the "stolen" list by
2235 separating the filter predicate out, and by prepending the stolen
2236 items rather than appending them.
2237 (steal_ginst_in_image): Likewise.
2238 (mono_metadata_clean_for_image): Update to changes.
2240 2007-09-19 Martin Baulig <martin@ximian.com>
2242 * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2244 2007-09-19 Martin Baulig <martin@ximian.com>
2246 * mono-debug.c (mono_debug_cleanup): Don't call
2247 mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2249 2007-09-19 Raja R Harinath <harinath@gmail.com>
2251 Fix crash on 'make run-test' in mcs/errors
2252 * metadata.c (type_in_image): New. Carve out of ginst_in_image.
2253 Avoid more potential allocations in mono_class_from_mono_type.
2254 (ginst_in_image): Update to changes.
2255 (gclass_in_image): Rearrange slightly.
2257 2007-09-18 Zoltan Varga <vargaz@gmail.com>
2259 * class.c (mono_class_init): Move the code that sets up class->methods to
2260 mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
2262 * metadata.c (mono_metadata_get_inflated_signature): New function to return a
2263 canonical instance of an inflated generic signature.
2264 (mono_type_create_from_typespec): Remove an invalid free.
2266 * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.
2268 2007-09-18 Marek Habersack <mhabersack@novell.com>
2270 * domain-internals.h: added a declaration of the
2271 mono_assembly_load_full_nosearch internal function.
2273 * assembly.c (mono_assembly_load_with_partial_name): use
2274 mono_try_assembly_resolve return value properly.
2275 (mono_assembly_load_full_nosearch): copied the function body from
2276 mono_assembly_load_full, without the code to invoke assembly
2278 (mono_assembly_load_full): calls the above new function and if the
2279 assembly is not resolved, invokes the search hooks.
2281 * appdomain.c (mono_runtime_init): restore the global postload
2282 assembly search handlers.
2284 2007-09-18 Zoltan Varga <vargaz@gmail.com>
2286 * class.c (mono_class_init): Make sure class->methods and class->properties
2287 are never NULL in the generics case.
2289 * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
2291 2007-09-17 Zoltan Varga <vargaz@gmail.com>
2293 * metadata.c (free_generic_class): Disable some code to fix the build.
2295 * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
2297 * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
2298 from the image mempool.
2300 * metadata.c (free_generic_class): Free more data from the inflated class.
2302 * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
2304 * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
2306 (mono_type_create_from_typespec): Ditto.
2308 * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
2309 MonoImage to the caller.
2310 (mono_init_internal): Save the opened image in a global variable.
2311 (mono_cleanup): Close the image opened in get_runtimes_from_exe.
2313 * reflection.c (resolve_object): Fix a leak.
2315 * metadata.c: Fix the freeing of data in the generics caches.
2317 * metadata.c (free_generic_inst): Comment this out to fix the build.
2318 (free_generic_class): Ditto.
2320 * metadata.c: Free cached generic methods, instantinations and classes when
2321 they are removed from the caches.
2322 (mono_metadata_free_type): Free the type itself.
2324 * class.c: Free the result of mono_class_inflate_generic_type () in a few
2327 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2329 * boehm-gc.c: restrict managed allocs to __thread supporting
2332 2007-09-16 Zoltan Varga <vargaz@gmail.com>
2334 * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
2335 (mono_generic_class_get_class): Fix a leak.
2337 * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
2338 mono_metadata_free_type ().
2339 (mono_metadata_inflate_generic_inst): Fix a leak.
2341 2007-09-14 Zoltan Varga <vargaz@gmail.com>
2343 * mono-debug.c (free_header_data): Fix a leak missed earlier.
2345 * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
2348 * mono-debug.c (mono_debug_close_image): Fix call to
2349 g_hash_table_remove ().
2351 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2353 * icall-def.h: redirect all the string ctor to the managed
2354 CreateString () methods.
2355 * string-icalls.c, string-icalls.h: removed dead code for string
2358 2007-09-14 Zoltan Varga <vargaz@gmail.com>
2360 * mono-debug.c: Fix memory leaks.
2362 2007-09-14 Jonathan Chambers <joncham@gmail.com>
2364 * threads-types.h: Implement mono_hazard_pointer_set and
2365 mono_hazard_pointer_clear macros using do/while(0) to fix
2366 compilation with MSVC.
2368 Code is contributed under MIT/X11 license.
2370 2007-09-14 Zoltan Varga <vargaz@gmail.com>
2372 * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
2373 -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
2375 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2377 * icall-def.h, string-icalls.c: get rid of old, no longer used, string
2380 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2382 * boehm-gc.c, gc-internal.h, object.c: allow strings to be
2383 managed-code allocated as well.
2385 2007-09-13 Zoltan Varga <vargaz@gmail.com>
2387 * class.c (mono_class_is_assignable_from): Add support for generic variance.
2389 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2391 * boehm-gc.c: fixed the build after the AOT changes.
2393 2007-09-13 Zoltan Varga <vargaz@gmail.com>
2395 * wrapper-types.h: Add an ALLOC wrapper type.
2397 * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
2398 reference managed allocator methods.
2400 2007-09-12 Marek Safar <marek.safar@gmail.com>
2402 * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
2403 of Type array and not MonoType, a fix suggested by Hari.
2405 2007-09-12 Jonathan Chambers <joncham@gmail.com>
2407 * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
2408 and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
2410 Code is contributed under MIT/X11 license.
2412 2007-09-10 Massimiliano Mantione <massi@ximian.com>
2414 * domain.c, object.c, mono-config.c, object-internals.h: Fixed #82416.
2416 2007-09-12 Marek Habersack <mhabersack@novell.com>
2418 * image.c (do_mono_image_open): if assembly file fails to open and
2419 MONO_IOMAP is in effect, try to find the path in a
2420 case-insensitive way.
2422 * appdomain.c (mono_runtime_init): do not install postload hooks -
2423 tests show that MS.NET doesn't use anything of that sort to
2424 trigger the AppDomain.AssemblyResolve event.
2425 (mono_try_assembly_resolve): renamed from try_assembly_resolve and
2427 (mono_runtime_init): init portability helpers here.
2429 * assembly.c (mono_assembly_load_with_partial_name): if other
2430 attempts fail, trigger the AppDomain.AssemblyResolve event handler
2431 to resolve the assembly.
2433 * domain-internals.h: added mono_try_assembly_resolve and marked
2436 2007-09-11 Jb Evain <jbevain@novell.com>
2438 * object-internals.h (MonoReflectionDynamicMethod): add
2439 a `MonoReflectionType *owner` field. The owner is used
2441 (mono_reflection_create_dynamic_method): use the owner of the dynamic
2442 method as the class declaring the dynamic method.
2443 (reflection_methodbuilder_from_dynamic_method): copy the owner of the
2444 dynamic method to the declaring type of the methodbuilder.
2446 2007-09-11 Mark Probst <mark.probst@gmail.com>
2448 * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
2449 rules for calling methods via reflection.
2451 2007-09-11 Zoltan Varga <vargaz@gmail.com>
2453 * reflection.c (resolve_object): Add support for MonoGenericClass.
2456 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
2458 * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
2459 provide a managed method that does fast allocations without needing
2460 a managed->unmanaged transition. Boehm GC implementation currently
2461 enabled for ptrfree objects on sane architectures.
2463 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2465 * marshal.c, marshal.h: exported a couple of useful functions and
2466 added mono_mb_get_label () to easily handle backward branches.
2468 2007-09-10 Zoltan Varga <vargaz@gmail.com>
2470 * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2472 2007-09-10 Massimiliano Mantione <massi@ximian.com>
2474 * loader.c (find_method): Fixed the regression introduced while
2477 2007-09-09 Zoltan Varga <vargaz@gmail.com>
2479 * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2482 * class.c loader.c metadata.c object.c class-internals.h object-internals.h
2483 icall.c reflection.c: Pass a MonoGenericContext argument to
2484 mono_lookup_dynamic_token ().
2486 * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
2489 2007-09-09 Robert Jordan <robertj@gmx.net>
2491 * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
2492 for generic methods.
2494 * object.c (mono_object_get_virtual_method): Handle generic methods.
2497 Code is contributed under MIT/X11 license.
2499 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2501 * image.c: fix locking in mono_image_load_file_for_image ().
2503 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
2505 * reflection.c, icall.c, icall-def.h: the methodinfos name field is
2506 used only as a cache: added an icall to fill it.
2508 2007-09-16 Rodrigo Kumpera <rkumpera@novell.com>
2510 * reflection.h: exposed mono_reflection_free_type_info
2511 * reflection.c (mono_reflection_get_type_internal): type_args is always freed
2512 since mono_reflection_bind_generic_parameters makes a copy of it.
2513 * reflection.c (free_type_info): subinfos should be freed.
2514 * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and
2516 * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
2517 replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
2518 this fixes #82695 and #81726.
2521 2007-09-03 Atsushi Enomoto <atsushi@ximian.com>
2523 * process.h, process.c: added support for user profile/info in
2524 ProcessStartInfo. For now only Windows works.
2526 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2528 * metadata.c: consider the generic arguments when comparing
2529 signatures (bug #82614).
2531 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2533 * cil-coff.h, image.c: updated assembly loader to cope with the
2534 PE32+ 64 bit file format.
2536 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2538 * assembly.c, class.c, domain.c, loader.c: remove useless
2539 inclusion of cil-coff.h.
2541 2007-08-29 Jonathan Chambers <joncham@gmail.com>
2543 * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
2544 if interface is marked with CoClassAttribute.
2546 Code is contributed under MIT/X11 license.
2548 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2550 * sgen-gc.c: ensure no object from the to space is copied again or finalized
2551 if it's seen twice in major collections.
2553 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2555 * sgen-gc.c: big objects are not copied to the gray area, but they
2556 need to be considered for scanning, too, if they are brought alive
2557 by an object ready for finalizations or a survived one.
2559 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2561 * sgen-gc.c: properly account the number of disappearing links when
2564 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2566 * sgen-gc.c: share the code to scan the registered roots between the
2567 different types of collections.
2569 2007-08-28 Zoltan Varga <vargaz@gmail.com>
2571 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
2573 2007-08-28 Zoltan Varga <vargaz@gmail.com>
2575 * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
2576 class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
2578 2007-08-28 Mark Probst <mark.probst@gmail.com>
2580 * security-manager.c (mono_security_manager_get_methods):
2581 LinkDemandSecurityException now has 2 arguments instead of 3.
2583 2007-08-27 Zoltan Varga <vargaz@gmail.com>
2585 * class.c (mono_class_layout_fields): Only do the struct alignment hack on
2586 platforms which need it.
2588 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2590 * sgen-gc.c: unregister thread data structures with a pthread_key_t
2593 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2595 * threads.c: free the thread static data on thread exit.
2597 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
2599 * class.c: walk the hierarchy to find the generic definition for
2600 a class (fixes runtime part of bug #82498).
2602 2007-08-24 Zoltan Varga <vargaz@gmail.com>
2604 * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
2607 * image.c (mono_image_close): Here. Hopefully fixes #82510.
2609 2007-08-24 Mark Probst <mark.probst@gmail.com>
2611 * monodiet.c (handle_cattrs): Fixed a custom attr leak.
2613 2007-08-24 Robert Jordan <robertj@gmx.net>
2615 * appdomain.c: don't perform the ':'->';' substitution on Win32.
2617 2007-08-24 Jb Evain <jbevain@novell.com>
2619 * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
2622 2007-08-24 Mark Probst <mark.probst@gmail.com>
2624 * threads.c: Make sure a thread gets cleaned up only once. Fixes
2627 2007-08-24 Zoltan Varga <vargaz@gmail.com>
2629 * assembly.c: Fix a warning.
2631 2007-08-23 Marek Habersack <mhabersack@novell.com>
2633 * appdomain.c: parse the <runtime> section looking for the probing
2634 element with the 'privatePath' attribute, which sets additional
2635 directories in which the runtime should look for assemblies.
2637 2007-08-23 Robert Jordan <robertj@gmx.net>
2639 * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
2642 2007-08-23 Martin Baulig <martin@ximian.com>
2644 * mono-debug.[ch]: Rename mono_debug_init_corlib() into
2645 _mono_debug_init_corlib() and remove it from the header file.
2647 2007-08-23 Martin Baulig <martin@ximian.com>
2649 * mono-debug-debugger.c
2650 (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
2651 don't notify the debugger about it.
2653 * mono-debug-debugger.h
2654 (MonoDebuggerEvent): Removed `THREAD_ABORT'.
2656 2007-08-23 Robert Jordan <robertj@gmx.net>
2658 * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
2659 Code is contributed under MIT/X11 license.
2661 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
2663 * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
2665 2007-08-22 Martin Baulig <martin@ximian.com>
2667 * mono-debug.c: Store debugging info on a per-domain basis and
2668 free it on domain unload. Add support for unloading symbol files.
2671 (MonoDebugList): New typedef.
2673 - add `data_tables and `type_table'.
2674 - replace 'symbol_files' and `num_symbol_files' with a
2676 (mono_debug_data_table): Removed.
2677 (mono_debug_list_add): New public function.
2678 (mono_debug_list_remove): New public function.
2679 (mono_debug_init_1): Renamed into mono_debug_init_corlib().
2680 (mono_debug_init_2_memory): Renamed into
2681 mono_debug_open_image_from_memory().
2682 (mono_debug_close_image): New public function.
2683 (mono_debug_domain_create): Likewise.
2684 (mono_debug_domain_unload): Likewise.
2685 (MONO_DEBUGGER_VERSION): Bump to 60.
2687 * mono-debug-debugger.h
2688 (MonoDebuggerEvent):
2689 - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
2690 - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
2691 - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
2692 - rename `THREAD_CREATED' and `THREAD_EXITED' into
2693 `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
2694 - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
2696 (mono_debugger_add_symbol_file): Removed.
2697 (mono_debugger_add_type): Removed.
2698 (mono_debugger_lookup_type): Removed.
2699 (mono_debugger_lookup_assembly): Removed.
2702 (mono_domain_create): Call mono_debug_domain_create().
2703 (mono_init_internal): Call mono_debug_init_corlib().
2706 (mono_assembly_close): Call mono_debug_close_image().
2708 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
2710 * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
2713 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2715 * sgen-gc.c: ensure section->pin_queue_end is initialized
2716 correctly when non pinning objects in the section have been found.
2718 2007-08-22 Marek Habersack <mhabersack@novell.com>
2720 * appdomain.c (set_domain_search_path): cope with PrivateBinPath
2721 containing a list of directories separated by ':'. MSDN docs say
2722 the directories should be separated with ';'. Part of a bugfix for
2725 2007-08-21 Rodrigo Kumpera <rkumpera@novell.com>
2727 * class.c (mono_type_retrieve_from_typespec) : fixed the return type
2728 it should MonoType and not MonoClass.
2730 2007-08-21 Atsushi Enomoto <atsushi@ximian.com>
2732 * culture-info-table.h : regenerated.
2734 2007-08-20 William Holmes <billholmes54@gmail.com>
2736 *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
2737 to call ReplaceFile Kernel32 on windows or in io-layer.
2738 *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
2739 *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
2740 as an internal call.
2742 Code is contributed under MIT/X11 license.
2744 2007-08-20 Jb Evain <jbevain@novell.com>
2746 * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
2747 and MONO_EXCEPTION_FIELD_ACCESS.
2749 * debug-helpers.[c|h]: new mono_field_full_name function.
2751 2007-08-20 Mark Probst <mark.probst@gmail.com>
2753 * class.c: Removed class_security_level() and moved it to
2754 security-core-clr.c.
2756 * security-core-clr.c, security-core-clr.h: class_security_level()
2757 is now public and renamed to mono_security_core_clr_class_level().
2758 It also looks for security attributes in the classes a class is
2761 2007-08-20 Mark Probst <mark.probst@gmail.com>
2763 * security-core-clr.c, security-core-clr.h: CoreCLR security
2766 * Makefile.am: Added security-core-clr.[ch].
2768 * security-manager.c, security-manager.h: Functions and enum for
2769 setting and getting the security mode.
2771 * class.c: CoreCLR security checks.
2773 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2775 * icall-def.h, process.c, process.h: implemented icall to get
2776 user/system processor times.
2778 2007-08-17 Mark Probst <mark.probst@gmail.com>
2780 * domain.c, threads.c, class-internals.h, domain-internals.h: New
2781 reader-lock-free jit_info_table.
2783 2007-08-17 Zoltan Varga <vargaz@gmail.com>
2785 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
2787 * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.
2789 * object-internals.h (MonoException): Add missing _data member.
2791 2007-08-08 Massimiliano Mantione <massi@ximian.com>
2793 * loader.c (find_method, find_method_in_class): Fixed bug #81466,
2794 checking that only methods with matching qname or fqname are picked
2795 from implemented interfaces.
2797 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
2799 * verify.c (do_newarr):added, do type verification of
2800 newarr ops, push the right value on the eval stack.
2801 * verify.c (mono_method_verify): use do_newarr
2804 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
2806 * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
2807 factored the common code into get_boxable_mono_type, which
2808 is now using mono_type_get_full, this fixed byref related tests.
2810 2007-08-16 Rodrigo Kumpera <rkumpera@novell.com>
2812 * class.c: added mono_type_get_full, this function has the same
2813 behavior of mono_class_get_full but the returned MonoType has
2814 all metadata of the associated token in case of a typespec token.
2815 * class.c: added mono_type_retrieve_from_typespec, used by
2816 mono_type_get_full to retrieve the token type.
2817 * class.c (mono_class_create_from_typespec): changed to use
2818 mono_type_retrieve_from_typespec.
2819 * class.c (mono_ldtoken): changed to use mono_type_get_full
2820 for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
2821 * class-internals.h: exported mono_type_get_full for internal use.
2823 2007-08-16 Jb Evain <jbevain@novell.com>
2825 * domain.c (supported_runtimes): add entry for
2826 the 'moonlight' runtime version.
2828 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
2830 * verify.c (mono_method_verify): small typo sliped in.
2832 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
2834 * verify.c (do_unbox_value): added, do type verification of
2836 * verify.c (mono_method_verify): use do_unbox_value
2839 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
2841 * verify.c (dump_stack_value): fixed typo, was printing string
2842 instead of object on stack.
2843 * verify.c (do_box_value): moved the byref check up as it leads
2844 to invalid code and should be done earlier.
2845 * verify.c: improved error messages for and ldobj
2847 2007-08-15 William Holmes <billholmes54@gmail.com>
2849 * marshal.c (emit_marshal_custom): Omit the call to
2850 marshal_native_to_managed when calling native to managed
2851 and the argument is specified as an out argument.
2853 Code is contributed under MIT/X11 license.
2855 2007-08-15 Rodrigo Kumpera <rkumpera@novell.com>
2857 * verify.c: fixed the type checks for generics, function pointers and vectors.
2858 Added type verification for ldobj and ldtoken. The verifier
2859 would segfault if header or signature of a method contained references
2860 to non-existant types.
2862 2007-08-15 Jonathan Chambers <joncham@gmail.com>
2864 * marshal.c (cominterop_get_ccw): Patch from
2865 Bill Holmes to no walk up interface hierarchy.
2866 All parent methods should be present in the interface for COM.
2868 Code is contributed under MIT/X11 license.
2870 2007-08-15 Jonathan Chambers <joncham@gmail.com>
2872 * marshal.c (emit_marshal_com_interface): Patch from
2873 Bill Holmes to handle COM Interfaces as return values
2874 for native->managed calls.
2876 Code is contributed under MIT/X11 license.
2878 2007-08-14 Jonathan Chambers <joncham@gmail.com>
2880 * marshal.c (cominterop_get_idispatch_for_object): Implement
2881 for runtime callable wrappers.
2883 Code is contributed under MIT/X11 license.
2885 2007-08-13 Rodrigo Kumpera <rkumpera@novell.com>
2887 * pedump.c (main): changed from mono_init to mono_init_from_assembly
2888 so 2.0 types are accessible
2891 2007-08-13 Miguel de Icaza <miguel@novell.com>
2893 * domain.c (mono_init_internal): Call mono_assembly_load_friends
2894 once we load mscorlib. Due to the order in which we initialize,
2895 the mono_assembly_load_full routine that loads mscorlib did not
2896 load friends. We now load it once we load the
2897 mono_defaults.internals_visible_class class.
2899 * assembly.c: Expose the mono_load_friend_assemblies method.
2901 2007-08-11 Rodrigo Kumpera <rkumpera@novell.com>
2903 * verify.c: improved the handling of boxing, better
2904 type checking for unary ops and conversion. Fix bug
2905 regarding managed pointer compatibility checking
2907 2007-08-11 Zoltan Varga <vargaz@gmail.com>
2909 * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
2911 * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
2913 2007-08-09 Raja R Harinath <rharinath@novell.com>
2915 * reflection.c (dup_type): Remove.
2916 * class.c (dup_type): Remove.
2917 (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
2918 instead of the dodgy 'dup_type'.
2919 (inflate_generic_type): Likewise. Fix the VAR/MVAR cases to
2920 handle the case where 'dup_type' needed the second argument.
2922 2007-08-08 Zoltan Varga <vargaz@gmail.com>
2924 * domain.c: Fix a warning.
2926 2007-08-08 Massimiliano Mantione <massi@ximian.com>
2928 * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
2929 checking that methods with the same fqname are not overridden
2930 with a method from an ancestor.
2932 2007-08-07 Zoltan Varga <vargaz@gmail.com>
2934 * threads.c (free_thread_static_data_helper): Avoid a crash if
2935 thread->static_data is not yet set.
2937 2007-08-07 Jonathan Chambers <joncham@gmail.com>
2939 * marshal.c: Use correct image when emitting
2940 native wrapper for COM calls.
2942 Code is contributed under MIT/X11 license.
2944 2007-08-07 Atsushi Enomoto <atsushi@ximian.com>
2946 * icall-def.h, security.c, security.h :
2947 added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
2949 2007-08-07 Martin Baulig <martin@ximian.com>
2951 * mono-debug-debugger.h
2952 (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
2954 * domain.c (mono_domain_free): Call
2955 `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
2957 2007-08-06 Rodrigo Kumpera <rkumpera@novell.com>
2959 * verify.c (check_underflow, check_overflow): error message now returns IL offset
2960 * verify.c (in_same_block): code should test if either offset is inside the clauses
2961 * verify.c (mono_method_verify): push the exception into the eval stack of exception
2964 2007-08-03 Zoltan Varga <vargaz@gmail.com>
2966 * image.c (mono_image_close): Fix a leak.
2968 * object.c (mono_runtime_invoke_array): Avoid using alloca.
2970 * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.
2972 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
2974 * domain.c, threads.c, threads-types.h: fix memory retention issue
2975 with thread static variables not being cleared on domain unload.
2976 Reuse thread static slots after domain unload.
2978 2007-08-03 Zoltan Varga <vargaz@gmail.com>
2980 * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
2983 * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
2984 now done in mono_runtime_invoke_array.
2986 * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the
2987 receiver is a nullable type.
2989 * class.c (mono_class_is_assignable_from): Handle the case when klass is a
2992 2007-08-03 Jonathan Chambers <joncham@gmail.com>
2994 * marshal.c: Implement COM Objects as return type for
2995 managed->unmanaged calls. Added Release calls for COM Object
2996 out/return values in managed->unmanaged calls.
2998 Code is contributed under MIT/X11 license.
3000 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3002 * threads.h, threads-type.h: move the hazard pointer declarations
3003 to the private header.
3005 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3007 * file-io.c, appdomain.c: memory leak fixes.
3009 2007-08-02 Dick Porter <dick@ximian.com>
3012 (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3013 SO_REUSEADDR setting into io-layer/sockets.c.
3015 2007-08-01 Zoltan Varga <vargaz@gmail.com>
3017 * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3018 from Object when called on a generic parameter. Fixes #82211.
3020 2007-08-01 Dick Porter <dick@ximian.com>
3022 * file-io.c (convert_share): Test FileShare values bit-by-bit.
3023 Fixes bug 79250 yet again.
3025 2007-07-30 Martin Baulig <martin@ximian.com>
3027 Merged the `debugger-dublin' branch.
3030 (MonoDebugDataTable): New typedef.
3031 (MonoDebugMethodAddressList): New typedef.
3032 (MonoDebugWrapperData): Removed.
3033 (MonoDebugSymbolTable): Removed `current_data_table',
3034 `current_data_table_size', `current_data_table_offset'.
3035 (MonoDebugDataItemType): Moved into mono-debug.c.
3036 (MonoDebugMethodJitInfo): Remove `address'.
3037 (mono_debug_data_table): New global variable.
3038 (mono_debug_lookup_method_addresses): New public function.
3039 (mono_debug_find_method): Take a `MonoMethod *', not a
3040 `MonoDebugMethodInfo *'.
3042 * mono-debug.c: Drop support for the old symbol tables.
3044 2007-06-28 Martin Baulig <martin@ximian.com>
3046 * mono-debug.c (mono_debug_debugger_version): New public variable.
3048 2007-07-31 William Holmes <billholmes54@gmail.com>
3050 * metadata.c Changed mono_type_create_from_typespec to not insert
3051 the type into the hash map until after
3052 do_mono_metadata_parse_type has completed.
3054 Code is contributed under MIT/X11 license.
3056 2007-07-31 Zoltan Varga <vargaz@gmail.com>
3058 * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3059 generic parameter. Fixes #82211.
3061 2007-07-27 Jb Evain <jbevain@novell.com>
3063 * pedump.c (dump_metadata, dump_metadata_header): dump
3064 versions contained in the metadata header.
3066 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3068 * threads.c: register small_id_table with the GC.
3070 2007-07-27 Mark Probst <mark.probst@gmail.com>
3072 * threads.c, threads.h, class-internals.h, object-internals.h:
3073 Hazard pointers, to be used by lock-free parallel algorithms.
3075 2007-07-26 Dick Porter <dick@ximian.com>
3077 * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3078 routine on non-windows platforms, as I've not managed to think of
3079 a non-kludgy way of doing this. Finishes off bug 78739.
3081 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3083 * object.c: properly setup interface_bitmap in proxy vtables.
3085 2007-07-25 Marek Habersack <mhabersack@novell.com>
3087 * appdomain.c (get_shadow_assembly_location): do not use TickCount
3088 to create unique shadow copy target directories, use the domain's
3089 serial number instead. Each domain gets a unique target directory
3092 * domain.c (mono_domain_create): added code to increment domain
3093 shadow copy serial number and cache the value in the current
3096 * domain-internals.h (struct _MonoDomain): added a new field -
3097 shadow_serial to hold the serial number used in generation of
3098 shadow-copy directories. This is to make sure that the directory
3099 name is unique for each and every domain created. We avoid a race
3100 condition with overriding assemblies already in use by other app
3103 2007-07-24 Rodrigo Kumpera <rkumpera@novell.com>
3105 * class.c (mono_bounded_array_class_get): fixed memory leak when
3106 binding generic parameters.
3108 2007-07-24 Raja R Harinath <rharinath@novell.com>
3110 * metadata.c (do_mono_metadata_parse_generic_class): Use
3111 mono_metadata_lookup_generic_class. Don't g_assert on a metadata
3114 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3116 * loader.c, class-internals.h, reflection.c: removed the per-method
3117 generics hashtable: we use the global one through the call of
3118 mono_class_inflate_generic_method ().
3120 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3122 * class.c, metadata.c, class-internals.h: introduce yet another
3123 generics global cache for inflated methods (fixes 98% of the perf
3124 issue in bug #81806).
3126 2007-07-23 Raja R Harinath <rharinath@novell.com>
3128 Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3129 * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3130 (mono_metadata_get_generic_inst): New. Given a list of MonoType*,
3131 return a MonoGenericInst containing (a copy) of those types.
3132 (mono_metadata_inflate_generic_inst): Update to changes.
3133 (mono_metadata_parse_generic_inst): Likewise.
3134 (mono_get_shared_generic_inst): Likewise.
3135 * reflection.c (mono_class_bind_generic_parameters): Likewise.
3136 (mono_reflection_bind_generic_method_parameters): Likewise.
3137 * metadata-internals.h: Likewise.
3138 * icall.c (free_generic_context): Kill.
3139 (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3141 * reflection.c (reflection_methodbuilder_to_mono_method): Use
3142 mono_metadata_type_dup.
3143 * marshal.c (mono_mb_create_method): Likewise.
3145 * metadata.c (mono_metadata_type_dup): Rename from
3146 mono_metadata_type_dup_mp. Take an optional mempool instead of a
3147 MonoImage. Handle a few more cases, esp. when no mempool is given.
3148 * marshal.c, metadata-internals.h: Update to changes.
3150 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3152 * class.c: fixed a small leak for array classes and removed warning.
3154 2007-07-22 Zoltan Varga <vargaz@gmail.com>
3156 * loader.c (mono_method_get_param_token): Make this work on generic methods.
3157 Return 0x8000000 for return parameters. Fixes #82161.
3159 2007-07-21 Marek Habersack <grendello@gmail.com>
3161 * appdomain.c (get_shadow_assembly_location): append the current
3162 ticks value to the path. Avoids overwriting the same assemblies by
3163 several threads at the same time.
3165 2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
3166 and Raja R Harinath <rharinath@novell.com>
3168 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3170 (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3171 property for testing if a method is a generic method definition.
3173 2007-07-20 Atsushi Enomoto <atsushi@ximian.com>
3175 * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3177 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3179 * verify.c: used function from private branch, reverted to the one in class.h
3181 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3183 * verify.c: a typo slipped in and the code wont compile
3185 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3187 * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3188 disabled box instruction as it is doing the wrong thing
3189 improved stack dump messages, now it is easier to debug type related issues
3192 2007-07-19 Juraj Skripsky <js@hotfeet.ch>
3194 * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak.
3196 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3198 * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from
3199 TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3200 grouped with class and valuetype. This change will simply
3201 the code as it should be handled just like unmanaged pointers.
3203 2007-07-19 Mark Probst <mark.probst@gmail.com>
3205 * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3207 2007-07-19 Rodrigo Kumpera <rkumpera@novell.com>
3209 * verify.c: several stack merge issues fixed, reference comparisons now
3210 check the type size. strict type check now works correctly.
3211 added more uses of IS_MANAGED_POINTER macro.
3212 fixed issues pointed by running the test suite against .net.
3215 2007-07-19 Mark Probst <mark.probst@gmail.com>
3217 * class.c, loader.c, class-internals.h: Removed the
3218 MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3221 * icall.c: Better error checking in some internal reflection
3224 2007-07-18 William Holmes <billholmes54@gmail.com>
3226 * filewatcher.c : removed unused variable 'filename' in
3227 ves_icall_System_IO_FSW_SupportsFSW
3229 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3231 * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3234 2007-07-15 Zoltan Varga <vargaz@gmail.com>
3236 * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3238 * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3240 2007-07-14 Zoltan Varga <vargaz@gmail.com>
3242 * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken):
3243 Implement generics support.
3244 (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3246 * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3247 type_args and method_args arguments.
3248 (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3249 (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3250 (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3252 2007-07-13 Rodrigo Kumpera <rkumpera@novell.com>
3254 * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3255 It adds a rootimage parameter to mono_reflection_get_type_internal,
3256 adds new function mono_reflection_get_type_with_rootimage and use
3257 the rootimage to resolve the types instead of the current image
3259 2007-07-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3261 * culture-info-table.h: Forgot to update after r78304.
3263 2007-07-13 Raja R Harinath <rharinath@novell.com>
3265 * class.c (mono_class_is_open_constructed_type)
3266 <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
3268 2007-07-12 Rodrigo Kumpera <rkumpera@novell.com>
3270 * class.c (mono_bounded_array_class_get): method fails if used with
3271 an incomplete TypeBuilder enum (no basetype field), fixed it by
3272 avoiding calculating the size for such array as it cannot be instantiated.
3275 2007-07-12 Raja R Harinath <rharinath@novell.com>
3277 * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
3279 * metadata.c, reflection.c: Update to changes.
3281 2007-07-11 Rodrigo Kumpera <rkumpera@novell.com>
3283 * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
3284 mono_class_is_valid_enum, they are used to valide a enum when loading.
3285 * reflection.c: used new functions to throw TypeLoadException when and
3286 invalid enum is build with TypeBuilder. Fixes #82018
3288 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3290 * object.c: forgot commit of mono_class_setup_methods () to access
3292 * object-internals.h: added a few more handy fields to
3295 2007-07-11 Zoltan Varga <vargaz@gmail.com>
3297 * object.c (build_imt): Call mono_class_setup_methods () before accessing
3300 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3302 * class-internals.h, object-internals.h, object.c: IMT-based
3303 interface invocation core from Massimiliano Mantione
3304 (massi@ximian.com) with a reworked arch-specific interface,
3305 bsearch implementation and a few bugfixes and memory savings by me.
3307 2007-07-10 Rodrigo Kumpera <rkumpera@novell.com>
3309 * class.c (mono_class_create_from_typedef): mono would segfault if
3310 an enum did not have a __value field. It now throws a TypeLoadException
3311 for such cases. Fix bug #82022
3313 2007-07-10 Zoltan Varga <vargaz@gmail.com>
3315 * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
3317 2007-07-09 Mark Probst <mark.probst@gmail.com>
3319 * class.c (mono_class_init): If a class is already inited but has
3320 an exception_type set, return FALSE, not TRUE. Fixes: 82050.
3322 2007-07-09 Mark Probst <mark.probst@gmail.com>
3324 * class.c: Properly handle the case of an unimplemented interface
3325 method. Fixes: 81673.
3327 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
3329 * class-internals.h, object.c: cleanup patch from massi: use
3330 MonoVTable->interface_bitmap since the vtable interfaces offset array
3333 2007-07-10 Zoltan Varga <vargaz@gmail.com>
3335 * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
3336 GetMDStreamVersion icall instead.
3338 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
3340 * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
3341 not use mono_dl_build_path() with a full library name: makes
3342 fallbacks to libgaim and libfam work.
3344 2007-07-06 William Holmes <billholmes54@gmail.com>
3346 * assembly.c: Added a continue statement in probe_for_partial_name when
3347 parse_assembly_directory_name fails. Fixes : 82002
3349 2007-07-06 Rodrigo Kumpera <rkumpera@novell.com>
3351 * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
3352 and added a verification for TYPEDBYREF.
3353 * verify.c (verify_stack_type_compatibility): fix handling of byref types,
3354 make native int interchangeable with int32 and some small cleanup and formating.
3355 * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
3356 handle byref of byref.
3357 * verify.c (push_local): handle byref of byref.
3358 * verify.c (do_binop): invalid mix of values is unverifiable
3359 * verify.c (do_invoke_method): fixed the handling of bad params on stack and
3360 added visibility checks
3361 * verify.c (field related method): added visibility checks
3362 * verify.c (do_push_field): cannot take the address of a temporary valuetype field
3364 2007-07-06 Zoltan Varga <vargaz@gmail.com>
3366 * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
3369 2007-07-05 Zoltan Varga <vargaz@gmail.com>
3371 * profiler.c (mono_profiler_load): Fix an off-by-one error.
3373 * marshal.c (emit_marshal_string): When returning a string from managed code,
3374 allways make a copy even for unicode strings. Fixes #81990.
3376 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
3378 * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
3379 of byref generic inst types (bug #81997).
3381 2007-07-03 Rodrigo Kumpera <rkumpera@novell.com>
3383 * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
3384 * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
3386 2007-07-02 Zoltan Varga <vargaz@gmail.com>
3388 * marshal.c (emit_marshal_string): Add support for unicode strings in
3389 MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
3391 2007-07-02 Rodrigo Kumpera <rkumpera@novell.com>
3393 * verify.c: field load/store are now verified, missing only access checks now
3395 2007-06-28 Martin Baulig <martin@ximian.com>
3397 * mono-debug.c (mono_debug_debugger_version): New public variable.
3399 2007-06-24 Gert Driesen <drieseng@users.sourceforge.net>
3401 * locales.c: When constructing DateTimeFormat or NumberFormat for
3402 MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
3403 MonoCultureInfo contructed from the current locale is always
3404 read-only and has UseUserOverride set to true. All MonoCultureInfo
3405 instances returned for GetCultures have both IsReadOnly and
3406 UseUserOverride set to true. Fixes part of bug #81930.
3408 2007-06-22 Jonathan Chambers <joncham@gmail.com>
3410 * icall-def.h: Update System.__ComObject icalls
3411 * marshal.c: Avoid managed transition (and object creation)
3412 when looking up COM interface in RCW.
3415 Code is contributed under MIT/X11 license.
3417 2007-06-22 Zoltan Varga <vargaz@gmail.com>
3419 * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
3420 to avoid crashes during assembly unloading.
3422 2007-06-22 Raja R Harinath <rharinath@novell.com>
3424 Fix MethodInfo.IsGenericMethodDefinition
3425 * reflection.c (mono_reflection_bind_generic_method_parameters):
3426 Rearrange code to ensure we always uses a generic method definition.
3427 * class.c (mono_class_inflate_generic_method_full): Set
3428 'generic_container' field only for generic method definitions.
3429 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3430 Use presense of 'generic_container' field as indication of being a
3431 generic method definition.
3433 2007-06-21 Zoltan Varga <vargaz@gmail.com>
3435 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3437 * object-internals.h: Reflect changes in the layout of the managed Delegate
3440 * object-internals.h reflection.c icall-def.h: Applied patch from Robert
3441 Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
3442 runtime memory used by the dynamic method. Fixes #77146.
3444 2007-06-21 Dick Porter <dick@ximian.com>
3447 * file-io.c (convert_share): Cope with FileShare.Delete. Patch
3448 from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
3451 2007-06-21 Raja R Harinath <rharinath@novell.com>
3453 * reflection.c (method_encode_methodspec): Add a tripwire.
3454 * class.c (inflate_generic_type): The fully open generic type is
3455 not the same as the generic type definition.
3457 2007-06-21 Martin Baulig <martin@ximian.com>
3459 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
3461 * mono-debug-debugger.h
3462 (MonoDebuggerBreakpointInfo): Removed.
3463 (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3464 (mono_debugger_remove_breakpoint): Likewise.
3465 (mono_debugger_breakpoint_callback): Likewise.
3466 (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3468 2007-06-21 Raja R Harinath <rharinath@novell.com>
3470 * metadata.c (mono_metadata_lookup_generic_class): The fully open
3471 generic type is not the same as the generic type definition.
3472 * class.c (mono_generic_class_get_class): Likewise.
3474 2007-06-20 Geoff Norton <gnorton@customerdna.com>
3476 * icall.c: The second argument to
3477 System.Reflection.MethodBase.GetMethodFromHandleInternalType
3478 is a MonoType not a MonoClass.
3480 2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
3482 * verify.c: support for function pointers in the verifier
3484 2007-06-20 Rodrigo Kumpera <kumpera@gmail.com>
3486 * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
3488 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
3490 * assembly.c: removed Mono.Data.SqliteClient from the list of
3491 forward-compatible assemblies as it breaks the ABI (bug #81899).
3493 2007-06-19 Raja R Harinath <rharinath@novell.com>
3495 * metadata.c (mono_metadata_lookup_generic_class): Protect cache
3496 lookup/update with the loader lock.
3497 * reflection.c (mono_class_bind_generic_parameters): No need to
3498 protect mono_metadata_lookup_* with the loader lock.
3499 * class.c (inflate_generic_type): Likewise.
3501 * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
3502 on a generic instantiated type.
3504 2007-06-18 Rodrigo Kumpera <kumpera@gmail.com>
3506 *verify.c: produce meanfull error messages on verification error
3507 *verify.c: fixed some cases of verification errors reported as validation errors
3508 *pedump.c: fixed the error name array, now it shows validation errors properly
3509 *verify.h: fixed the contant that should be used for verification errors
3511 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
3513 * metadata.c, image.c, metadata-internals.h: part of the fixes needed
3514 for bug #77596, 81858 and 80743 (generics data structures on domain
3517 2007-06-15 Raja R Harinath <rharinath@novell.com>
3519 Avoid allocating 'MonoGenericContext' on the heap.
3520 * class-internals (_MonoMethodInflated::context): Make field
3521 inline, not a pointer.
3522 * loader.c (method_from_methodspec): Allocate 'new_context' on the
3523 stack. Use the context embedded within the inflated method as the
3524 hash key, rather than 'new_context'.
3525 * class.c (inflate_generic_context): Simplify. Return a struct
3526 rather than allocating on the heap.
3527 (mono_class_inflate_generic_method_full): Update to changes. Now,
3528 doesn't salt away a copy of the context -- simplifying the
3529 lifetime rules of a 'MonoGenericContext *'.
3530 (mono_method_get_context): Return pointer to embedded context.
3531 (setup_generic_array_ifaces): Allocate temporary context on stack.
3532 * reflection.c (inflate_mono_method): Likewise.
3533 (mono_reflection_bind_generic_method_parameters): Likewise.
3534 Use the context embedded within the inflated method as the hash key.
3536 Avoid a source of allocation of 'MonoGenericContext'.
3537 * class-internals.h (_MonoGenericClass::context): Combine 'inst'
3538 and 'cached_context' fields into embedded 'MonoGenericContext' field.
3539 * class.c: Update to changes.
3540 (mono_generic_class_get_context): Simplify drastically. Now just
3541 returns a pointer to the field.
3542 * metadata-internals.h (mono_metadata_generic_context_hash): Mark
3543 argument as a const pointer.
3544 (mono_metadata_generic_context_equal): Likewise.
3545 * metadata.c, loader.c, icall.c, reflection.c, verify.c:
3548 2007-06-14 Rodrigo Kumpera <kumpera@gmail.com>
3550 * verify.c improved the handling of brtrue/brfalse, factored out common code
3552 2007-06-14 Raja R Harinath <rharinath@novell.com>
3554 Kill MonoGenericMethod.
3555 * class-internals.h (MonoGenericContext::method_inst): Rename from
3556 'gmethod' and convert to a MonoGenericInst.
3557 (MonoGenericMethod): Remove.
3558 * metadata.h (MonoGenericMethod): Note that the name is obsolete.
3559 * loader.c (method_from_methodspec): Update to changes. Use a
3560 MonoGenericContext as the key to the hashtable.
3561 * metadata.c (mono_metadata_generic_context_equal): Rename from
3562 'mono_metadata_generic_method_equal' and take MonoGenericContext.
3563 (mono_metadata_generic_context_hash): Likewise from
3564 'mono_metadata_generic_method_hash'. Change hash function.
3565 (mono_metadata_load_generic_params): Update to changes.
3566 (mono_get_shared_generic_method): Remove.
3567 * metadata-internals.h (mono_get_shared_generic_method): Remove.
3568 * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
3569 (inflate_generic_context): Likewise.
3570 (mono_class_inflate_generic_method_full): Likewise.
3571 (setup_generic_array_ifaces): Likewise.
3572 (mono_class_create_from_typespec): Likewise.
3573 * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
3574 (method_encode_methodspec): Update callsite.
3575 (reflection_methodbuilder_to_mono_method): Update to changes.
3576 (mono_reflection_bind_generic_method_parameters): Likewise. Use a
3577 MonoGenericContext as the key to the hashtable.
3578 (inflate_mono_method): Update to changes.
3580 * class-internals.h (MonoGenericMethod::container): Remove.
3581 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3583 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
3585 * profiler-private.h, profiler.c, profiler.h: added API to profile
3588 2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
3590 * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments
3592 2007-06-13 Rodrigo Kumpera <kumpera@gmail.com>
3594 * verify.c: method invocation is now validated, now we verify parameter types on stack.
3595 Fixed overflow and underflow not aborting the verification process.
3597 2007-06-13 Mark Probst <mark.probst@gmail.com>
3599 * class-internals.h (MonoStats): Added stats entries for dynamic
3602 2007-06-12 Zoltan Varga <vargaz@gmail.com>
3604 * loader.c (mono_free_method): Free header->locals and header->clauses.
3606 * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
3609 * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
3611 * class.c (setup_interface_offsets): Allocate memory from the image mempool.
3613 2007-06-12 Raja R Harinath <rharinath@novell.com>
3615 * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
3618 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
3620 *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
3622 2007-06-11 Raja R Harinath <harinath@gmail.com>
3624 MonoGenericMethod on a diet
3625 * class-internals.h (_MonoMethodInflated::reflection_info): Move
3627 (_MonoGenericMethod::reflection_info): ... from here.
3628 * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3630 * reflection.c (inflate_mono_method): Likewise.
3631 (mono_reflection_bind_generic_method_parameters): Likewise.
3633 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
3635 *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
3636 *verify.c: factored long ldarg forms to share code with short forms
3638 2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
3640 *verify.c: fixed code formating factored some duplicate code
3643 *verify.h: fixed binary incompatibility introduced earlier
3645 *pedump.c: fixed formating
3647 2007-06-11 Raja R Harinath <harinath@gmail.com>
3649 Fix assertion when disassembling Mono.C5.dll
3650 * loader.c (method_from_methodspec): Avoid inflating a method
3651 twice with the same context. If the methodref is inflated, use
3652 the declaring method instead.
3654 * class.c (mono_class_from_generic_parameter): Fix case similar to
3655 bug #81830 handled below, but for method containers.
3657 2007-06-10 Raja R Harinath <harinath@gmail.com>
3659 * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
3660 get_shared_generic_class. Directly inflate the instance.
3661 [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
3662 (inflate_generic_class): Delete.
3663 (get_shared_generic_class): Delete. Move setting of
3664 'cached_class' and 'cached_context' ...
3665 * metadata.c (mono_metadata_lookup_generic_class): ... here.
3667 * metadata.c (mono_metadata_lookup_generic_class): Change
3668 signature to take the components of a MonoGenericClass rather than
3669 an allocated MonoGenericClass. Change semantics to be intern-like.
3670 * reflection.c (mono_class_bind_generic_parameters): Update to
3671 changes. Make locking region tighter.
3672 * class.c (inflate_generic_class): Update to changes.
3673 (get_shared_generic_class): Likewise.
3674 * metadata-internals.h: Likewise.
3676 * reflection.c (mono_class_bind_generic_parameters): Take and
3677 return a MonoClass*, not a MonoType*. Add 'is_dynamic' parameter.
3678 (mono_reflection_bind_generic_parameters): Use
3679 'mono_class_bind_generic_parameters' rather than duplicate the code.
3680 * class.c (mono_bounded_array_class_get): Update to changes.
3681 * object-internals.h: Likewise.
3683 * reflection.c (mono_class_bind_generic_parameters): Only support
3684 parameterizing generic type definitions. Remove support for other
3687 2007-06-08 Zoltan Varga <vargaz@gmail.com>
3689 * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
3691 * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
3692 in the dynamic case.
3694 2007-06-08 Gert Driesen <drieseng@users.sourceforge.net>
3696 * threads.c: When cleaning up thread, reset the Background bit.
3699 2007-06-08 Jonathan Chambers <joncham@gmail.com>
3701 * metadata.c: Move variable declarations to top of scope.
3702 * verify.c: Move variable declarations to top of scope.
3704 Code is contributed under MIT/X11 license.
3706 2007-06-08 Raja R Harinath <rharinath@novell.com>
3708 * reflection.c (mono_class_bind_generic_parameters): Replace
3709 open-coded loop with mono_metadata_inflate_generic_inst.
3711 * class.c (get_shared_generic_class): Don't call
3712 mono_get_shared_generic_inst. Use the container's own
3715 * metadata.c (mono_metadata_load_generic_params): Move
3716 initialization of 'context' field here from ...
3717 * class.c (mono_class_create_from_typedef): ... here, and ...
3718 * loader.c (mono_get_method_from_token): ... here.
3720 * class.c (get_shared_generic_class): Rename from
3721 mono_get_shared_generic_class and make static.
3722 (mono_get_shared_generic_inst): Move to metadata.c.
3723 * loader.c (mono_get_shared_generic_method): Likewise.
3724 * class-internals.h, metadata-internals.h: Update to changes.
3727 * class.c (mono_class_from_generic_parameter): Don't assume a
3728 generic container owner exists. Generic containers from monodis
3731 2007-06-06 Rodrigo Kumpera <kumpera@gmail.com>
3733 * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
3734 * verify.h: new typedefs to returns the non-verifiable status
3735 * verify.c: initial implementation of generics, stack merging and object compatibility check
3737 2007-06-06 Mark Probst <mark.probst@gmail.com>
3739 * class.c, image.c, class-internals.h (MonoImage): class_cache is
3740 a MonoInternalHashTable again (fixed bug in internal hash table
3743 2007-06-06 Mark Probst <mark.probst@gmail.com>
3745 * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3746 MonoInternalHashTable again (fixed bug in internal hash table
3749 2007-06-06 Mark Probst <mark.probst@gmail.com>
3751 * class.c, image.c, class-internals.h, domain.c,
3752 domain-internals.h (MonoImage): Reverting MonoInternalHashTable
3753 changes. Have to figure out what makes them break the SWF
3756 2007-06-04 Mark Probst <mark.probst@gmail.com>
3758 * class.c, image.c, class-internals.h (MonoImage): class_cache is
3759 a MonoInternalHashTable now.
3761 2007-06-04 Mark Probst <mark.probst@gmail.com>
3763 * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
3764 MonoInternalHashTable now.
3766 2007-05-31 Zoltan Varga <vargaz@gmail.com>
3768 * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
3771 * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
3773 * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
3774 dependent trampoline.
3776 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3778 * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
3780 2007-05-29 Robert Jordan <robertj@gmx.net>
3782 * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
3784 2007-05-28 Zoltan Varga <vargaz@gmail.com>
3786 * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
3788 2007-05-25 Jonathan Chambers <joncham@gmail.com>
3790 * marshal.c: Fix interface lookup loops for
3791 cominterop_get_com_slot_for_method and
3792 cominterop_get_method_interface. Only need to lookup
3793 if type is a class, else use interface type method is on.
3795 Code is contributed under MIT/X11 license.
3797 2007-05-25 Sebastien Pouliot <sebastien@ximian.com>
3799 * reflection.c: HasSecurity can be present even if no specially
3800 encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
3801 SecurityAttribute). Fix CAS regression tests on buildbot.
3803 2007-05-24 Jonathan Chambers <joncham@gmail.com>
3805 * appdomain.c: Add configure checks for header files.
3806 * image.c: Add configure checks for header files.
3807 * file-io.c: Add configure checks for header files.
3808 * debug-mono-symfile.c: Add configure checks for header files.
3809 * threadpool.c: Add configure checks for header files.
3810 * console-io.c: Add configure checks for header files.
3811 * profiler.c: Add configure checks for header files.
3812 * rawbuffer.c: Add configure checks for header files.
3813 * icall.c: Add configure checks for header files.
3814 * rand.c: Add configure checks for header files.
3815 * socket-io.c: Add configure checks for header files.
3817 Code is contributed under MIT/X11 license.
3819 2007-05-24 Zoltan Varga <vargaz@gmail.com>
3821 * reflection.c (mono_custom_attrs_from_builders): Remove the
3822 assertion as it breaks the build.
3824 * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
3826 * reflection.c (lookup_custom_attr): Make a copy here too.
3828 * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
3831 * class.c (mono_class_init): Avoid accessing the metadata in dynamic
3834 * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
3837 2007-05-22 Zoltan Varga <vargaz@gmail.com>
3839 * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
3840 (load_cattr_value): Ditto.
3842 2007-05-20 Zoltan Varga <vargaz@gmail.com>
3844 * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
3846 2007-05-19 Gert Driesen <drieseng@users.sourceforge.net>
3848 * threads.c: In "start_wrapper", set apartment_state to MTA if
3849 apartment_state is Unknown and we're running on 2.0 profile or
3851 * object.c: In "mono_runtime_exec_main", if STAThread is not applied
3852 to main method, then set apartment_state to Unknown on 1.0 profile,
3853 and MTA on 2.0 profile.
3855 2007-05-16 Jb Evain <jb@nurv.fr>
3857 * class-internals.h (MonoDefaults): Add an attribute_class and
3858 customattribute_data_class.
3859 * domain.c (mono_init_internal): Populate them.
3860 * reflection.c: Use them to remove duplicates. Make a vew
3861 MonoClass variables `static'.
3863 2007-05-15 Massimiliano Mantione <massi@ximian.com>
3865 * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
3866 step in implementing IMT, so that all isinst checks now can go
3868 This was needed because vtables for TransparentProxy need to look
3869 like the vtable of the "target" class, so they need to point to
3870 its interface bitmap directly.
3872 * object.c: inside "mono_class_create_runtime_vtable" and
3873 "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
3875 2007-05-15 Atsushi Enomoto <atsushi@ximian.com>
3877 * object-internals.h
3878 culture-info.h : added territory field in MonoCulture and
3879 CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
3880 * locales.c : fill territory field above too.
3881 * culture-info-table.h : regenerated.
3883 2007-05-12 Zoltan Varga <vargaz@gmail.com>
3885 * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
3888 2007-05-11 Jonathan Chambers <joncham@gmail.com>
3890 * object.c: Always initialize apartment, even if
3891 there is no custom attributes on entry point.
3893 Code is contributed under MIT/X11 license.
3895 2007-05-10 Jonathan Chambers <joncham@gmail.com>
3897 * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
3898 * metadata.c: If no encoding is set, check for unicode
3901 Code is contributed under MIT/X11 license.
3903 2007-05-09 Jonathan Chambers <joncham@gmail.com>
3905 * threads.c: Handle if mono_thread_current returns NULL
3907 Code is contributed under MIT/X11 license.
3909 2007-05-09 Jonathan Chambers <joncham@gmail.com>
3911 * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
3912 in start_wrapper. Added mono_thread_init_apartment_state and
3913 mono_thread_cleanup_apartment_state.
3914 * object.c: Initialize thread apartment state on main thread
3915 by checking for STAThreadAttribute on entry point.
3916 * object-internals.h: Add apartment_state field to MonoThread.
3917 * threads-types.h: Add unmanaged definition of
3918 System.Threading.ApartmentState, MonoThreadApartmentState.
3920 Code is contributed under MIT/X11 license.
3922 2007-05-08 Jonathan Chambers <joncham@gmail.com>
3924 * class.c: Fix windows build.
3925 * class-internals.h: Fix windows build.
3927 Code is contributed under MIT/X11 license.
3929 2007-05-08 Robert Jordan <robertj@gmx.net>
3931 * process.c (CreateProcess_internal):
3932 Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
3933 .CreateNoWindow was specified. Fixes #81496.
3935 2007-05-08 Massimiliano Mantione <massi@ximian.com>
3937 * class-internals.h: Removed "MonoClass.interface_offsets" as a first
3938 step in implementing IMT, replaced it with two compact arrays
3939 (interfaces_packed and interface_offsets_packed) and a bitmap that
3940 is used for isinst checks (interface_bitmap).
3942 * class.c: (compare_interface_ids): compare function to pass to
3943 bsearch when looking for an interface with a given id.
3944 (mono_class_interface_offset): reimplemented using bsearch on
3945 interfaces_packed, getting the offset from interface_offsets_packed.
3946 (print_implemented_interfaces): utility debugging function.
3947 (setup_interface_offsets): reworked to initialize interfaces_packed,
3948 interface_offsets_packed and interface_bitmap.
3950 * object.c: replaced all accesses to "MonoClass.interface_offsets"
3951 with uses of interfaces_packed and interface_offsets_packed.
3953 2007-05-08 Massimiliano Mantione <massi@ximian.com>
3955 * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
3956 mono_class_interface_offset prototype to wrap all accesses to
3957 "MonoClass.interface_offsets".
3959 * class.c: Implemented mono_class_interface_offset, and wrapped all
3960 accesses to "MonoClass.interface_offsets".
3962 * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
3963 "MonoClass.interface_offsets".
3965 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3967 * icall.c, icall-def.h: implemented new GetFieldFromHandle and
3968 GetMethodFromHandle overloads (bug #78637).
3970 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3972 * assembly.c: parse ProcessorArchitecture in assembly name and ignore
3973 it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
3975 2007-05-01 Zoltan Varga <vargaz@gmail.com>
3977 * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
3980 * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
3982 (mono_custom_attrs_from_index): Ditto.
3984 * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes.
3987 2007-04-30 Zoltan Varga <vargaz@gmail.com>
3989 * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
3990 is now allocated from a mempool.
3992 2007-04-28 Zoltan Varga <vargaz@gmail.com>
3994 * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
3995 caller holds threads_lock, leading to deadlocks. Fixes #81476.
3997 2007-04-26 Zoltan Varga <vargaz@gmail.com>
3999 * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4000 mono_loader_clear_error () too late. Fixes #81463.
4002 2007-04-26 Atsushi Enomoto <atsushi@ximian.com>
4004 * culture-info-table.h : regenerated.
4006 2007-04-25 Zoltan Varga <vargaz@gmail.com>
4008 * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4011 2007-04-25 Dick Porter <dick@ximian.com>
4013 * Makefile.am: Put the mingw enforced-optimisation back into the
4014 PLATFORM_WIN32 section.
4016 2007-04-24 Zoltan Varga <vargaz@gmail.com>
4018 * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4021 * image.c (mono_image_load_module): New API function to load a module reference.
4023 * image.c (load_modules): Load modules lazily. Fixes #80812.
4025 * class.c (mono_class_from_typeref): Use mono_image_load_module.
4027 * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4029 * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this
4030 to mono_image_load_module_dynamic.
4032 2007-04-23 Jonathan Chambers <joncham@gmail.com>
4034 * marshal.c: Fix calling convention for CCW on non-windows
4035 platforms. STDCALL on windows, CDECL everywhere else to work
4036 with XPCOM and MainWin COM.
4038 Code is contributed under MIT/X11 license.
4040 2007-04-23 Martin Baulig <martin@ximian.com>
4045 (method_from_memberref): Added `gboolean *used_context' argument.
4046 (mono_get_method_from_token): Likewise.
4047 (mono_get_method_full): Don't insert the method in the cache when
4048 `used_context' is true.
4050 2007-04-23 Raja R Harinath <rharinath@novell.com>
4052 * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4054 * reflection.c (mono_reflection_bind_generic_parameters): Don't
4055 create new MonoTypes for returned types.
4056 * class.c (mono_generic_class_get_class): Export mono-internal.
4057 * class-internals.h: Update to changes.
4059 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4061 * threadpool.c, threadpool.h, icall-def.h: patch from
4062 Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4064 2007-04-18 Zoltan Varga <vargaz@gmail.com>
4066 * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4068 * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4070 * threads.c (mono_thread_get_stack_bounds): New helper function.
4072 * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4073 Correctly compute stack bounds when attaching. Fixes #81394.
4075 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4077 * reflection.c: fix handling of doubles in custom attributes
4078 for the arm-fpa format (bug #81368).
4080 2007-04-18 Raja R Harinath <rharinath@novell.com>
4082 * reflection.c (assembly_add_win32_resources): Mildly relax an
4083 bounds check to let the end pointer point just past the end of the
4084 allocated buffer. (may fix #81384)
4086 2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
4088 * culture-info-table.h : regenerated.
4090 2007-04-07 Zoltan Varga <vargaz@gmail.com>
4092 * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4093 the thread is aborted early.
4095 2007-04-05 Dick Porter <dick@ximian.com>
4097 * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4098 FindFirstFile()/FindNextFile() to find entries. This lets the
4099 io-layer versions use MONO_IOMAP compatibility helpers. Fixes bug
4102 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4104 ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4106 2007-04-04 Martin Baulig <martin@ximian.com>
4109 (mono_method_desc_full_match): Add support for nested classes.
4111 2007-04-02 Zoltan Varga <vargaz@gmail.com>
4113 * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4115 2007-04-01 Zoltan Varga <vargaz@gmail.com>
4117 * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4118 waiting for too many threads.
4120 2007-03-28 Sebastien Pouliot <sebastien@ximian.com>
4122 * environment.c: Fix return value check on uname so we can get the
4123 executing version on Solaris operating systems.
4125 2007-03-28 Jb Evain <jbevain@gmail.com>
4127 * class.c (mono_type_get_name_recurse): Complete the
4128 fix for the creation of assembly qualified names for
4129 pointer types. Fixes #81208.
4131 2007-03-27 Dick Porter <dick@ximian.com>
4133 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4134 of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4138 (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4139 the value of ReleaseMutex().
4141 2007-03-27 Dick Porter <dick@ximian.com>
4143 * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4144 in little-endian order, not network endian, so must be converted
4145 to host endian here. Fixes bug 80593.
4147 2007-03-22 Jb Evain <jbevain@gmail.com>
4149 * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4150 qualified names for pointer types. Fixes #81208.
4152 2007-03-21 Jonathan Chambers <joncham@gmail.com>
4154 * marshal.c: Add support for PreserveSigAttribute.
4156 Code is contributed under MIT/X11 license.
4158 2007-03-14 Zoltan Varga <vargaz@gmail.com>
4160 * process.c: Fix endianness issues. Fixes #81126.
4162 * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4163 multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4165 * image.c (mono_image_lookup_resource): Make this work on big-endian
4166 machines.Change API contract so the caller needs to free the return value.
4168 * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4171 2007-03-14 Martin Baulig <martin@ximian.com>
4173 * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4174 mono_type_get_desc() as well.
4176 2007-03-13 Jonathan Chambers <joncham@gmail.com>
4178 * icall.c: Fix environ access in VS.
4180 2007-03-13 Alp Toker <alp@atoker.com>
4182 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4183 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4186 2007-03-12 Zoltan Varga <vargaz@gmail.com>
4188 * reflection.c (mono_reflection_create_dynamic_method): Add support for
4189 circular references among dynamic methods. Fixes #81091.
4191 * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4193 2007-03-09 Martin Baulig <martin@ximian.com>
4195 * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4197 2007-03-09 Jonathan Chambers <joncham@gmail.com>
4199 * appdomain.c: Fix shadow copy on Windows. Use g_snprintf instead
4200 of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.
4202 Code is contributed under MIT/X11 license.
4204 2007-03-09 Gert Driesen <drieseng@users.souceforge.net>
4206 * loader.c: Reapply patch for bug #79424.
4208 2007-03-06 Zoltan Varga <vargaz@gmail.com>
4210 * metadata.c (mono_type_to_unmanaged): Only convert object to
4211 MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4213 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4215 * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4216 (and incorrectly set) is_reference field from MonoGenericInst.
4218 2007-03-06 Zoltan Varga <vargaz@gmail.com>
4220 * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4223 * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4225 * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4227 2007-03-05 Miguel de Icaza <miguel@novell.com>
4229 * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4230 FileOptions.1 value to mean "temporary", map that to
4231 FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4235 2007-03-03 Marek Habersack <mhabersack@novell.com>
4237 * appdomain.c: implement MS .Net style shadow copying. Copies of
4238 the assemblies are made in a subdirectory of the dynamic base
4239 directory, the assembly names are preserved.
4240 Copy .mdb and .config files along with the assemblies being shadowed.
4242 2007-02-28 Zoltan Varga <vargaz@gmail.com>
4244 * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4245 (emit_marshal_handleref): Ditto.
4247 * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4248 on Visual C++. Fixes #80671.
4250 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4252 * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4253 for clone operations.
4255 2007-02-28 Zoltan Varga <vargaz@gmail.com>
4257 * marshal.c: Fix warnings.
4259 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
4261 * loader.c: allow case-insensitive matching of the dll name
4262 in dllmap handling when prefixed with "i:".
4264 2007-02-20 Jonathan Chambers <joncham@gmail.com>
4266 * threads.c: Fix #ifdef for dummy_apc function for VS.
4268 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
4270 * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
4272 2007-02-19 Massimiliano Mantione <massi@ximian.com>
4273 * class.c (mono_class_setup_vtable_general): Fix bug 75903,
4274 giving precedence to the methods with a fully qualified name
4275 (InterfaceName.MethodName) when building the interface sections
4278 2007-02-16 Dick Porter <dick@ximian.com>
4280 * threadpool.c (append_job): Fix fast-path array handling, so it's
4281 less likely the array will grow exponentially when the load is
4284 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4286 * metadata-internals.h, loader.c: fix dllmap lookup order
4287 for non-function maps, too, and prepare for fallback code.
4289 2007-02-12 Robert Jordan <robertj@gmx.net>
4291 * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
4292 to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
4293 and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
4294 GlobalFree. Fixes a part of bug #77075.
4296 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
4298 * loader.c: implemented typedef parent in field memberref.
4300 2007-02-11 Jonathan Chambers <joncham@gmail.com>
4302 * marshal.c: Fix warnings and remember to call Release on
4305 Code is contributed under MIT/X11 license.
4307 2007-02-10 Miguel de Icaza <miguel@novell.com>
4309 * class-internals.h: Add MonoHandleRef definition, and
4310 handleref_class to mono_defaults.
4312 * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
4313 structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
4315 * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
4316 (do nothing on this stage)
4317 (emit_object_to_ptr_conv): Extract the handle from the HandleRef.
4318 (emit_marshal_handleref): New method, used for argument handling
4321 2007-02-08 Jonathan Chambers <joncham@gmail.com>
4323 * class.c (mono_class_setup_parent): Lazily init com types.
4324 * domain.c (mono_init_internal, mono_init_com_types): Lazily
4326 * object.c (mono_remote_class_vtable): Lazily init com types.
4327 * class-internals.h: Add iunknown and idispatch to MonoDefaults.
4328 * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
4329 * domain-internals.h: Expose mono_init_com_types.
4330 * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
4331 * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
4332 Add support for COM Callable Wrapper marshalling.
4333 * marshal.h: Add icall definitions.
4334 * gc.c: Handle freeing of CCWs in finalizer code.
4336 Code is contributed under MIT/X11 license.
4338 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
4340 * reflection.c: changed all the signature encoding code to use
4341 a variable-sized buffer.
4343 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4345 * marshal.c: locking fixes: never take the loader lock
4346 or other runtime locks when holding the marshal lock
4349 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
4351 * marshal.c: make the delegate function pointer mapping
4352 work for the moving GC.
4354 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
4356 * marshal.c: fix from Robert Jordan (robertj@gmx.net)
4359 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4361 * image.h, loader.c, metadata-internals.h: use mono-dl instead of
4364 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
4366 * threadpool.c: made the code moving-GC safe.
4368 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4370 * assembly.c, boehm-gc.c, class-internals.h, class.c,
4371 debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
4372 monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
4374 * reflection.c: warning cleanup, some threading and moving GC fixes.
4376 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
4378 * class.c, loader.c: create the needed Set/Get/Address array methods
4379 as well as the .ctors in mono_class_init (), fixes bug #80567.
4381 2007-01-24 Zoltan Varga <vargaz@gmail.com>
4383 * class.c (mono_class_layout_fields): When force-aligning a field, make sure
4384 we doesn't decrease its alignment. Should fix the sparc build.
4386 2007-01-24 Dick Porter <dick@ximian.com>
4389 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4390 Create the returned object if we need to ignore an unsupported
4391 socket option. Fixes a segfault reported by Atsushi.
4393 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4395 * class.c, object.c: restrict GC-tracked fields to
4396 UIntPtr fields used inside corlib, so we provide better
4397 type info to the GC and also allow broken packing as in
4400 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
4402 * sgen-gc.c: removed duplicated function.
4404 2007-01-19 Miguel de Icaza <miguel@novell.com>
4406 * socket-io.c (convert_sockopt_level_and_name): return -2 as a
4407 value that means that the value is not supported, but that we
4408 should not return a failure, but instead report this as a
4409 successful operation.
4411 2007-01-19 Raja R Harinath <rharinath@novell.com>
4413 Fix tests/bug79956.2.il
4414 * class.c (mono_type_get_underlying_type): Handle genericinst enums.
4415 (mono_generic_class_get_class): If the generic definition in an
4416 enum, copy over other fields related to it.
4418 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
4420 * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
4421 genericinst enums (bug #79215).
4423 2007-01-17 Massimiliano Mantione <massi@ximian.com>
4424 * class.c: Fix bug 80307.
4426 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
4428 * image.c: if the file table is not present, try to load
4429 all the modules, since we don't have info about them
4430 having or not metadata (bug #80517).
4431 * assembly.c: allow mono_assembly_load_references () to
4432 work for netmodules.
4434 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4436 * image.c, metadata-internals.h, object.c: execute module
4437 cctors when running on the 2 runtime if present (bug #80487).
4439 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4441 * icall.c: optimized InitializeArray() on bigendian.
4443 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
4445 * icall.c: fix for the broken ARM FPA double format.
4447 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
4449 * icall.c: handle endian issues for r4 and r8 types, too, in
4450 the InitializeArray() icall.
4452 2007-01-15 Miguel de Icaza <miguel@novell.com>
4454 * loader.c (mono_loader_error_prepare_exception): Clear the error
4455 once we have extracted the information from it, do this before we
4456 call into the JIT's class loading mechanisms.
4458 * object.c (mono_class_create_runtime_vtable): Do not clear the
4459 loader error before calling mono_class_get_exception_for_failure
4460 as the loader error is needed inside
4461 mono_class_get_exception_for_failure to throw the error (thinko).
4465 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4467 * reflection.c: align fields rva data so it's faster to load at
4470 2007-01-12 Raja R Harinath <rharinath@novell.com>
4472 Prepare to simplify GenericMethod handling.
4473 * class-internals.h (mono_method_get_context): New accessor function.
4474 * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4475 rather than directly accessing '->context' field.
4477 * class-internals.h (_MonoGenericParam.method): Move ...
4478 (_MonoGenericContainer): ... here. Add into union with klass field.
4479 * class.c, icall.c, loader.c, metadata.c, reflection.c:
4482 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
4484 * Makefile.am, class-internals.h, debug-helpers.c: consolidate
4485 the wrapper type enum and reduce relocations.
4487 2007-01-12 Raja R Harinath <rharinath@novell.com>
4489 * reflection.c (inflate_mono_method): Reuse method instantiation
4490 from the generic method, if available.
4492 2007-01-11 Jonathan Chambers <joncham@gmail.com>
4494 * marshal.c (emit_marshal_variant): Fix conv_arg
4495 type in last commit, based on whether parameter is byref.
4497 2007-01-11 Jonathan Chambers <joncham@gmail.com>
4499 * marshal.c (emit_marshal_variant): Handle unmanaged->managed
4501 (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
4502 MONO_TYPE_OBJECT back for VARIANT support.
4504 2007-01-11 Jonathan Chambers <joncham@gmail.com>
4506 * marshal.c, marshal.h, icall-def.h: Implement
4507 Marshal.ReAllocCoTaskMem.
4509 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
4511 * marshal.c: memory retention fixes: use the proper
4512 image cache for runtime_invoke method lookups.
4514 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
4516 * mempool.c: added code to help debug mempool allocations.
4518 2007-01-11 Dick Porter <dick@ximian.com>
4520 * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
4521 support (experimenting with faking it with IP_MTU_DISCOVER for
4522 systems that don't have IP_DONTFRAGMENT.)
4523 (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
4526 * icall-def.h: new System.Net.Sockets.Disconnect icall.
4528 * socket-io.h: Add new fields to MonoSocketAsyncResult
4529 corresponding to the new ones in Socket.cs.
4531 2007-01-11 Raja R Harinath <rharinath@novell.com>
4533 Fix IronPython regression mentioned in #80249
4534 * metadata.c (do_mono_metadata_parse_generic_class): Clear
4535 'cached_context' field, since it may have been initialized as a
4536 side-effect of metadata parsing.
4538 * class-internals.h (_MonoGenericClass.is_inflated): Remove.
4539 (_MonoGenericClass.cached_class): Move here and rename from lone
4540 remaining field of ...
4541 (_MonoInflatedGenericClass): ... this. Remove.
4542 * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
4545 Fix mcs/tests/test-128.cs regression.
4546 * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
4547 2007-01-10 change below.
4548 [MONO_TYPE_OBJECT]: Recurse into array case.
4550 2007-01-11 Raja R Harinath <harinath@gmail.com>
4552 * class-internals.h (mono_get_inflated_generic_class): Remove.
4553 * class.c (mono_get_inflated_generic_class): Remove.
4554 (mono_generic_class_get_class): Rename from
4555 mono_class_create_generic.
4556 (mono_class_from_mono_type) [GENERICINST]: Use it.
4557 * reflection.c, metadata.c: Update to changes. Use
4558 'mono_class_from_mono_type'.
4560 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
4562 * reflection.c: use passed type when encoding an array element
4563 in custom attributes (patch from David Mitchell, dmitchell@logos.com).
4565 2007-01-09 Robert Jordan <robertj@gmx.net>
4567 * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
4568 result arguments (someDelegate.EndInvoke (unrelatedAres)).
4571 2007-01-09 Raja R Harinath <rharinath@novell.com>
4573 * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
4575 * object.c (set_value): Avoid aliasing between type->data.klass
4576 and type->data.generic_class.
4578 * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
4580 2007-01-08 Raja R Harinath <rharinath@novell.com>
4582 * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
4583 between type->data.klass and type->data.generic_class.
4585 2007-01-08 Lluis Sanchez <lluis@ximian.com>
4587 * marshal.c: In MS.NET, StringBuilder objects are not copied by
4588 value in out parameters.
4590 2007-01-08 Raja R Harinath <rharinath@novell.com>
4592 Simplify invariant for MonoGenericClass::klass field.
4593 * class.c (mono_class_create_generic): Verify 'klass' is null.
4594 * metadata.c (do_mono_metadata_parse_generic_class): Don't
4595 initialize 'klass' field.
4597 2007-01-05 Raja R Harinath <rharinath@novell.com>
4599 Ongoing work to avoid redundant data and simplify invariants.
4600 * class-internals.h (_MonoGenericMethod.class_inst): Rename from
4601 'generic_class', and change type to a GenericInst.
4602 (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
4603 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4605 2007-01-05 Atsushi Enomoto <atsushi@ximian.com>
4607 * class.c : skip io-layer under PLATFORM_WIN32.
4609 2007-01-03 Tor Lillqvist <tml@novell.com>
4611 Fix #80305: In a bundled executable, look in the bundled exe
4612 assembly to determine the runtime version. Add the possibility to
4613 bundle also the machine.config file.
4615 * assembly.c (mono_assembly_open_from_bundle): Make
4616 non-static. Allow being called even if we have no bundled
4617 assemblies, and return NULL right away in that case.
4619 * domain-internals.h: Declare mono_assembly_open_from_bundle()
4622 * domain.c (app_config_parse): Take an assembly exe file name as
4623 parameter instead of a config file name. Check for a bundled
4624 config file for that assembly by calling
4625 mono_config_string_for_assembly_file() (see below) before looking
4626 for one in the file system.
4627 (get_runtimes_from_exe): Corrsponding change to call of
4629 (get_runtimes_from_exe): Check for bundled assembly exe file first
4630 by calling mono_assembly_open_from_bundle(). If no bundled
4631 assembly exe file is found, call mono_image_open() as before to
4632 look it up in the file system.
4634 * mono-config.c: Add variable bundled_machinec_onfig.
4635 (mono_config_string_for_assembly_file): New function.
4636 (mono_config_for_assembly): Move code snippet that looks for a
4637 bundled assembly .config file into the above new function. Call
4639 (mono_register_machine_config, mono_get_machine_config): New
4640 functions to set and retrieve
4642 * assembly.h: Declare mono_register_machine_config().
4644 * mono-config.h: Declare mono_get_machine_config() and
4645 mono_config_string_for_assembly_file().
4647 * icall.c: No declaration of environ necessary on Win32. It is
4648 declared (as a macro expanding to a function call) in stdlib.h.
4649 (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
4650 New internal mono function. Returns the value of
4651 mono_get_machine_config() as a Mono string.
4653 * icall-def.h: Add get_bundled_machine_config().
4655 2007-01-04 Raja R Harinath <rharinath@novell.com>
4657 Remove redundant field
4658 * class-internals.h (_MonoGenericContext.container): Remove field.
4659 * loader.c (mono_method_get_signature_full): Don't parse a
4660 "container" for a signature parse when the signature is inflated
4662 (method_from_methodspec): Likewise, for a generic_inst.
4663 * class.c, metadata.c, reflection.c: Update to changes.
4665 2006-01-04 Raja R Harinath <rharinath@novell.com>
4667 * class-internals.h (_MonoGenericClass): Rename 'context' field to
4668 'cached_context', and change semantics -- it starts off NULL, and
4669 is initialized on demand.
4670 * class.c (mono_generic_class_get_context): New accessor to
4671 replace 'context' field accesses.
4672 (mono_class_get_context): New helper.
4673 (*): Update to changes.
4674 * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
4676 2007-01-03 Miguel de Icaza <miguel@novell.com>
4678 * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
4679 before the memcpy. Fixes Marshal2 regression.
4681 2007-01-02 Jb Evain <jbevain@gmail.com>
4683 * blob.h: add a MONO_TYPE_ENUM definition
4684 * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
4685 fix the encoding of arrays of enums in custom attributes.
4689 2007-01-01 Miguel de Icaza <miguel@novell.com>
4691 * marshal.c (mono_string_to_byvalwstr): Fix this routine. The
4692 string is null terminated, but only cut the string short if it
4693 overflows the buffer.
4695 (mono_string_to_byvalstr): Also fix this routine. The code here
4696 was not properly terminating a string (it was only terminated
4697 because of the previous catch-all memset).
4699 I left the memset, because I do not know if applications expect
4700 the runtime to clear this region.
4704 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
4705 Clear the error before returning to unmanaged code to prevent the
4706 runtime from being confused later on (fixes 80420).
4707 (ves_icall_type_from_name): Always call mono_loader_clear_error
4708 after parsing a type that could have failed.
4709 (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
4711 * loader.c (mono_loader_clear_error): Fix indentation.
4713 2006-12-28 Martin Baulig <martin@ximian.com>
4715 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4717 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
4719 * reflection.c: patch from Rolf Bjarne Kvinge to fix
4720 getting a token for an EnumBuilder.
4722 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4724 * reflection.c: be more careful in case resource generation
4725 fails to create the data array.
4727 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
4729 * sgen-gc.c: write barrier for clone and fix unregister handles.
4731 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
4733 * reflection.c: some fixes needed in the generics code for the moving GC.
4735 2006-12-22 Robert Jordan <robertj@gmx.net>
4737 * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
4738 account. Fixes bug #80299.
4740 2006-12-21 Raja R Harinath <rharinath@novell.com>
4742 Fix WaitHandle usage in delegates.
4743 * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
4744 * object.c (mono_wait_handle_new): Use the property set method to
4745 initialize the handle.
4746 (mono_wait_handle_get_handle): New.
4747 * threadpool.c (mono_async_invoke): Use it.
4748 * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
4750 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
4752 2006-12-21 Jonathan Chambers <joncham@gmail.com>
4754 * marshal.c (emit_marshal): Call emit_marshal_variant and
4755 emit_marshal_com_interface when applicable.
4756 (emit_marshal_variant, emit_marshal_com_interface): Add
4757 methods for this case and remove if's from emit_marshal_object.
4759 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
4761 * filewatcher.c: updated to use the mono-dl API instead of gmodule.
4763 2006-12-19 Jonathan Chambers <joncham@gmail.com>
4765 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
4766 ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
4767 and GlobalFree on Windows. Remove FIXME.
4769 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4771 * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
4772 implementation for managed objects.
4774 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
4776 * object.c: implemented code to be used for checking
4777 that no reference field overlaps with non-references.
4779 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4781 * threadpool.c: fix queue code to be compatible with the
4784 2006-12-18 Miguel de Icaza <miguel@novell.com>
4786 * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
4787 in structures by throwing ArgumentNullException.
4789 (emit_marshal_safehandle): Also when they are null parameters.
4791 (emit_marshal_safehandle): Add support for ref
4792 SafeHandles parameters
4794 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4796 * profiler.c: updated to use the mono-dl API instead of
4799 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4801 * profiler.c: updated to use the mono-dl dynamic loading
4802 API instead of gmodule.
4804 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
4806 * profiler.c: use readlink, older versions of glib don't have
4807 g_file_read_link ().
4809 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4811 * profiler.c: try to detect the path to mono if libc fails to provide
4812 a useful name (bug #80286).
4814 2006-12-16 Raja R Harinath <rharinath@novell.com>
4817 * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
4818 instance, use the generic type definition instead.
4819 (ves_icall_Type_GetNestedTypes): Likewise.
4820 * class.c (mono_class_create_generic): Always set the
4821 nested_classes of a generic instance to NULL, even if the generic
4822 type definition has nested types.
4824 2006-12-15 Jonathan Chambers <joncham@gmail.com>
4826 * marshal.c (mono_string_from_bstr): Revert previous Windows change
4829 2006-12-15 Miguel de Icaza <miguel@novell.com>
4831 * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
4832 my arguments were in the wrong order. I also fixed the Windows
4833 version which seems to have had the same issue.
4835 (mono_free_bstr): On Unix, this is g_free.
4836 (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
4837 conversions (for the tests in corlib to pass).
4839 2006-12-14 Miguel de Icaza <miguel@novell.com>
4841 * marshal.c (emit_ptr_to_object_conv): For now, ignore
4842 MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
4843 exception if a ref SafeHandle in a struct has changed).
4845 (emit_struct_conv): Do not perform layout checks for classes
4846 derived from SafeHandle, as those are specially handled.
4848 (emit_object_to_ptr_conv): Add support for
4849 MONO_MARSHAL_CONV_SAFEHANDLE conversion.
4851 (emit_marshal_safehandle): Implement conversion of return values
4852 of safehandles (MARSHAL_ACTION_CONV_RESULT).
4854 * threads.c: WaitHandle now is compiled with two different handles
4855 "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
4858 (ves_icall_System_Threading_WaitHandle_WaitAll_internal)
4859 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
4860 these routines to cope with both kinds of fields.
4862 2006-12-12 Miguel de Icaza <miguel@novell.com>
4864 * metadata.c (mono_type_to_unmanaged): Handle the case where
4865 type->data.klass is a SafeHandle, and in that case, return the
4866 size of a pointer (MONO_NATIVE_INT) and set the conversion to be
4867 MONO_MARSHAL_CONV_SAFEHANDLE.
4869 2006-12-11 Miguel de Icaza <miguel@novell.com>
4871 * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
4872 MONO_TYPE_OBJECT cases and check for a SafeHandle here before
4873 calling emit_marshal_object.
4875 (emit_marshal_safehandle): Implement marshalling of
4876 SafeHandle parameters (no ref support yet).
4878 (MarshalAction): Document the defines as I implement
4879 them for SafeHandle.
4881 (emit_marshal_object): indentation police.
4883 * class-internals.h: Define MonoSafeHandle.
4884 Add safehandle_class to MonoDefaults type.
4886 * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
4887 list of classes to check for fields.
4889 * domain.c (mono_init_internal): Add SafeHandle to the list of
4890 mono_defaults loaded.
4892 2006-12-15 Raja R Harinath <rharinath@novell.com>
4895 * reflection.c (mono_reflection_bind_generic_parameters): If the
4896 generic type definition is a type builder, ensure that it is fully
4897 initialized before instantiating it. Kill some dead code.
4899 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
4901 * object.c: clear the loader_error () before loading
4902 more metadata stuff (bug #80258).
4904 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
4906 * icall.c, icall-defs.h: type modifiers icalls for
4907 parameters and properties.
4909 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
4911 * object.c, icall.c: fixed warnings.
4913 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4915 * marshal.c: fixed a couple of leaks and coding style in a few places.
4917 2006-12-08 Dick Porter <dick@ximian.com>
4919 * process.c: Cope with NULL ProcessStartInfo arguments on windows
4920 too. Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
4923 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4925 * process.c: ProcessStartInfo may have only filename set and
4926 arguments can be NULL.
4928 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4930 * icall.c: fix leak found by Robert Jordan.
4932 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4934 * marshal.c, marshal.h: generate managed method to access an element
4935 of a multi-dimensional array.
4937 2006-11-30 Paolo Molaro (lupus@ximian.com)
4939 * metadata.c, marshal.c: locking fixes when writing to image->mempool.
4941 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4943 * icall.c: back out GetFields () fix until the serialization code is
4944 fixed to not depend on the incorrect behaviour.
4946 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
4948 * profiler.c: provide defaults if none are set.
4950 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
4952 * Makefile.am, attrdefs.h: new public header file with
4953 constants for attributes for use by embedders.
4955 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
4957 * icall.c: GetFields () fix for bug #80064.
4959 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
4961 * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
4962 removed long unused icalls.
4964 2006-11-27 Jonathan Chambers <joncham@gmail.com>
4967 (mono_marshal_emit_managed_wrapper): Level of indirection for
4968 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
4969 can be generated without a delegate class.
4970 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
4972 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4974 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4976 * console-io.c: add the 'signal' call removed by mistake. Fixes bug
4979 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4981 * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
4982 icall-def.h: added icalls needed by System.GC.
4984 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
4986 * loader.c: ensure the class in catch clauses is handled
4987 correctly for generics methods (fixes bug#79980).
4989 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
4991 * monitor.h, monitor.c: added mono_locks_dump () function
4992 to help debug deadlocks involving managed locks.
4994 2006-11-13 Dick Porter <dick@ximian.com>
4996 * file-io.c (get_file_attributes): If the file is a symlink try
4997 and get the stat data for the target, but also add the
4998 FILE_ATTRIBUTE_REPARSE_POINT flag. This is an attempt to follow
4999 the specs for the windows symlink support, but will probably have
5000 to be reworked when I have test data from a vista machine. Fixes
5003 2006-11-13 Dick Porter <dick@ximian.com>
5005 * gc.c (mono_domain_finalize):
5006 * marshal.c (mono_delegate_begin_invoke):
5007 * threadpool.c (socket_io_init, mono_thread_pool_init)
5008 (mono_thread_pool_finish):
5009 * monitor.c (mono_monitor_try_enter_internal):
5010 * threads.c (mono_thread_resume, mono_thread_init)
5011 (mono_thread_suspend_all_other_threads)
5012 (mono_thread_execute_interruption):
5013 * appdomain.c (mono_domain_unload): Check for NULL error returns
5014 from CreateThread(), CreateEvent() and CreateSemaphore(). See bug
5017 2006-11-11 Miguel de Icaza <miguel@novell.com>
5020 (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5021 Only close the handle if the value of the handle is not
5022 INVALID_HANDLE_VALUE. This just makes the process a bit more
5025 Improvement for #75733, so that we do not run into this problem.
5028 * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5029 include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5030 internal variables. Fixes #79462
5033 2006-11-09 Dick Porter <dick@ximian.com>
5035 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5036 Use poll() not select(). Fixes bug 79397.
5038 2006-11-09 Raja R Harinath <rharinath@novell.com>
5041 * assembly.c (mono_assembly_load_from_full): Check that the given
5042 image has an assembly manifest.
5044 2006-11-09 Ankit Jain <jankit@novell.com>
5046 * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5047 (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5048 (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5050 2006-11-07 Dick Porter <dick@ximian.com>
5052 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5053 Put the old resolver behaviour back for pre-2.0 profiles.
5055 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5057 * threadpool.c: precise GC and locking fixes.
5059 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5061 * class.c: don't load types that have an explicit unaligned
5062 managed reference. Provide better info in the TypeLoad exception.
5063 Part of the fix for bug #79744.
5064 * object.c: use the correct check for class type load issues.
5066 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5068 * class.c: enforce alignment of fields with managed references
5069 even when Pack=1 is forced by the user (bug #77788).
5071 2006-11-03 Dick Porter <dick@ximian.com>
5073 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5074 If the address reverse lookup fails, return it as the hostname
5075 anyway. Fixes bug 79721.
5077 2006-11-03 Dick Porter <dick@ximian.com>
5079 * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5080 Fix build on Windows.
5082 2006-11-02 Dick Porter <dick@ximian.com>
5085 * object-internals.h:
5086 * exception.c (mono_get_exception_thread_interrupted):
5087 * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5090 * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5091 Check for pending Thread.Interrupt.
5093 2006-10-27 Massimiliano Mantione <massi@ximian.com>
5094 * loader.c: Fixed bug 79684.
5096 2006-10-27 Dick Porter <dick@ximian.com>
5098 * file-io.c (get_file_attributes): Force symlinks to directories
5099 to be returned as a regular file. Fixes bug 79733.
5100 2006-10-26 Dick Porter <dick@ximian.com>
5102 * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5103 CreateFile to open a directory then we need to set the
5104 FILE_FLAG_BACKUP_SEMANTICS flag. Fixes bug 75285.
5106 2006-10-23 Zoltan Varga <vargaz@gmail.com>
5108 * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5111 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5113 * sgengc.c: small cleanup of timer code.
5115 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5117 * sgen-gc.c: fix some warnings and start adding support for
5118 complete object removal on domain unload.
5120 2006-10-22 Gert Driesen <drieseng@users.sourceforge.net>
5122 * assembly.c: build_assembly_name should not consider a version
5123 number without build or revision number invalid. Fixes bug #79715.
5125 2006-10-18 Jonathan Chambers <joncham@gmail.com>
5127 * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5128 call kernel32 function OutputDebugString directly.
5130 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5132 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5134 * reflection.c: small cleanup, using a function to insert a MonoString
5137 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5139 * reflection.c: moving GC fixes.
5141 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5143 * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5144 all the objects with finalizers belonging to an unloading appdomain.
5146 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5148 * sgen-gc.c: added ability to allocate even when the nursery is fully
5149 pinned and fixed a couple of bugs.
5151 2006-10-15 Zoltan Varga <vargaz@gmail.com>
5153 * threads.h: Revert the last change for now.
5155 * threads.h (mono_thread_get_pending_exception): Rename this to
5156 mono_thread_get_undeniable_exception ().
5158 2006-10-15 Gert Driesen <drieseng@users.sourceforge.net>
5160 * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5161 BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5162 when fname does not refer to valid assembly. This result in a more
5163 meaningful error message.
5164 * exception.c: added mono_get_exception_bad_image_format2 which
5165 constructs a BadImageFormatException using the ctor taking a custom
5166 message and the file name. Passing in a NULL msg results in a default
5168 * exception.h: define mono_get_exception_bad_image_format2 function.
5169 * icall.c: in InternalGetAssemblyName, throw BadImageFormatException
5170 when file name pointed to an invalid IL image. Use
5171 mono_get_exception_file_not_found2 to construct FileNotFoundException,
5172 as this results in a more meaningful error message.
5174 2006-10-15 Zoltan Varga <vargaz@gmail.com>
5176 * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5179 2006-10-12 Zoltan Varga <vargaz@gmail.com>
5181 * metadata.c (mono_type_size): Change the align parameter to guint32 for
5182 consistency with the other _size functions.
5183 (mono_type_stack_size): Ditto.
5185 * class.c object.c icall.c: Fix warnings caused by the above change.
5187 * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5189 * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5191 * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5193 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5195 * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5196 process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5197 socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5198 threadpool.h, threads-types.h: mark more internal functions.
5200 2006-10-11 Dick Porter <dick@ximian.com>
5202 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5203 Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5204 reproduce the bug even before applying the fix.)
5206 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5208 * reflection.c: allow retrieving attributes for arguments in generic
5209 methods (bug #79241).
5211 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5213 * debug-mono-symfile.c: properly check fopen () result (found by
5216 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5218 * reflection.c: make error message clearer and fixed two
5219 issuelets found by Coverity.
5221 2006-10-10 Zoltan Varga <vargaz@gmail.com>
5223 * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5225 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5227 * object-internals.h, gc-internal.h, profiler-private.h:
5228 mark internal functions.
5230 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5232 * reflection.c: put data in the text section.
5233 * icall.c: recognize more types in type_from_typename ().
5234 * process.c, marshal.c: added some GC FIXMEs.
5236 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5238 * loader.c: check for NULL before initializing.
5240 2006-10-09 Zoltan Varga <vargaz@gmail.com>
5242 * gc.c (finalizer_thread): Use a non-alertable wait here.
5244 * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5245 until the correct solution is found.
5247 2006-10-06 Zoltan Varga <vargaz@gmail.com>
5249 * reflection.c (mono_module_get_object): Avoid an assert when operating on
5250 modules with no metadata. Fixes #79596.
5252 * image.c (load_metadata_ptrs): Put back the error message when
5253 the #- heap is encountered since the support is not complete yet.
5255 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5257 * gc.c: do not allow the user to SuppressFinalize () a
5258 delegate because it would leak the trampoline if present.
5260 2006-10-06 Zoltan Varga <vargaz@gmail.com>
5262 * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
5265 2006-10-05 Zoltan Varga <vargaz@gmail.com>
5267 * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
5269 * metadata.c (mono_metadata_get_param_attrs): Ditto.
5271 * row-indexes.h: Add definitions for *Ptr tables.
5273 * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
5275 * metadata.c (mono_metadata_translate_token_index): New helper function to
5276 translate table indexes used in uncompressed metadata.
5277 (mono_metadata_decode_table_row): Ditto.
5278 (mono_metadata_decode_table_row_col): Ditto.
5280 * metadata.c: Add table schema for *Ptr tables.
5282 * class.c loader.c: Use the new helper function to access the affected metadata
5285 * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
5288 2006-10-04 Zoltan Varga <vargaz@gmail.com>
5290 * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
5291 sequences which can be unbounded in size. Fixes #79583.
5293 2006-10-02 Zoltan Varga <vargaz@gmail.com>
5295 * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
5296 static initialization.
5298 * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
5300 * class-internals.h (MonoVTable): Add an 'init_failed' flag.
5302 * domain.c (mono_domain_free): Free up type_init_exception_hash.
5304 * object.c (mono_runtime_class_init): Implement correct semantics when a static
5305 ctor fails, i.e. throw the same exception on subsequent accesses.
5307 2006-09-0 Jonathan Chambers <joncham@gmail.com>
5309 * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
5310 * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
5311 Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
5312 Handle marshalling of interfaces and VARIANTs contained in structs.
5314 Code is contributed under MIT/X11 license.
5316 2006-09-30 Zoltan Varga <vargaz@gmail.com>
5318 * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
5320 * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
5323 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5325 * console-io.c: ignore previous SIGINT handler.
5327 2006-09-27 Zoltan Varga <vargaz@gmail.com>
5329 * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual
5330 (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
5331 #79460, #79461, #79485.
5333 * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
5335 * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
5338 2006-09-26 Zoltan Varga <vargaz@gmail.com>
5340 * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
5341 could be generated from it.
5343 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
5345 * rand.c: fix read loop to correctly handle EINTR.
5347 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5349 * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
5350 internal calls are defined to keep methods closer to the declaring
5351 type and allow a significant reduction in runtime relocations and
5354 2006-09-21 Gert Driesen <drieseng@users.sourceforge.net>
5356 * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
5357 exception message to have FileNotFoundException use the default
5358 assembly load error message. Fixes bug #79426.
5359 * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
5361 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5363 * threadpool.c: (start_thread_or_queue) use the root domain when
5364 creating the thread instead of the async object one.
5366 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
5368 * class.c, object.c, class-internals.h, reflection.c:
5369 for arrays, store element_size inside MonoClass (speedup
5370 for array object creation).
5372 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
5374 * icall.c: fixed CodeBase to use the file name and not the module
5377 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5379 * mono-debug.c, mono-debug.h: export find_method as
5380 mono_debug_find_method ().
5382 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5384 * debug-helpers.c, class-internals.h: added a few functions useful
5385 when debugging under gdb.
5387 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5389 * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
5390 characters that need special handling.
5392 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
5394 * mono-config.c: make the os/cpu specification more flexible,
5395 allowing lists and negation.
5397 2006-09-18 Jonathan Chambers <joncham@gmail.com>
5399 * marshal.c: COM Interop fixes. Handle case where method->klass.
5400 is interface. Handle BSTR/MonoString when null. Use CDECL as
5401 calling convention on non-windows platforms. This is for
5402 compatibility with XPCOM and MainWin COM.
5404 Code is contributed under MIT/X11 license.
5407 2006-09-18 Zoltan Varga <vargaz@gmail.com>
5409 * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
5410 correctly. Fixes #79217.
5412 * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
5414 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
5416 * mono-config.c: allow both an os and cpu attribute for dllmap
5417 and dllentry elemnets to enable a single config file to be used
5418 for multiple architectures.
5420 2006-09-18 Gert Driesen <drieseng@users.sourceforge.net>
5422 * loader.c: MonoLoaderError was cleared too soon on load failure.
5425 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
5427 * icall.c: use the defining class vtable when accessing a
5428 static field, not a pobblibly derived class.
5430 2006-09-17 Zoltan Varga <vargaz@gmail.com>
5432 * icall.c string-icalls.c: Remove references to unicode.h.
5434 * unicode.h unicode.c Makefile.am: Remove these unused source files.
5436 * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
5438 * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument,
5439 indicating the image where custom marshaller types should be looked up.
5440 (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
5441 custom marshallers, instead of corlib. Fixes #79425.
5443 2006-09-14 Zoltan Varga <vargaz@gmail.com>
5445 * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
5447 2006-09-14 Jonathan Chambers <joncham@gmail.com>
5449 * environment.c (ves_icall_System_Environment_get_ProcessorCount):
5450 Implement Environment.ProcessorCount.
5452 * environment.h (ves_icall_System_Environment_get_ProcessorCount):
5453 Implement Environment.ProcessorCount.
5456 Add Environment.ProcessorCount icall.
5458 Patch by Jason McFall.
5460 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5462 * assembly.c: don't append .exe/.dll when the filename already contains
5463 one of those extensions.
5465 2006-09-12 Martin Baulig <martin@ximian.com>
5467 * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5468 to array interfaces.
5470 2006-09-11 Martin Baulig <martin@ximian.com>
5472 * reflection.c (mono_image_build_metadata): Create the
5473 MethodImpl's after emitting all types and methods, so we don't
5474 need another fixup pass for them.
5476 2006-09-11 Zoltan Varga <vargaz@gmail.com>
5478 * class.c (mono_class_from_name_case): Fix regression introduced by the last
5481 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5483 * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
5486 2006-09-10 Zoltan Varga <vargaz@gmail.com>
5488 * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
5489 args is not set. Fixes #78926.
5491 2006-09-08 Zoltan Varga <vargaz@gmail.com>
5493 * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
5495 * image.c (load_class_names): Move this to class.c, and rename it to
5496 'mono_image_init_name_cache'.
5497 (load_modules): Fix a warning.
5499 * class.c icall.c image.c: Initialize image->name_cache lazily.
5501 * class-internals.h (MonoGetClassFromName): New hook function to find a class based
5502 on its name using information in the AOT file.
5504 * class.c (mono_class_from_name): Use the new hook function.
5506 2006-09-06 Zoltan Varga <vargaz@gmail.com>
5508 * reflection.c (mono_param_get_objects): Handle enum default parameter values
5511 * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
5514 2006-09-06 Martin Baulig <martin@ximian.com>
5516 * icall.c (mono_lookup_internal_call): Small fix.
5518 2006-09-05 Raja R Harinath <rharinath@novell.com>
5520 * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
5523 2006-09-04 Sebastien Pouliot <sebastien@ximian.com>
5525 * debug-mono-symfile.c: Fix *some* memory leaks that happens only
5526 when --debug is specified.
5528 2006-09-04 Zoltan Varga <vargaz@gmail.com>
5530 * class.c (setup_generic_array_ifaces): Fix a warning.
5532 2006-09-04 Miguel de Icaza <miguel@novell.com>
5534 * Temporarily remove the patch to assemly.c that checks the
5535 assembly versions as it breaks our gacutil.
5537 2006-09-03 Zoltan Varga <vargaz@gmail.com>
5539 * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
5541 * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
5544 * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
5545 created using the default ctor. Fixes #79152.
5546 (mono_string_builder_to_utf16): Ditto.
5548 2006-09-01 Martin Baulig <martin@ximian.com>
5550 Fix handling of the generic array interfaces.
5553 (MonoDefaults): Removed `generic_array_class' and added
5554 `generic_ilist' class.
5557 (mono_bounded_array_class_get): Add the new generic array interfaces.
5558 (setup_generic_array_ifaces): New static method; create vtable
5559 entries for each method in the generic array interfaces.
5562 (select_container): Allow "parent-less" generic methods.
5565 (mono_marshal_get_generic_array_helper): New public method.
5568 (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
5569 Renamed into ves_icall_System_Array_GetGenericValueImpl() and
5570 moved the interncall into System.Array.
5572 2006-09-01 Raja R Harinath <rharinath@novell.com>
5574 A few more cases of avoiding work on types with ->byref set.
5575 Has the real fix for #79238
5576 * icall.c (is_generic_parameter): New helper.
5577 (ves_icall_Type_GetGenericParameterPosition): Use it.
5578 (ves_icall_Type_GetGenericParameterAttributes): Likewise.
5579 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
5580 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5581 (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
5583 (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
5585 (ves_icall_Type_get_IsGenericInstance): Likewise.
5586 (ves_icall_Type_get_IsGenericType): Likewise.
5588 2006-09-01 Zoltan Varga <vargaz@gmail.com>
5590 * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
5593 * mempool.h (mono_mempool_get_allocated): New helper function.
5595 * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
5598 * mempool.c: Fix warnings and the calculation of stats.
5600 * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
5602 * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
5604 * loader.c (mono_get_method_from_token): Update method_count stat.
5606 * class-internals.h (MonoStats): Add some stats.
5608 2006-08-31 Robert Jordan <robertj@gmx.net>
5610 * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
5611 with managed variants.
5612 All code is contributed under the MIT/X11 license.
5614 2006-08-31 Zoltan Varga <vargaz@gmail.com>
5616 * reflection.c (reflection_methodbuilder_to_mono_method): Set
5617 method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
5619 * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
5621 * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
5622 with cycles in classes.
5624 * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
5626 * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is
5627 missing a [MarshalAs] directive. Fixes #79203.
5629 * marshal.c (mono_marshal_load_type_info): Fix a race in initializing
5630 klass->marshal_info. Fixes #79217.
5632 2006-08-30 Martin Baulig <martin@ximian.com>
5634 Committing a patch from Joachim Ante <joe@otee.dk>:
5635 Add support for binary data symbol stores.
5637 * debug-mono-symfile.c
5638 (mono_debug_open_mono_symbol_file): Renamed into
5639 mono_debug_open_mono_symbols() and added `raw_contents' and `size'
5643 (mono_debug_open_image): Added `raw_contents' and `size' args.
5644 (mono_debug_init_2_memory): New public function.
5646 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
5648 * icall.c: handle TypedReference in GetTypeCode (bug #79150).
5650 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5652 * appdomain.c: implement support for ShadowCopyFiles.
5654 2006-08-22 Sebastien Pouliot <sebastien@ximian.com>
5656 * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
5657 when value is NULL (and should remove CID #51).
5659 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5661 * image.c: moved 2 functions to ../utils.
5663 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
5665 * gc.c: cope with the target object of a GC handle being NULL
5668 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
5670 * class.c: recursively check parent's explicit implementations
5671 of interface methods (fixes bug #79125).
5673 2006-08-19 Miguel de Icaza <miguel@novell.com>
5675 * filewatcher.c: Avoid warnings when building, do not redefine
5676 constants that are defined.
5680 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5682 * image.c: don't fail when the link points to an absolute path.
5684 2006-08-18 Sebastien Pouliot <sebastien@ximian.com>
5686 * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
5689 2006-08-17 Miguel de Icaza <miguel@novell.com>
5691 * image.c (full_path): A new method used to obtain the actual path
5692 of an assembly even in the presence of symbolic links.
5694 This is necessary for the case where we are running a binary that
5695 has been GACed, but we are using the "published" path name
5696 ($prefix/mono/1.0/blah.exe) which happens to point to the real
5699 This was the source of the failure for the `xsp' command with the
5700 recent AppDomain changes, as far as the runtime was concerned,
5701 there were two different assemblies: $prefix/mono/1.0/blah.exe and
5702 $prefix/mono/gac/blah/version/blah.exe.
5704 (do_mono_image_open): use full path
5706 2006-08-17 Zoltan Varga <vargaz@gmail.com>
5708 * object.c (mono_class_create_runtime_vtable): Add a FIXME.
5710 2006-08-17 Sebastien Pouliot <sebastien@ximian.com>
5712 * marshal.c: Fix mono_marshal_check_domain_image if an invalid
5713 domain_id is supplied. Fix CID #241 and corlib's unit tests.
5715 2006-08-17 Zoltan Varga <vargaz@gmail.com>
5717 * class.c (mono_class_layout_fields): Set min_align to a bigger value for
5718 small structures. Fixes #78990.
5720 2006-08-17 Zoltan Varga <vargaz@gmail.com>
5722 * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
5724 * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
5726 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5729 * marshal.c: don't load all the assemblies from a domain into newly
5730 created ones. The new domains might have different rules and load
5731 assemblies from different locations. Fixes bug #76757.
5733 Patch by Lluis. Conflicts resolved by Brian Crowell.
5735 2006-08-16 Alp Toker <alp@atoker.com>
5737 * socket-io.c: First half of the fix for #79084.
5738 Set sa_size to the length of the content, not that of the struct.
5739 Don't add NULL suffix to the content, this should be done in
5740 managed code if needed.
5742 2006-08-14 Raja R Harinath <rharinath@novell.com>
5745 * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
5746 mono_metadata_parse_type returns NULL.
5748 2006-08-13 Atsushi Enomoto <atsushi@ximian.com>
5750 * normalization-tables.h : new file for string normalization data.
5751 * locales.c, locales.h, icall.c :
5752 added load_normalization_resource() for string normalization,
5754 * Makefile.am : added normalization-tables.h to the sources.
5756 2006-08-13 Zoltan Varga <vargaz@gmail.com>
5758 * marshal.c: Add more helper functions to reduce code duplication and use them
5761 2006-08-12 Zoltan Varga <vargaz@gmail.com>
5763 * marshal.c: Fix non-x86 stdcall warnings.
5765 * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use
5768 2006-08-11 Jonathan Chambers <joncham@gmail.com>
5770 * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
5771 type check on multi-dimensional arrays. Fixes #79000.
5773 2006-08-10 Jonathan Chambers <joncham@gmail.com>
5775 * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
5776 * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
5777 to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
5778 * class-internals.h: add is_com_object to class structure.
5779 * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
5780 null checks to COM object marshalling. Fix .ctor call on RCW.
5781 * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
5783 All code is contributed under the MIT/X11 license.
5785 2006-08-09 Dick Porter <dick@ximian.com>
5787 * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
5788 racing mono_monitor_allocator_lock() somewhere, so don't delete
5789 the critical section for now. Found by running and exiting
5792 2006-08-10 Zoltan Varga <vargaz@gmail.com>
5794 * marshal.c (cominterop_get_native_wrapper): Fix a warning.
5795 (ves_icall_System_ComObject_FindInterface): Ditto.
5796 (ves_icall_System_ComObject_CacheInterface): Ditto.
5798 * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
5799 (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
5801 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5803 * threadpool.c: treat pipes from process asynchronous reads as sockets
5804 when reading from them, so we get select/poll or epoll to wait for
5807 2006-08-07 Sebastien Pouliot <sebatien@ximian.com>
5809 * loader.c: Fix a typo (CID #233) in the null check.
5811 2006-08-07 Zoltan Varga <vargaz@gmail.com>
5813 * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
5814 Hopefully fixes #78949.
5816 * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from
5817 Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
5818 bytes. Fixes #78972.
5820 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5822 * filewatcher.c: we need to set errno here.
5824 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5826 * filewatcher.c: let Win32Exception get the error value.
5828 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5830 * filewatcher.c: translate errno into win32 errors for Win32Exception
5831 to know what happened.
5833 2006-08-01 Zoltan Varga <vargaz@gmail.com>
5835 * threadpool.c: Fix more warnings.
5837 * assembly.c (search_loaded): Fix warnings.
5839 * threadpool.c (mono_thread_pool_finish): Fix warnings.
5840 (mono_async_invoke): Ditto.
5842 2006-07-28 Jonathan Chambers <joncham@gmail.com>
5844 * object.c (mono_remote_class_vtable): Need to create proxy vtable
5845 entries for __ComObject type in addition to ComImport types.
5846 * marshal.c: Added support for marshalling COM RCWs. Fixed warning
5849 All code is contributed under the MIT/X11 license.
5851 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5853 * image.c: avoid tentative loading of modulerefs that contain
5854 no metadata (P/Invoke library names).
5856 2006-07-28 Dick Porter <dick@ximian.com>
5858 * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
5859 mono_loader_lock() somewhere, so don't delete the critical section
5860 for now. Found by running and exiting monodevelop.
5862 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5864 * filewatcher.c: define the inotify syscalls when we're building on
5865 linux and have sys/syscall.h. The build system might not have support
5866 for inotify but the target system might have it.
5868 2006-07-26 Miguel de Icaza <miguel@novell.com>
5870 * domain.c: Documentation updates.
5872 * loader.c (mono_free_method): Do not release the method
5873 information if we are being profiled, as profilers will use this
5874 information at shut down to present some data to the user.
5876 This is needed so that the profiler does not crash, as the
5877 profiler tends to keep MonoMethods around, and they might become
5878 invalid if we free these.
5880 (mono_get_method_constrained): Return the original CIL stream
5881 method as well, so verification can be performed against it.
5883 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5885 * filewatcher.[ch]: support for inotify file system watcher.
5886 * icall.c: add new internal calls for the inotify file system watcher.
5888 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5890 * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
5893 2006-07-20 Dick Porter <dick@ximian.com>
5895 * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
5898 2006-07-20 Dick Porter <dick@ximian.com>
5900 * threads.c (start_wrapper): Do the thread cleanup while we still
5901 hold a reference to its object. Fixes bug 78123.
5903 2006-07-18 Kornél Pál <kornelpal@gmail.com>
5905 * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
5906 * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
5907 "managed-to-managed".
5908 * icall.c: Redirect string constructors that take sbyte* to
5909 ves_icall_System_String_ctor_RedirectToCreateString.
5910 * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
5911 to CreateString () methods with matching signature.
5912 * reflection.c: Use original security informations for
5913 MONO_WRAPPER_MANAGED_TO_MANAGED.
5914 * security-manager.c: Use original security informations for
5915 MONO_WRAPPER_MANAGED_TO_MANAGED.
5916 * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
5917 that is a placeholder and only its address should be used.
5918 * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
5919 that is a placeholder and only its address should be used.
5921 2006-07-15 Jonathan Chambers <joncham@gmail.com>
5923 Begin implementing COM Interop.
5924 * appdomain.c: Increment corlib version.
5925 * class.c: Set ComImport classes' parent to __ComObject.
5926 * loader.c: Mark cominterop methods as such.
5927 * domain.c: Add __ComObject class to MonoDefaults structure.
5928 * image.c: Add 2 hashtables to the image for COM Interop related methods
5929 * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
5930 using the mempool allocator
5932 * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
5933 * metadata.h: Added cominterop field to _MonoMethodSignature struct and
5934 declaration for mono_metadata_type_dup_mp.
5936 * debug-helpers.c: Added strings for two additional wrapper types
5937 * object.c: Create proxy objects for ComImport classes
5938 * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
5939 and added __ComObject class to MonoDefaults structure.
5941 * object-internals.h: Finish MonoRealProxy definition, and add definition of
5942 MonoComInteropProxy and MonoComObject.
5944 * marshal.c: Added support for COM Interop
5945 (signature_cominterop): Converts managed signature to corresponding
5946 unmanaged COM signature.
5947 (cominterop_get_function_pointer): gets unmanaged function pointer via
5949 (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
5950 (cominterop_get_method_interface): returns interface type that method is defined on
5951 (mono_mb_emit_cominterop_call): emits native call to function pointer
5953 (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
5954 that matches signature of unmanaged function.
5955 (cominterop_get_native_wrapper): wrapper around adjusted method call.
5956 (cominterop_get_invoke): forwards call from proxy to __ComObject
5957 (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef
5958 (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface
5959 (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release
5961 * marshal.h: Added Marshal icall declarations.
5962 * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
5963 so we can access them in finalizer
5965 2006-07-14 Dick Porter <dick@ximian.com>
5967 * object.c (mono_type_initialization_cleanup): Fix a race
5968 condition by temporarily commenting out the critical section
5971 2006-07-14 Zoltan Varga <vargaz@gmail.com>
5973 * reflection.c (create_custom_attr): Fix some warnings.
5974 (create_custom_attr_data): Ditto.
5975 (typebuilder_setup_properties): Save custom attrs for properties in dynamic
5976 types. Fixes #78855.
5978 2006-07-11 Zoltan Varga <vargaz@gmail.com>
5980 * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
5982 * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
5984 2006-07-08 Zoltan Varga <vargaz@gmail.com>
5986 * reflection.c (resolve_object): Add support for DynamicMethod.
5988 * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
5989 Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
5991 2006-07-06 Sebastien Pouliot <sebastien@ximian.com>
5993 * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal
5994 don't leak GPtrArray's pdata has we have no use (nor free) for it.
5996 2006-07-01 Zoltan Varga <vargaz@gmail.com>
5998 * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
6001 2006-06-30 Raja R Harinath <rharinath@novell.com>
6003 * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6004 slightly: remove a shadow local variable.
6006 2006-06-29 Raja R Harinath <rharinath@novell.com>
6008 * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6009 definition that introduces the virtual function slot.
6010 Also fix Coverity #105.
6012 2006-06-29 Zoltan Varga <vargaz@gmail.com>
6014 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6015 for dynamic assemblies. Fixes #78724.
6017 2006-06-28 Zoltan Varga <vargaz@gmail.com>
6019 * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6022 2006-06-21 Martin Baulig <martin@ximian.com>
6025 (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6028 2006-06-21 Zoltan Varga <vargaz@gmail.com>
6030 * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6032 2006-06-20 Raja R Harinath <rharinath@novell.com>
6034 Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6036 * class.c (mono_class_create_from_typespec): Add 'context' argument.
6037 Inflate result if necessary.
6038 (mono_class_get_full): Remove old version. Rename from
6039 'mono_class_get' and add 'context' argument. Pass it to
6040 ..._create_from_typespec.
6041 (mono_class_get): New. Simple wrapper to mono_class_get_full.
6042 (mono_ldtoken): Revert change below.
6044 2006-06-20 Martin Baulig <martin@ximian.com>
6046 * class.c (mono_ldtoken): Don't pass the generic context to
6047 mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF. Fixes #78053.
6049 2006-06-15 Zoltan Varga <vargaz@gmail.com>
6051 * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6052 and later freeing it. Fixes #78638.
6054 2006-06-15 Miguel de Icaza <miguel@novell.com>
6056 * icall.c (mono_class_get_throw): Revert over-zealous error
6057 throwing, the caller for mono_class_get_throw will cope with
6058 errors when classes are not properly initialized already.
6060 The code still copes with loader exceptions though.
6062 Fixes the regression in reftype1 and reftype3 from the CAS tests.
6064 2006-06-14 Miguel de Icaza <miguel@novell.com>
6066 Fixes the `make run1' version of RuntimeAbort (to be commited,
6067 source is in Bugzilla).
6069 * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6070 FALSE on class loading failure instead of returning true.
6072 * class.c (mono_class_create_from_typedef): It is possible for
6073 mono_metadata_interfaces_from_typedef_full to fail if a class is
6074 not found, cope with this.
6077 2006-06-14 Dick Porter <dick@ximian.com>
6080 * process.c: Fix a bunch of signed/unsigned warnings from gcc
6083 2006-06-12 Atsushi Enomoto <atsushi@ximian.com>
6085 * culture-info-table.h : oops, forgot to make it nsync with r61548.
6087 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
6089 * icall.c: Another fix for building mono in Visual Studio.
6091 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
6093 * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6095 2006-06-09 Martin Baulig <martin@ximian.com>
6097 * debug-mono-symfile.c: Put this back and really fix it this
6098 time. Sorry for all the trouble.
6100 2006-06-08 Zoltan Varga <vargaz@gmail.com>
6102 * icall.c (mono_class_get_throw): Fix a warning.
6103 (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw
6104 ReflectionTypeLoadException if needed. Fixes #78606.
6106 * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6107 (mono_class_init): Ditto.
6109 * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6110 ref_only exceptions.
6111 (mono_loader_clear_error): Make this work even if there is no error.
6113 2006-06-08 Jonathan Chambers <jonathan.chambers@ansys.com>
6115 * object-internals.h marshal.c marshal.h icall.c: Implement method
6116 Marshal.GetComSlotForMethodInfo using internal call.
6118 2006-06-07 Zoltan Varga <vargaz@gmail.com>
6120 * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6121 a function for signalling it.
6123 * class.c (mono_class_from_typeref): Use the new kind of loader error when
6124 a referenced assembly is not found.
6126 * loader.c (mono_loader_error_prepare_exception): Add support for
6127 LOADER_ERROR_ASSEMBLY. Fix formatting.
6129 2006-06-05 Jonathan Chambers <jonathan.chambers@ansys.com>
6131 * domain.c appdomain.c class-internals.h marshal.c: Add support
6132 for VARIANT marshalling on windows and increment corlib version
6133 since Variant struct was added.
6135 2006-06-03 Miguel de Icaza <miguel@novell.com>
6137 * debug-mono-symfile.c: Revert Martin's previous patch which broke
6138 stack trace line information:
6140 (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6141 (Martin) when looking up B which is between A and C, return A not C.
6145 Thanks to Alexander Olk for tracking this down.
6147 2006-06-02 Zoltan Varga <vargaz@gmail.com>
6149 * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6151 * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6152 avoid clobbering its value.
6153 (mono_string_to_lpstr): Fix a warning on windows.
6155 2006-05-31 Zoltan Varga <vargaz@gmail.com>
6157 * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6159 * reflection.c loader.c: Removed references to 'dummy' flag.
6161 * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6163 * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6164 it gets GC tracking.
6166 * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6169 * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6171 * marshal.c threadpool.c: Update callers of mono_async_result_new.
6173 * appdomain.c: Bump corlib version.
6175 2006-05-30 Zoltan Varga <vargaz@gmail.com>
6177 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6178 CEE_STIND_REF when working with object references.
6180 2006-05-31 Zoltan Varga <vargaz@gmail.com>
6182 * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6185 2006-05-30 Miguel de Icaza <miguel@novell.com>
6187 * loader.c (method_from_memberref): Fix argument value for
6188 mono_loader_set_error_method_load (I was passing the MonoClass
6189 instead of the class name char *).
6191 2006-05-30 Zoltan Varga <vargaz@gmail.com>
6193 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6194 CEE_STIND_REF when working with object references.
6196 2006-05-30 Martin Baulig <martin@ximian.com>
6198 * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6199 mono_method_full_name() change and replace the ':' with a '.'
6202 2006-05-30 Martin Baulig <martin@ximian.com>
6204 * debug-mono-symfile.c
6205 (mono_debug_symfile_lookup_location): Fix the algorithm:
6206 when looking up B which is between A and C, return A not C.
6208 2006-05-29 Martin Baulig <martin@ximian.com>
6211 (MonoDebugMethodInfo): Make the typedef public.
6212 (MonoDebugSourceLocation): New public struct.
6215 (mono_debug_source_location_from_address): Removed.
6216 (mono_debug_source_location_from_il_offset): Removed.
6217 (mono_debug_il_offset_from_address): Removed.
6218 (mono_debug_address_from_il_offset): Removed.
6219 (mono_debug_lookup_method): New public function.
6220 (mono_debug_lookup_source_location): New public function; replaces
6221 the old mono_debug_source_location_from_*() functions; see the
6222 inline documentation.
6223 (mono_debug_free_source_location): New public function.
6224 (mono_debug_print_stack_frame): New public function; see the
6225 inline documentation.
6227 * debug-mono-symfile.c
6228 (mono_debug_find_source_location): Renamed into
6229 mono_debug_symfile_lookup_location(); only take a
6230 `MonoDebugMethodInfo *' and an `offset' argument; added inline
6232 (mono_debug_find_method): Renamed into
6233 mono_debug_symfile_lookup_method().
6235 2006-05-27 Zoltan Varga <vargaz@gmail.com>
6237 * assembly.c (mono_assembly_open_full): Dont overwrite the status
6238 returned by mono_image_open_full ().
6240 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6241 MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6244 * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6247 2006-05-27 Miguel de Icaza <miguel@novell.com>
6249 * class.c (mono_class_from_typeref): handle missing images
6250 earlier, deals with bug #78418. Refactor code;
6252 Fix a warning introduced in my previous commit (some stale code
6253 from before I revisited my patch).
6255 * class.c (mono_class_create_from_typedef): On failure, remove the
6256 class from the MonoImage->class_cache as the class is not
6257 initialized; Fixes the leak pointed out by Paolo.
6259 2006-05-25 Dick Porter <dick@ximian.com>
6261 * threads.c (mono_thread_cleanup): Build fix. Comment out the
6262 DeleteCriticalSections until I figure out which one may still be
6263 sometimes locked when mono_thread_cleanup is called.
6265 2006-05-24 Dick Porter <dick@ximian.com>
6267 * threads.c (mono_thread_cleanup): Move the threading cleanup out
6268 of mono_thread_manage and back into its own function, so it can be
6269 called after the finalizer thread has finished.
6271 * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
6273 2006-05-24 Zoltan Varga <vargaz@gmail.com>
6275 * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
6278 * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
6279 with non-blittable elements.
6280 (emit_object_to_ptr_conv): Ditto. Fixes #78492.
6282 2006-05-24 Martin Baulig <martin@ximian.com>
6284 * mono-debug-debugger.h (MonoDebuggerEvent): Added
6285 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.
6287 * mono-debug-debugger.c (mono_debugger_cleanup): Send a
6288 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
6289 `mono_debugger_event_handler' to NULL.
6291 2006-05-24 Martin Baulig <martin@ximian.com>
6293 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
6295 2006-05-24 Martin Baulig <martin@ximian.com>
6297 * mono-debug-debugger.h
6298 (mono_debugger_create_notification_function): Added
6299 `MonoCodeManager *' argument.
6301 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
6303 * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
6305 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
6307 * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
6308 * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
6311 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
6313 * icall.c: precise GC support: objects can't be stored in unmanaged
6314 memory anymore, even if they are kept alive by other references: since
6315 they can move the GC needs to be able to always find them.
6317 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
6319 * object.c: precise GC support for static fields. Support
6320 for moving GCs: write barriers and pinned allocation for interned
6323 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
6325 * domain.c, domain-internals.h: precise GC support for the MonoDomain
6328 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
6330 * class.c, gc.c: sgen and precise GC updates.
6332 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
6334 * marshal.h, marshal.c: added write barrier wrapper and precise type
6337 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
6339 * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
6342 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
6344 * reflection.c: precise and sgen GC updates.
6346 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
6348 * debug-helpers.c, class-internals.h: added write barrier wrapper type.
6350 2006-05-22 Zoltan Varga <vargaz@gmail.com>
6352 * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
6354 2006-05-20 Zoltan Varga <vargaz@gmail.com>
6356 * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
6357 MONO_TYPE_OBJECT. Fixes #78462.
6359 2006-05-18 Zoltan Varga <vargaz@gmail.com>
6361 * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct
6362 and blittable types.
6364 2006-05-17 Miguel de Icaza <miguel@novell.com>
6366 * class.c (mono_class_get_exception_for_failure): Implement parts
6367 of a TODO: if the loader error is set (instead of the class
6368 error), we return a Loader exception that can be properly thrown
6371 This was exposed by some Winforms 2.0 code that I tried to run
6372 (Atsushi pointed me to it).
6374 2006-05-17 Zoltan Varga <vargaz@gmail.com>
6376 * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
6377 uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
6379 * marshal.c (emit_marshal_vtype): Add limited support for
6380 UnmanagedType.LPStruct. Fixes #78427.
6382 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure):
6383 Applied a patch from kangaroo to fix #77523.
6385 2006-05-17 Martin Baulig <martin@ximian.com>
6388 (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
6389 (debugger_thread_created): Removed.
6390 (debugger_thread_exited): Removed.
6392 2006-05-15 Zoltan Varga <vargaz@gmail.com>
6394 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6396 * object-internals.h (MonoReflectionResource): Sync with managed version.
6398 2006-05-12 Wade Berrier <wberrier@novell.com>
6400 * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
6402 2006-05-12 Zoltan Varga <vargaz@gmail.com>
6404 * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
6405 functions try to allocate from the image mempool.
6407 2006-05-12 Dick Porter <dick@ximian.com>
6409 * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
6411 2006-05-12 Lluis Sanchez <lluis@ximian.com>
6413 * object.c: The FieldGetter and FieldSetter methods require the full
6414 name of the class, not only the name. Fixes bug #78277.
6416 2006-05-11 Miguel de Icaza <miguel@novell.com>
6418 * loader.c (method_from_memberref): Do not pass the NULL klass to
6419 mono_loader_set_error_() methods. Pass the non-NULL value
6422 2006-05-11 Zoltan Varga <vargaz@gmail.com>
6424 * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
6425 (mono_assembly_close): Null out assembly->image->references after freeing it.
6427 * image.c (mono_image_close): Free image->references.
6429 * reflection.c (mono_image_basic_init): Fix a small memory leak.
6431 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
6433 * marshal.c: In function mono_mb_add_local don't use the mb pointer
6434 before checking if it's NULL (g_assert).
6436 2006-05-10 Martin Baulig <martin@ximian.com>
6438 * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
6439 I thought I already killed that two months ago, but now it somehow reappeared.
6441 2006-05-10 Martin Baulig <martin@ximian.com>
6443 * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
6445 2006-05-10 Zoltan Varga <vargaz@gmail.com>
6447 * reflection.c: Allocate memory for dynamically created methods in the image
6450 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
6452 * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions,
6453 don't use the ad pointer before checking if it's NULL (g_assert).
6455 2006-05-09 Zoltan Varga <vargaz@gmail.com>
6457 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
6458 a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
6460 * marshal.c: Allocate all signatures from mempools.
6462 * marshal.c: Allocate some more signatures from mempools.
6464 2006-05-09 Miguel de Icaza <miguel@novell.com>
6466 * object.c (mono_load_remote_field): The code used to provide a
6467 temporary variable for returning results if the user did not
6468 provide a result pointer. But our temporary variable was allocted
6471 Fix calling code to always pass a result area. Coverity ID 103.
6473 2006-05-06 Zoltan Varga <vargaz@gmail.com>
6475 * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6476 value, not the old. Fixes #78312.
6477 (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6479 * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6480 (mono_ptr_class_get): Ditto. Also change the cache from a global one to a
6483 * assembly.c (mono_assembly_close): Free image->references.
6485 * assembly.c (mono_assembly_names_equal): Fix a warning.
6486 (mono_assemblies_cleanup): Cleanup more global data.
6488 * metadata-internals.h (MonoImage): Add 'ptr_cache'.
6490 * image.c (mono_image_close): Free up the contents of 'array_cache', free up
6491 ptr_cache and image->modules.
6493 * image.c (mono_image_init): Allocate array_cache lazily.
6495 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6497 * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
6498 behavior was changed recently and has bad side effects.
6500 2006-05-05 Zoltan Varga <vargaz@gmail.com>
6502 * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
6504 * assembly.c (mono_assembly_close): Remove a debug printf.
6506 * profiler.c (create_profiler): Use mono_aligned_addr_hash.
6508 * metadata-internals.h image.c assembly.c: Change the reference counting scheme
6509 to also allow for temporary references between mono_image_open ()/close ().
6511 * domain.c (get_runtimes_from_exe): Add a FIXME.
6513 2006-05-04 Zoltan Varga <vargaz@gmail.com>
6515 * marshal.c: Fix support for dynamic methods.
6517 * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
6519 * marshal.c (mono_marshal_cleanup): New cleanup function.
6521 * marshal.c: Rewrite the wrapper code to allocate most of its memory from the
6524 * class.c (mono_class_init): Fix leaking class->nested_classes.
6526 * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
6528 * image.c (mono_image_init): Initialize the new cashes.
6530 * image.c (mono_image_close): Destroy the new cashes.
6532 * marshal.c: Get rid of most of the static caches in favor of per-image caches.
6534 * mempool.c (mono_mempool_strdup): New helper function.
6536 * class-internals.h: Add prototype for mono_loader_unlock ().
6538 * domain.c (mono_jit_info_table_find): Fix a warning.
6539 (mono_debugger_check_runtime_version): Ditto.
6541 * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h
6542 class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
6543 functions to these modules.
6545 * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
6548 * marshal.c (mono_free_bstr): Fix a warning.
6550 * assembly.c (mono_assembly_open_full): Fix another small leak.
6552 * object.c: Fix some unload leaks in the remoting code.
6554 * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
6557 * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
6559 * reflection.c: Fix some unload leaks in dynamic assemblies.
6561 2006-05-02 Jonathan Chambers <jonathan.chambers@ansys.com>
6563 * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
6564 * marshal.h: Add BSTR support on Win32
6565 * icall.c: Add BSTR icalls
6566 * metadata.h: Add BSTR enums
6568 2006-04-28 Miguel de Icaza <miguel@novell.com>
6570 Work to catch the crash from #76795 and turn it into an
6571 exception. As I stubbed out pieces of the VisualBasic support,
6572 I found a number of places where the code was failing and I added
6573 checks to those places.
6575 * metadata.c (do_mono_metadata_parse_generic_class): Make this
6576 function return a status code. If we fail to parse the signature
6577 from mono_metadata_parse_generic_inst, return FALSE.
6579 * loader.c (mono_get_method_from_token): If we fail to load the
6580 method (mono_class_get) return NULL.
6582 * (method_from_memberref): Return NULL if we are unable to parse
6583 the method signature
6585 (mono_loader_error_prepare_exception): Since we now use the
6586 loader_error flag internally to stop processing, and obtaining
6587 exceptions that might be thrown will walk this code path the
6588 proper way of going from a MonoLoaderError into a
6589 MonoException was convoluted. This new routine encapsulates the
6590 process of turning the error into an exception and *clearing* the
6593 2006-04-27 Miguel de Icaza <miguel@novell.com>
6595 Work to catch the crashes from 75075 (cope in Assembly.GetTypes
6596 with missing assemblies), and to cope with:
6598 * Missing fieldref from a non-existing assembly.
6599 * Missing methodref from a non-existing assembly.
6601 The first batch of work to address *some* of the issues from 76661.
6603 * object.c (mono_class_create_runtime_vtable): If we fail to
6604 initialize the class raise the exception here.
6606 * metadata.c (mono_class_get_overrides_full): If any methods fail
6607 to load return the failure to the caller.
6609 * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
6610 flagging assemblies that failed to load.
6612 Do not crash if we are unable to load the assembly.
6614 (mono_assembly_close): Do nothing with REFERENCE_MISSING
6617 * loader.c (mono_loader_set_error_type_load): Change the
6618 convention to always pass unallocated strings, so we make our own
6619 copies (I know our own code had duplicated strings before, but
6620 this keeps the normal conventions).
6621 (method_from_memberref): Call mono_loader_set_error_method_load
6622 for all possible failures of loading the class.
6623 Remove assert, turn into a loader error.
6625 (mono_loader_error_to_exception): Move this routine from mini
6626 (mini_loader_error_to_exception) there was no need to have that in
6629 * class.c (mono_class_from_typeref): If we were not able to load
6630 the assembly with mono_assembly_load_reference, call the
6631 mono_loader_set_error_type_load to register the problem.
6633 (mono_class_setup_fields): If we fail to load the type from
6634 mono_metadata_parse_type_full, call mono_class_set_failure and
6635 break from the loop.
6637 If class->exception_type is set, we do not layout the fields as
6638 that might crash the runtime, and instead return (from breaking
6639 from the previous loop).
6641 (mono_class_setup_vtable): This now returns a boolean indicating
6642 whether the table was properly setup. The decision is driven by
6643 mono_class_get_overrides_full which might run into non-existing
6646 (mono_class_init): Returns TRUE on success or FALSE if there was a
6647 problem in loading the type (incorrect assemblies, missing
6648 assemblies, methods, etc).
6650 When we call mono_class_setup_fields we also check for a potential
6651 error inside this call (either a class exception or a general
6654 (mono_class_create_from_typedef): If the parent fails to load
6655 (calling mono_class_get_full) return NULL.
6659 calls to mono_metadata_parse_type_full should be checked
6660 everywhere and set the mono_class_set_failure
6661 (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
6663 The current patch checks the places where my manually constructed
6664 tests show the errors are showing up, but we should do it
6669 mono_class_init return values should be tested everywhere, like
6670 the previous case this is something that we should audit
6671 everywhere and not only on the cases exposed by the tests I
6674 2006-04-26 Miguel de Icaza <miguel@novell.com>
6676 * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
6677 boolean parameter and instead pass the information on `options'
6678 parameter (FileOptions).
6680 * icall.c: Register the new signature for MonoIO.Open.
6682 * debug-helpers.c (dis_one): Trying to understand how coverity
6683 works. Fix Run 5, item 78.
6685 2006-04-26 Dick Porter <dick@ximian.com>
6687 * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
6690 2006-04-25 Martin Baulig <martin@ximian.com>
6692 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
6694 * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
6695 debugger_thread_created().
6696 (debugger_gc_push_all_stacks): Don't handle the main thread in any
6698 (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
6699 (mono_debugger_finalize_threads): New function; undo the effects
6700 of mono_debugger_init_threads().
6701 (mono_debugger_create_all_threads): Removed.
6703 2006-04-24 Zoltan Varga <vargaz@gmail.com>
6705 * image.c (mono_image_close): Tidy up trace messages.
6707 * assembly.c (mono_assembly_close): Ditto.
6709 * assembly.c (mono_assembly_close): Clear out image->assembly so the image
6710 no longer references an already freed assembly. Fixes #78168.
6712 2006-04-21 Dick Porter <dick@ximian.com>
6714 * threads.c (mono_thread_detach): Fix reference counting when
6717 2006-04-21 Zoltan Varga <vargaz@gmail.com>
6719 * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
6722 2006-04-19 Zoltan Varga <vargaz@gmail.com>
6724 * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
6725 (mono_type_to_stind): Ditto.
6727 * marshal.c: Use the new helper functions to simplify code.
6729 * image.c (mono_image_close): Add some code for help debug assembly unloading
6732 * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
6735 * assembly.c (mono_assembly_open_full): Invoke the load hook when the
6736 assembly was already loaded in another appdomain. Fixes #78083.
6738 2006-04-13 Zoltan Varga <vargaz@gmail.com>
6740 * assembly.c (mono_assembly_load_reference): Increase the refcount of the
6741 referenced assemblies.
6742 (mono_assembly_close): Decrease the refcount of the referenced assemblies.
6744 * domain.c (mono_domain_free): Add a trace message.
6746 * appdomain.c (add_assemblies_to_domain): Ditto.
6748 * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
6751 2006-04-12 Zoltan Varga <vargaz@gmail.com>
6753 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
6755 2006-04-12 Martin Baulig <martin@ximian.com>
6757 * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
6758 `USE_INCLUDED_LIBGC'.
6760 2006-04-12 Zoltan Varga <vargaz@gmail.com>
6762 * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
6763 the patch contains ../ and a small directory name later. Hopefully fixes
6766 2006-04-10 Martin Baulig <martin@ximian.com>
6768 Clean up the debugger's thread-handling code.
6770 The debugger's thread-handling code has been moved from
6771 ../mini/debug-debugger.c to threads.c. We now iterate directly
6772 over the `threads' hash, keep track of exiting threads and also
6775 We can now debug XSP and XSP based applications with the debugger.
6777 * object-internals.h (MonoThread): Added `gpointer end_stack'.
6780 (MonoThreadCallbacks): Removed; this was only used by the debugger.
6781 (mono_install_thread_callbacks): Likewise.
6783 * threads.c (mono_thread_callbacks): Removed.
6784 (debugger_thread_created, debugger_thread_exited): New static functions.
6785 (start_wrapper): Call debugger_thread_created().
6786 (thread_cleanup): Call debugger_thread_exited().
6787 (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
6788 (mono_debugger_init_threads): New public function.
6789 (debugger_thread_vtable): Moved here from debug-debugger.c; we now
6790 iterate directly over the `threads' hash and also use proper locking.
6792 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
6794 * mono-debug-debugger.h
6795 (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
6797 2006-04-10 Zoltan Varga <vargaz@gmail.com>
6799 * reflection.c (encode_cattr_value): Fix handling of parameter type=object,
6800 argument type=array. Fixes #78057.
6802 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
6804 * culture-info-table.h : regenerated. Fixed bug #69652.
6806 2006-04-07 Zoltan Varga <vargaz@gmail.com>
6808 * loader.c metadata.c: Reapply a variant r59116.
6810 * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
6812 * class.c (mono_class_setup_interface_offsets): New internal function.
6814 * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
6815 interfaces too. Fixes #77398.
6817 * reflection.c (encode_cattr_value): Add support for
6818 parameter type=object, argument type=array.
6819 (load_cattr_value): Ditto. Fixes #77916.
6821 * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
6822 (emit_ptr_to_object_conv): Ditto. Fixes #77960.
6824 * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
6825 a byval char array and CharSet is Ansi.
6827 * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
6829 2006-04-06 Zoltan Varga <vargaz@gmail.com>
6831 * metadata.c: Add some locking comments.
6833 * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
6835 (mono_metadata_free_method_signature): Don't free the signature itself.
6837 * loader.c (mono_free_method): Don't free the signature in non-dynamic methods.
6839 * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
6840 reference the same MonoImage.
6841 (mono_assembly_load_from_full): Add an assert.
6843 2006-04-05 Zoltan Varga <vargaz@gmail.com>
6845 * image.c (mono_image_close): Don't put the image we are about to free into the
6846 loaded_images_guid_hash.
6848 * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
6849 to reduce code duplication.
6851 * marshal.c: Register the native functions called by this module as icalls, to
6852 somewhat centralize the creation of MonoMethodSignature's.
6854 * loader.c (mono_method_signature): Add a cache for method signatures.
6856 * metadata.c (mono_metadata_get_param_attrs): New helper function to return
6857 the parameter attributes of a method.
6858 (mono_metadata_parse_method_signature_full): Refactored the computation of
6859 parameter attributes into a separate function. Also avoid one allocation in
6862 * assembly.c (mono_assembly_close): Ditto.
6864 * image.c (mono_image_close): Log trace messages with INFO level.
6866 * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
6868 * image.c reflection.c: Correct reference counting of image modules.
6870 * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
6871 of this function from the image mempool.
6873 (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
6874 to allow more cached types to be used.
6876 * mono-debug.c (mono_debug_add_method): Appled patch from
6877 David S. Miller <davem@sunset.davemloft.net>: Access
6878 minfo->lexical_blocks[] entry elements using read32().
6880 2006-04-04 Zoltan Varga <vargaz@gmail.com>
6882 * loader.c (mono_free_method): No longer free the method header for non-dynamic
6883 methods as it is allocated from the mempool.
6885 * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
6888 * metadata-internals.h: Add comments describing the reference counting scheme
6889 used for MonoImage and MonoAssembly.
6891 * image.c assembly.c reflection.c: Rework reference counting of images and
6892 assemblies so they are freed when the runtime is shut down. Free some
6893 additional memory structures when an image is unloaded.
6895 2006-04-03 Zoltan Varga <vargaz@gmail.com>
6897 * class.c loader.c reflection.c: Allocate more data structures in
6900 2006-03-31 Miguel de Icaza <miguel@novell.com>
6903 (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
6904 build on pre glib 2.4 systems.
6906 2006-03-31 Zoltan Varga <vargaz@gmail.com>
6908 * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
6910 * icall.c: Fix some warnings.
6912 2006-03-29 Atsushi Enomoto <atsushi@ximian.com>
6914 * culture-info-table.h : regenerated.
6916 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
6918 * threads.c, object-internals.h, verify.c: changed the culture caching
6919 code to use a normal MonoArray for storage so the GC can keep track of
6920 them easily. Fixed bits of the cache logic, too and simplified the
6923 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
6925 * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
6926 thread for non-Boehm GCs.
6928 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
6930 * domain.c, object.c, domain-internals.h: reduce the amount of memory
6931 needed to keep track of the data for static fields.
6933 2006-03-29 Raja R Harinath <rharinath@novell.com>
6936 * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
6937 for interface classes. Use 'num_methods' instead.
6938 (ves_icall_Type_GetPropertiesByName): Likewise. Setup vtable
6939 before using '->vtable_size' field.
6941 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
6943 * domain.c, object.c, domain-internals.h: proxy_vtable_hash
6944 doesn't contain managed pointers, so use a normal hashtable.
6946 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
6948 * reflection.c, class-internals.h, domain.c: fixed handling of types
6949 used as values for objects in custom attributes (bug #77915):
6951 2006-03-24 Martin Baulig <martin@ximian.com>
6953 * class.c (mono_class_setup_fields): Added support for generic
6954 instances; fixes #77580.
6956 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6958 * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
6960 2006-03-24 Dick Porter <dick@ximian.com>
6962 * file-io.c (get_file_attributes): More stat macro breakage.
6965 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
6967 * profiler.c: added the file=filename option in the default profiler
6968 to output the profile data to filename.
6970 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6972 * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
6975 2006-03-22 Martin Baulig <martin@ximian.com>
6977 * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
6978 allocated `MonoClassField *' in `fb->handle'.
6980 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6982 * class.c, image.c, metadata-internals.h: implemented new mechanism to
6983 allocate interface ID to save memory and allow better ID reuse on
6984 appdomain unload. setup_generic_vtable () removal from Martin.
6986 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6988 * object.h, appdomain.c, domain.c, exception.c, icall.c,
6989 locales.c, marshal.c, object.c, reflection.c, threadpool.c,
6990 threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
6991 write barriers for reference stores with managed objects accessed with
6992 C structures in the runtime and in embedding programs.
6994 2006-03-20 Raja R Harinath <rharinath@novell.com>
6996 * icall.c (ves_icall_Type_GetInterfaces): Avoid using
6997 'interface_id' and 'max_interface_id' fields of MonoClasses
6998 representing open generic types.
7000 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7002 * object.h, object.c, icall.c: added functions to deal with
7003 storing valuetypes that contain references in managed objects.
7004 * reflection.c, string-icalls.c, threads.c, marshal.c: small
7005 fixes and comments around uses of mono_array_addr ().
7007 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7009 * object.h, icall.c, monitor.c: object.GetHashCode ()
7010 implementation that supports the moving garbage collector.
7012 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7014 * icall.c, threads-types.h, threads.c: implemented finalizer for
7017 2006-03-15 Zoltan Varga <vargaz@gmail.com>
7019 * metadata.c (mono_type_size): Add a fixme.
7020 (mono_type_stack_size): Ditto.
7022 * object-internals.h (MonoReflectionAssemblyBuilder): Added
7023 'type_forwarders' field.
7025 * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7026 attribute from net 2.0.
7028 * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7031 * class.c (mono_class_setup_fields): Fix a warning.
7033 * class.c (mono_class_from_name): Add support for assemblyref entries
7034 in the EXPORTEDTYPE table.
7036 * reflection.c: Add support for handling type forwarders under net 2.0.
7038 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7040 2006-03-14 Zoltan Varga <vargaz@gmail.com>
7042 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7043 overwriting entries in ModuleBuild->types, also clean up the code
7044 a little. Fixes #77774.
7046 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7048 * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7049 load friend assembly info when present.
7051 2006-03-14 Raja R Harinath <rharinath@novell.com>
7053 Fix crasher on gtest-158.cs.
7054 * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7055 the return value if the MonoClass we want is yet in an
7057 * class.c (mono_class_create_from_typedef): Add an comment
7058 explaining an order dependency between mono_class_setup_parent and
7059 mono_class_setup_mono_type.
7061 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7063 * class.c: documentation updates and events bug fix.
7065 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7067 * class.c: some cleanup, locking fixes.
7069 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7071 * class.c: fix the generics code to setup nested
7072 type info to the instantiated type (bug #77770).
7074 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7076 * marshal.c: fixed a few type correctness issues.
7078 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7080 * loader.c: the Set/Get/Addrtess array methods should be public.
7082 2006-03-11 Zoltan Varga <vargaz@gmail.com>
7084 * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7086 * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7089 2006-03-10 Zoltan Varga <vargaz@gmail.com>
7091 * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7093 * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7095 * mempool.c (mono_mempool_alloc): Speed this up a bit.
7096 (mono_mempool_alloc0): Ditto.
7098 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7101 (create_object_from_sockaddr): it was allocating 4 extra bytes
7102 for the AF_UNIX data. Fixes bug #77747.
7104 2006-03-09 Zoltan Varga <vargaz@gmail.com>
7106 * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7108 2006-03-09 Dick Porter <dick@ximian.com>
7110 * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7111 Fixes bug 76966 again.
7113 2006-03-07 Peter Dennis Bartok <pbartok@novell.com>
7115 * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7117 * appdomain.c: Bumped corlib version to 48 (due to r57532)
7119 2006-03-07 Martin Baulig <martin@ximian.com>
7122 (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7124 2006-03-07 Martin Baulig <martin@ximian.com>
7127 (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7128 regression introduced in r56970; see gtest-252.cs.
7130 * loader.c (mono_get_method_constrained): Correctly handle generic
7131 methods; see gtest-253.cs.
7133 2006-03-04 Zoltan Varga <vargaz@gmail.com>
7135 * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7137 2006-03-04 Martin Baulig <martin@ximian.com>
7139 * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7140 compute the parent type at runtime, just like we're already doing
7144 (mono_reflection_bind_generic_parameters): Don't compute the
7145 parent type anymore.
7147 * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7149 2006-03-04 Martin Baulig <martin@ximian.com>
7151 * mono-debug-debugger.h
7152 (mono_debugger_create_notification_function): Allocate memory at
7153 runtime and return a pointer to it.
7155 2006-03-03 Zoltan Varga <vargaz@gmail.com>
7157 * assembly.c: Fix windows build.
7159 * assembly.c: Fix build.
7161 * assembly.c: Move the contents of os/{unix,win32}/util.c to this file.
7163 * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7165 2006-03-03 Dick Porter <dick@ximian.com>
7168 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7169 Check parameters before dereferencing them. Fixes Aaron's part of
7172 2006-03-03 Raja R Harinath <rharinath@novell.com>
7174 Fix performance regression.
7175 * loader.c (find_method_in_class): Add 'from_class' argument.
7176 Rename 'klass' argument to 'in_class'. The signature is compared
7177 against the method in 'in_class', and the corresponding method is
7178 returned from 'from_class'.
7179 (find_method): Walk both 'in_class' and 'from_class' in parallel.
7180 (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7181 type definition and generic instantiation in parallel.
7182 (mono_get_method_constrained): Update to changes.
7184 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7186 * threads.c: make sure the domain is correct, too when doing
7187 mono_thread_attach ().
7189 2006-03-01 Zoltan Varga <vargaz@gmail.com>
7191 * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7192 windows. Fixes #77683.
7194 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7196 * object.h, *: introduced specific way to set elements of an array
7197 of references to be used as write barrier. Still need to audit the
7198 uses of mono_array_addr.
7200 2006-03-01 Miguel de Icaza <miguel@novell.com>
7202 * object-internals.h: New field to cache the assmebly name, patch
7203 from Tambet Ingo (tambet@ximian.com)
7205 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7207 * decimal.h, class-internals.h, metadata-internals.h,
7208 file-io.h: mark a few function declarations as internal, to
7209 reduce the number of PLT entries.
7211 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7213 * file-io.c: fix typo in warning message.
7215 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7217 * loader.c: on unix, lookup the "*A" version of a function
7218 if charset is auto as a second option before failing.
7220 2006-02-28 Raja R Harinath <rharinath@novell.com>
7222 * class.h (mono_class_inflate_generic_method): Revert to two
7224 * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7225 (mono_class_inflate_generic_method_full): Add.
7226 * class.c (mono_class_inflate_generic_method_full): Rename from
7227 'mono_class_inflate_generic_method'. Don't set 'inflated' field.
7228 (mono_class_inflate_generic_method): New. Wrapper around ..._full.
7229 * loader.c, reflection.c: Update to changes.
7231 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7233 * icall.c: const fixes and small improvements.
7235 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7237 * threadpool.c: for asynchronous connect(), enable the same workaround
7238 for BSD 6 as for the Mac. Fixes bug #77637.
7240 2006-02-24 Zoltan Varga <vargaz@gmail.com>
7242 * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7243 formatted classes. Fixes #77524.
7245 2006-02-24 Raja R Harinath <rharinath@novell.com>
7247 * class.c (inflate_generic_type): Add a couple more
7248 micro-optimizations.
7249 (inflate_generic_context): Don't use the 'gmethod' from
7251 (mono_class_inflate_generic_method): If the method has generic
7252 parameters, but the passed-in context doesn't have a 'gmethod',
7253 create one. Use the possibly simplified generic instantiation
7254 from the declaring class instead of the one passed in.
7256 2006-02-24 Raja R Harinath <harinath@gmail.com>
7258 Make generic method signature and method header handling lazy.
7259 * class.c (mono_class_inflate_generic_signature): Move to loader.c.
7260 (inflate_generic_header): Likewise.
7261 (mono_class_inflate_generic_method): Rewrite. Add a 'klass_hint'
7262 parameter to avoid inflating types.
7263 (mono_get_inflated_method): Empty out.
7264 * class.h (mono_class_inflate_generic_method): Update to changes.
7265 * loader.c (mono_get_method_from_token): Don't parse signature for
7266 generic methods, nor methods of generic classes.
7267 (mono_method_signature): Rename from 'mono_method_signature'.
7268 Inflate signature on demand.
7269 (mono_method_get_header): Inflate method header on demand.
7270 * reflection.c: Update to changes.
7272 2006-02-23 Raja R Harinath <rharinath@novell.com>
7274 * metadata.c (mono_metadata_inflate_generic_inst): If the
7275 instantiation is closed, don't bother expanding it in the new
7277 * class.c (inflate_generic_class): If the generic instantiation
7278 doesn't change after inflation, return the argument itself.
7279 (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
7281 (inflate_generic_context): If neither the generic class nor the
7282 generic method instantiations change, return the original context.
7283 * reflection.c (mono_method_get_object): Do
7284 'mono_get_inflated_method' before accessing the ->klass field.
7285 (inflate_mono_method): Don't create a MonoGenericMethod unless
7287 (inflate_method): Don't pass a constructed type as the declaring
7288 type of a methodbuilder.
7290 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
7292 * object.c: fix memory overwrite.
7294 2006-02-22 Dick Porter <dick@ximian.com>
7296 * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
7297 it doesn't work any more.
7298 (mono_threads_request_thread_dump): Fix unused variable warnings.
7300 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7302 * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
7303 mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
7304 the public header file.
7306 2006-02-21 Zoltan Varga <vargaz@gmail.com>
7308 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
7310 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
7312 * class-internals.h, object.c: reduce the size of MonoVTable
7313 and store the interface_offsets array at negative offsets.
7315 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
7317 * metadata.c: tweak table descriptors data structures to reduce
7318 size and runtime relocations.
7320 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7322 * marshal.c: fix some types and opcodes to be type-safe
7323 in marshaling wrappers.
7325 2006-02-21 Ankit Jain <jankit@novell.com>
7327 * metadata.h (mono_metadata_decode_signed_value): Add declaration.
7329 2006-02-21 Raja R Harinath <rharinath@novell.com>
7331 * metadata.c (get_constraints): Relax debugging checks for monodis.
7333 2006-02-21 Ankit Jain <jankit@novell.com>
7335 * metadata.c (mono_metadata_load_generic_params): Move the code
7336 checking for ambiguous generic params from here to mono/dis/get.c
7337 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
7339 2006-02-21 Raja R Harinath <harinath@gmail.com>
7341 Fix assertion triggered when compiling nemerle.
7342 * class.c (mono_get_shared_generic_inst): Rename from
7343 get_shared_inst and make non-static.
7344 * loader.c (mono_get_shared_generic_method): New. Used to create
7345 the MonoGenericContext-equivalent of a MonoGenericContainer.
7346 (mono_get_method_from_token): Initialize the 'context' field of
7347 the created MonoGenericContainer.
7348 * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
7349 * metadata.c (get_constraints): Add sanity check.
7350 * class-internals.h: Add new internal methods.
7352 * reflection.c (verify_safe_for_managed_space): New sanity check.
7353 Currently checks that owner-less generic parameters aren't allowed
7355 (mono_type_get_object): Use it.
7356 * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
7357 that are now in mono_type_get_object.
7358 (ves_icall_MonoMethod_GetGenericArguments): Likewise.
7360 2006-02-19 Raja R Harinath <harinath@gmail.com>
7362 * metadata.c (mono_type_create_from_typespec): Rename from
7363 mono_type_create_from_typespec_full. Remove MonoGenericContainer*
7364 argument and caching of types in the generic container.
7365 (unwrap_arrays, find_generic_param): Remove.
7366 * metadata-internals.h: Update.
7367 * class-internals.h (_MonoGenericContainer): Remove 'types' field.
7369 2006-02-18 Zoltan Varga <vargaz@gmail.com>
7371 * class.c (mono_class_get_exception_for_failure): Fix a warning.
7373 * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
7374 return values. Fixes #77581.
7376 * class.c (mono_fnptr_class_get): Switch name and name_space.
7378 * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
7379 classes and add support for [In, Out] attributes.
7380 (mono_marshal_free_asany): Ditto. Fixes #77524.
7382 2006-02-18 Raja R Harinath <harinath@gmail.com>
7384 * class.c (mono_class_from_generic_parameter): Make more robust to
7385 incomplete MonoGenericContainers from monodis.
7387 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7389 * class-internals.h: added some more exception types.
7390 * class.c, metadata.c: added a few checks to handle missing
7393 2006-02-17 Raja R Harinath <rharinath@novell.com>
7395 Use owner-less generic-params some more.
7396 * class.c (my_mono_class_from_generic_parameter): Remove.
7397 (mono_class_from_generic_parameter): Handle null image,
7398 param->name and param->owner.
7399 (mono_class_from_mono_type): Update.
7400 (mono_class_create_from_typespec): Remove 'container' parameter.
7401 If that parameter is non-null, the result is always inflated by
7402 'mono_class_get_full' anyway.
7403 (mono_class_get): Rename from _mono_class_get. Remove 'container'
7405 (mono_class_get_full): Update.
7407 * class.c (inflate_generic_type) [GENERICINST]: If the generic
7408 instance is not open, don't bother inflating.
7409 (mono_class_setup_fields): Hoist some loop-invariants. Don't
7410 parse metadata for inflated classes.
7411 (_mono_class_get): Change GenericContext* parameter to
7413 (mono_class_create_from_typespec): Likewise. Simplify, and
7414 implement trivially. All the cases are handled in
7415 mono_class_from_mono_type. Don't inflate returned class.
7416 (mono_class_get_full): Delegate GENERICINST optimization to
7417 inflate_generic_type.
7418 (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
7420 2006-02-16 Dick Porter <dick@ximian.com>
7422 * socket-io.c (create_object_from_sockaddr): Fix typo.
7423 (create_sockaddr_from_object): Check array lengths before
7424 potentially accessing items off the end.
7425 (ves_icall_System_Net_Sockets_Socket_Receive_internal)
7426 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
7427 (ves_icall_System_Net_Sockets_Socket_Send_internal)
7428 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
7429 length checks to avoid wraparound overflows.
7430 (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
7431 contents of the array of sockets
7432 (hostent_to_IPHostEntry2)
7433 (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
7434 Check return value of inet_ntop ().
7435 (addrinfo_to_IPHostEntry): Fix typo
7437 2006-02-16 Raja R Harinath <rharinath@novell.com>
7439 Type metadata parsing doesn't use generic-instantiation information.
7440 * metadata.c (mono_metadata_parse_array_full): Change
7441 MonoGenericContext* parameter to MonoGenericContainer*.
7442 (mono_metadata_parse_type_full): Likewise.
7443 (mono_type_create_from_typespec_full): Likewise.
7444 (mono_metadata_parse_mh_full): Likewise.
7445 (mono_metadata_parse_generic_inst): Likewise.
7446 (do_mono_metadata_parse_generic_class): Likewise.
7447 (do_mono_metadata_parse_type): Likewise.
7448 * metadata-internals.h: Update to changes.
7449 * class.c (mono_class_find_enum_basetype): Likewise.
7450 (mono_class_setup_fields): Likewise.
7451 (mono_class_create_from_typespec): Likewise.
7452 * loader.c (method_from_methodspec): Likewise.
7453 (mono_get_method_from_token): Likewise.
7454 (mono_method_get_header): Likewise.
7456 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7458 * marshal.c: handle additional GENERICINST case (patch from
7459 Thong Nguyen <tum@veridicus.com>).
7460 Fix a few cases where LDIND_I/STIND_I was used for references.
7462 2006-02-16 Raja R Harinath <rharinath@novell.com>
7464 * reflection.c (mono_reflection_get_token): Remove unused variable.
7466 2006-02-16 Martin Baulig <martin@ximian.com>
7468 * reflection.c (mono_reflection_get_token): Add support for fields
7469 in instantiated generic types.
7472 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7474 2006-02-15 Martin Baulig <martin@ximian.com>
7477 (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7478 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7479 (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7480 (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7482 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7484 * class.c, metadata.c, metadata.h, object.c, icall.c,
7485 marshal.c: changed mono_type_get_underlying_type () to do
7486 the sensible thing and introduced mono_type_generic_inst_is_valuetype().
7487 Fixed handling of instantiated generic valuetypes (bug #75479).
7489 2006-02-15 Raja R Harinath <rharinath@novell.com>
7491 * metadata.c (mono_metadata_decode_signed_value): Simplify.
7492 Delegate to mono_metadata_decode_value, and work on the returned value.
7494 * icall.c (ves_icall_MonoType_GetGenericArguments):
7495 Add consistency check here too.
7497 2006-02-15 Ankit Jain <jankit@novell.com>
7499 * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
7502 2006-02-15 Ankit Jain <jankit@novell.com>
7504 * metadata.c (mono_metadata_decode_signed_value): New function to decode
7505 signed values, used only for representing lower bounds of arrays.
7506 (mono_metadata_parse_array_full): Use new
7507 mono_metadata_decode_signed_value to decode lower bounds.
7509 2006-02-14 Martin Baulig <martin@ximian.com>
7512 (mono_reflection_get_token): Support "MonoGenericMethod" and
7513 "MonoGenericCMethod" and allow generic instances / methods.
7515 2006-02-11 Zoltan Varga <vargaz@gmail.com>
7517 * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
7518 to obtain the terminal size using an ioctl.
7520 * object.c (mono_nullable_init): Revert this as nullable reference
7521 types are not valid.
7522 (mono_nullable_box): Ditto.
7524 2006-02-09 Dick Porter <dick@ximian.com>
7526 * threads.c (mono_thread_detach): Drop a reference to the thread
7529 2006-02-09 Zoltan Varga <vargaz@gmail.com>
7531 * object.c (mono_nullable_init): Handle nullable reference types.
7532 (mono_nullable_box): Ditto. Fixes #77446.
7534 2006-02-07 Martin Baulig <martin@ximian.com>
7536 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
7538 2006-02-07 Ankit Jain <jankit@novell.com>
7540 * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
7541 * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
7542 (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
7543 (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
7544 (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
7545 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
7547 2006-02-02 Zoltan Varga <vargaz@gmail.com>
7549 * class.c (mono_class_create_generic): Set type_token as well.
7551 * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
7554 2006-02-02 Martin Baulig <martin@ximian.com>
7556 * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
7557 has never been used so far.
7559 2006-02-02 Martin Baulig <martin@ximian.com>
7561 * mono-debug-debugger.h: Changed comment at the top of this file;
7562 the header is not installed, but it's safe to #include it from
7565 * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
7566 * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
7568 2006-02-02 Martin Baulig <martin@ximian.com>
7571 (MonoSymbolTable): Removed the `metadata_info' field.
7574 (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
7576 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7577 (mono_debugger_add_builtin_types): Removed.
7578 (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
7579 (mono_debugger_create_notification_function): We now operate on a
7580 pre-allocated area; take a `gpointer' and return `void'.
7582 * mono-debug-debugger.c
7583 (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
7584 (mono_debugger_add_builtin_types): Removed.
7586 2006-02-02 Martin Baulig <martin@ximian.com>
7588 * threads.c (mono_debugger_create_all_threads): New public method.
7590 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7592 * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
7593 breaks on several platforms.
7595 2006-02-01 Sebastien Pouliot <sebastien@ximian.com>
7597 * assembly.c: the VS.NET build doesn't supply default values for
7598 MONO_ASSEMBLIES and MONO_CFG_DIR.
7600 2006-02-01 Zoltan Varga <vargaz@gmail.com>
7602 * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
7605 * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
7607 * loader.c (method_from_memberref): Fix a warning.
7609 * metadata.c (mono_metadata_load_generic_params): Fix a warning.
7611 * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
7612 with explicit layout. Fixes #77433.
7614 2006-01-31 Zoltan Varga <vargaz@gmail.com>
7616 * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure
7617 max_interface_id is initialized before using it. Fixes #77398.
7618 (ves_icall_Type_GetInterfaces): Ditto.
7620 2006-01-30 Raja R Harinath <rharinath@novell.com>
7622 * metadata.c (mono_metadata_parse_method_signature_full): Don't
7623 allocate memory for parameter attributes when parsing memberref
7625 * loader.c (mono_loader_set_error_method_load): Don't warn.
7626 (method_from_memberref): Ensure MissingMethodException gets thrown
7627 if method is not found. Make warning more informative.
7629 2006-01-29 Raja R Harinath <harinath@gmail.com>
7632 * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
7633 return true if is byref.
7634 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7635 (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
7636 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7638 2006-01-27 Raja R Harinath <rharinath@novell.com>
7640 Fix tests/find-method.2.il
7641 * loader.c (find_method, find_method_in_class): Remove is_inflated
7642 argument. Revert 2006-01-18 change.
7643 (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
7644 is generic, search for method in its generic definition.
7645 * class.c (mono_class_setup_vtable_general): Print generic
7646 arguments of generic types in debugging printf.
7648 2006-01-26 Zoltan Varga <vargaz@gmail.com>
7650 * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
7652 * threads.c (mono_threads_request_thread_dump): New helper function.
7654 2006-01-25 Raja R Harinath <rharinath@novell.com>
7656 * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
7658 2006-01-25 Ankit Jain <jankit@novell.com>
7660 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
7661 move definition to ..
7662 * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
7664 2006-01-25 Ankit Jain <jankit@novell.com>
7665 Raja R Harinath <rharinath@novell.com>
7667 * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
7668 * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
7671 2006-01-25 Martin Baulig <martin@ximian.com>
7673 * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
7674 `MonoDebuggerThread' into debug-debugger.c.
7676 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
7678 * profiler.c: fix printing of data.
7680 2006-01-24 Atsushi Enomoto <atsushi@ximian.com>
7682 * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
7683 invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
7685 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7687 * object.c: fix deadlock related to string interning.
7689 2006-01-23 Martin Baulig <martin@ximian.com>
7691 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
7693 * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
7695 2006-01-23 Martin Baulig <martin@ximian.com>
7697 * mono-debug.h: Moved the prototypes of some functions which are
7698 used by the JIT here from mono-debug-debugger.h.
7700 2006-01-21 Martin Baulig <martin@ximian.com>
7702 * Makefile.am: Don't install mono-debug-debugger.h.
7704 2006-01-21 Martin Baulig <martin@ximian.com>
7706 * mono-debug-debugger.h: Enforce the private status of this header
7707 file and removed unneccessary #include's in metadata/*.c and mini/*.c.
7708 Moved some stuff from mono-debugger-jit-wrapper.h here.
7710 2006-01-20 Raja R Harinath <rharinath@novell.com>
7712 * class.c (mono_class_from_typeref): Add a sanity test to help
7713 catch lack of assembly load/search hooks.
7715 2006-01-19 Zoltan Varga <vargaz@gmail.com>
7717 * marshal.c (emit_struct_conv): Relax the fields with same offset
7718 check even more. Fixes #77230.
7720 2006-01-18 Martin Baulig <martin@ximian.com>
7722 * loader.c (find_method_in_class): Added `gboolean is_inflated'
7723 argument; if false, we compare the uninstantiated signatures.
7724 (method_from_memberref): Compare the uninstantiated signatures;
7727 2006-01-18 Robert Jordan <robertj@gmx.net>
7729 * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
7730 Clear the weak link. Fixes bug #77170.
7732 * gc.c (mono_gchandle_free):
7733 Reflect *-gc.c changes (tiny optimization).
7735 2006-01-18 Zoltan Varga <vargaz@gmail.com>
7737 * metadata.c (mono_metadata_signature_dup): Applied patch from
7738 Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
7741 2006-01-17 Zoltan Varga <vargaz@gmail.com>
7743 * marshal.c (emit_struct_conv): Allow fields with the same offset when
7744 marshalling from native to managed code. Fixes #77230.
7746 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7748 * threadpool.c: fix problem (Mac only) when more than one asynchronous
7749 connect. Fixes bug #77020.
7751 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
7753 * class.c: fixed id assignement for nested interfaces (bug #77275).
7754 Added also better info for --print-vtable debugging.
7756 2006-01-12 Martin Baulig <martin@ximian.com>
7758 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
7759 interfaces on-the-fly; fixes #76625.
7762 (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
7763 don't need that anymore.
7765 2006-01-12 Miguel de Icaza <miguel@novell.com>
7768 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7769 To avoid initing the nested_classes when not needed I turned the
7770 PeerCredData as a toplevel internal class, as it has to be shared
7773 Fixes the CASA issue.
7775 2006-01-11 Ben Maurer <bmaurer@andrew.cmu.edu>
7777 * domain.c: Accessors for MonoJitInfo
7779 * profiler-private.h: Add jitinfo to the end jit hook
7781 * profiler.[ch]: Define new hooks, called after jitting which give
7782 the MonoJitInfo that was compiled
7784 2006-01-10 Martin Baulig <martin@ximian.com>
7786 * class.c (mono_class_setup_events): Add support for generic
7787 classes; fixes #76440.
7789 2006-01-06 Raja R Harinath <rharinath@novell.com>
7792 * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
7793 on passed-in method.
7795 2006-01-03 Zoltan Varga <vargaz@gmail.com>
7797 * object.c (mono_runtime_invoke_array): Add Nullable support.
7799 * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
7801 2006-01-03 Sebastien Pouliot <sebastien@ximian.com>
7803 * file-io.c: Don't consider sockets as directory and avoid an endless
7804 loop. Fix bug #76966.
7806 2006-01-03 Zoltan Varga <vargaz@gmail.com>
7808 * object.c (mono_nullable_init): New helper function.
7809 (mono_nullable_box): Ditto.
7811 * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
7813 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
7815 * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
7817 2006-01-02 Zoltan Varga <vargaz@gmail.com>
7819 * class.c (mono_class_is_assignable_from): Make T assignable to
7822 2005-12-23 Sebastien Pouliot <sebastien@ximian.com>
7824 * appdomain.c: Bump corlib version to 46.
7825 * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
7826 serialization purpose) and changed ves_icall_System_Reflection_
7827 Assembly_get_code_base signature to accept a boolean (to escape, or
7828 not, the assembly code base).
7830 2005-12-23 Dick Porter <dick@ximian.com>
7834 * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
7835 CreateEvent icall now returns "created" boolean parameter.
7837 2005-12-22 Zoltan Varga <vargaz@gmail.com>
7839 * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
7842 * reflection.c (mono_custom_attrs_construct_by_type): Handle the case
7843 when attr_klass is an interface. Fixes #77045.
7845 2005-12-20 Zoltan Varga <vargaz@gmail.com>
7847 * marshal.c (emit_struct_conv): Fix previous patch.
7849 * marshal.c (emit_struct_conv): Add a check for fields with the same
7852 2005-12-20 Raja R Harinath <rharinath@novell.com>
7854 Fix regression in Mono.C5.
7855 * class.c (mono_class_create_generic): If 'klass' is an interface
7856 set up the interface offsets.
7857 (mono_class_is_assignable_from): Don't throw away generic arguments.
7859 2005-12-19 Raja R Harinath <rharinath@novell.com>
7861 * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
7864 2005-12-15 Raja R Harinath <rharinath@novell.com>
7866 * metadata.c (mono_metadata_parse_method_signature_full): Remove a
7868 (do_mono_metadata_parse_generic_class): Don't pass the current
7869 generic context when parsing the type being instantiated: it
7870 cannot use it, anyway.
7872 * loader.c (method_from_memberref): Don't inflate a signature if
7873 it doesn't contain any type parameters.
7875 2005-12-15 Zoltan Varga <vargaz@gmail.com>
7877 * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
7879 2005-12-14 Martin Baulig <martin@ximian.com>
7882 (mono_type_get_name_recurse): Don't return null for type
7883 parameters and open generic classes.
7884 (mono_class_setup_methods): Don't exclude generic instances.
7885 (mono_get_unique_iid): Use different IDs for different
7886 instantiations of the same generic type.
7887 (mono_class_setup_vtable): Only use setup_generic_vtable() for
7888 open generic instances; create a normal vtable for closed generic
7890 (mono_class_setup_vtable_general): We're now also called for
7891 closed generic instances.
7894 (mono_reflection_bind_generic_parameters): Correctly use
7895 mono_metadata_lookup_generic_inst() everywhere.
7897 2005-12-14 Zoltan Varga <vargaz@gmail.com>
7899 * object.c (mono_class_create_runtime_vtable): Call
7900 mono_class_setup_vtable ().
7902 * reflection.c (mono_reflection_get_dynamic_overrides): New helper
7904 (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
7907 * loader.c (mono_loader_set_error_type_load): Print the type load
7908 warnings to the console so they are more visible to the user.
7909 (mono_loader_set_error_method_load): Ditto.
7911 * reflection.c (ensure_runtime_vtable): Revert the last change as it
7914 * reflection.c (ensure_runtime_vtable): Fix build.
7916 * reflection.c (ensure_runtime_vtable): Disable an optimization which
7917 doesn't work in all cases.
7919 2005-12-13 Zoltan Varga <vargaz@gmail.com>
7921 * object.c (mono_array_new_full): Treat a single dimensional array
7922 with 0 lower bounds as an szarray. Fixes #76973.
7924 * reflection.c (custom_attr_visible): Really fix this.
7926 2005-12-12 Zoltan Varga <vargaz@gmail.com>
7928 * reflection.c (custom_attr_visible): Allow nested public attributes
7931 * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
7934 2005-12-12 Raja R Harinath <harinath@gmail.com>
7936 * class.c (set_generic_param_owner): Delete.
7937 (mono_class_create_from_typedef): Don't set ->owner field of
7938 generic parameters to "param containers" of enclosing classes.
7939 * reflection.c (mono_reflection_initialize_generic_parameter):
7942 2005-12-11 Zoltan Varga <vargaz@gmail.com>
7944 * reflection.c (custom_attr_visible): Fix build.
7946 2005-12-10 Zoltan Varga <vargaz@gmail.com>
7948 * reflection.c (mono_custom_attrs_from_builders): Avoid returning
7951 * reflection.c (reflection_methodbuilder_to_mono_method): Fix
7952 handling of null parameter defaults.
7954 2005-12-09 Raja R Harinath <rharinath@novell.com>
7956 * class.c (mono_class_from_generic_parameter): Don't set
7957 klass->generic_container.
7958 (my_mono_class_from_generic_parameter): Likewise.
7960 2005-12-07 Zoltan Varga <vargaz@gmail.com>
7962 * reflection.c (load_public_key): Fix a warning.
7963 (method_encode_code): Fix unaligned accesses.
7965 2005-12-07 Martin Baulig <martin@ximian.com>
7967 * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
7970 (write_generic_param_entry): Encode our custom attrs.
7972 * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
7974 2005-12-07 Martin Baulig <martin@ximian.com>
7976 * reflection.c (encode_new_constraint): Removed; we don't use the
7977 `NewConstraintAttribute' anymore.
7979 2005-12-06 Zoltan Varga <vargaz@gmail.com>
7981 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
7982 not fire a TypeResolve event when Assembly.GetType () is called.
7984 2005-12-05 Ben Maurer <bmaurer@ximian.com>
7986 Beginning of support for nullable types in the runtime. Parts of
7987 this patch are from Martin.
7989 * appdomain.c (MONO_CORLIB_VERSION): Bump
7991 * domain.c (mono_init_internal): get the nullable type
7993 * class.c (mono_class_is_nullable): New method
7994 (mono_class_get_nullable_param): New mehod
7995 (mono_class_create_generic): In types T? set cast_class to T
7997 * class-internals.h (MonoDefaults): new nullable default class
7998 (mono_class_get_nullable_param, mono_class_get_nullable_param):
8001 2005-12-05 Raja R Harinath <rharinath@novell.com>
8003 * metadata.c (select_container): New. Refactor code to select the
8004 appropriate GenericContainer given the type of generic parameter
8006 (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8007 not a MonoGenericContext. Use select_container. Update parameters.
8008 (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8010 (unwrap_arrays): Remove duplicate tests.
8011 (find_generic_param): Rename from 'has_same_context'. Now walks a
8012 generic instantiated class to find any arguments that are generic
8014 (mono_type_create_from_typespec_full): Use find_generic_param to
8015 avoid evicting some generic instantiations from the typespec
8018 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8020 * reflection.c: fixed writing of doubles on ARM FPA.
8022 2005-12-02 Robert Jordan <robertj@gmx.net>
8024 * icall.c: Fixed EventInfo.ReflectedType (#76829).
8026 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8028 * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8029 least on SUSE 10 they are not the same (on debian, they are just the
8032 2005-12-01 Raja R Harinath <rharinath@novell.com>
8034 * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8035 DeclaringType for VARs and MVARs.
8036 * class.c (set_generic_param_owner): Fix initialization of owner
8039 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8041 * icall.c: fixed Enum.ToObject() to correctly convert the values.
8043 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8045 * threadpool.c: workaround for a bug that shows up on the Mac:
8046 select()+connect() on a blocking socket is not like it should
8047 be, so we proceed to connect() in that case, wasting the I/O
8048 threadpool thread until connect succeedes. Fixes bug #75436.
8050 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8052 * threadpool.c: fix typo when setting file descriptor states.
8054 2005-11-28 Raja R Harinath <rharinath@novell.com>
8056 * class-internals.h (MonoGenericContainer.is_signature): Remove.
8057 * metadata.c (mono_metadata_parse_method_signature_full): Don't
8058 create a temporary signature container.
8059 (mono_metadata_parse_generic_param): Update to changes.
8060 (mono_type_create_from_typespec_full): Update to changes.
8061 * loader.c (method_from_memberref): Don't use a
8062 MonoGenericContainer while parsing a memberref signature.
8063 (method_from_methodspec): Remove dead-store of the 'container'
8064 variable. It's overwritten before use.
8066 * metadata.c (mono_type_create_from_typespec_full): Make debugging
8068 (mono_metadata_parse_generic_param): Likewise.
8069 * loader.c (find_method_in_class): Does not need a
8070 MonoGenericContainer. Use 'mono_method_signature' rather than
8071 'mono_method_signature_full'.
8072 (find_method, mono_get_method_constrained, method_from_memberref):
8075 * metadata.c (mono_type_create_from_typespec_full): Ensure that
8076 owner-less generic-parameters are never evicted from the typespec
8079 * loader.c (method_from_memberref): Don't use the current context
8080 when parsing signatures.
8081 (method_from_methodspec, mono_get_method_from_token): Update to changes.
8083 * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8084 side-effects in g_assert.
8085 * loader.c (mono_get_method_from_token): Resolve klass earlier so
8086 that we don't potentially lose information.
8088 2005-11-26 Dick Porter <dick@ximian.com>
8091 * threads.c: icalls to implement basic (ie, not named)
8092 System.Threading.Semaphore.
8094 2005-11-24 Dick Porter <dick@ximian.com>
8097 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8098 Use GetProcessId() if it's available.
8100 2005-11-23 Zoltan Varga <vargaz@gmail.com>
8102 * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8104 2005-11-23 Raja R Harinath <rharinath@novell.com>
8105 Ankit Jain <jankit@novell.com>
8107 * loader.c (mono_get_method_from_token): Initialize 'method' field
8108 of all generic parameters before parsing the signature. Remove
8109 code that "fixed"-up MVAR references.
8111 2005-11-23 Ankit Jain <jankit@novell.com>
8113 * metadata.c (mono_metadata_has_generic_params):
8114 (mono_metadata_load_generic_param_constraints):
8115 (mono_metadata_load_generic_params): Move duplicate code ...
8116 (mono_metadata_get_generic_param_row): ... here. Returns the
8117 first row-id in GenericParam table for a given owner (token).
8118 * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8121 2005-11-23 Raja R Harinath <rharinath@novell.com>
8122 Ankit Jain <jankit@novell.com>
8124 * metadata.c (mono_metadata_class_equal): Pass signature_only when
8126 * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at
8127 type->data.generic_param only if the type is an MVAR.
8128 (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8129 leak owner-less VARs and MVARs into managed space.
8131 2005-11-21 Martin Baulig <martin@ximian.com>
8134 (MonoMethod): Moved the `generic_container' here from
8135 `MonoMethodNormal' since we now also need it for
8136 `MonoMethodPInvoke';
8137 (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8138 (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8139 an union containing both `MonoMethodNormal' and
8140 `MonoMethodPInvoke'.
8143 (mono_get_method_from_token): Allow implementing generic methods
8147 (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8150 2005-11-17 Dick Porter <dick@ximian.com>
8154 * process.c: Split the Process Start_internal icall into
8155 ShellExecuteEx_internal and CreateProcess_internal, which are
8156 called depending on whether UseShellExecute is true. Fixes bug
8159 * appdomain.c (MONO_CORLIB_VERSION): Incremented
8161 2005-11-17 Zoltan Varga <vargaz@gmail.com>
8163 * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8164 'msize' parameters, use the information in 'mspec' instead.
8165 (emit_object_to_ptr_conv): Ditto.
8167 * marshal.c (emit_struct_conv): Handle explicit layout structs with
8168 fields out of order. Fixes #76733.
8170 2005-11-17 Ankit Jain <jankit@novell.com>
8172 * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8174 2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
8176 * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8179 2005-11-16 Zoltan Varga <vargaz@gmail.com>
8181 * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8182 for types with non-auto layout. Fixes #76717.
8184 2005-11-16 Ankit Jain <jankit@novell.com>
8186 * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8187 * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam
8188 if generic_context is null.
8189 (mono_metadata_generic_param_equal): param->owner can be null.
8190 (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8193 2005-11-16 Zoltan Varga <vargaz@gmail.com>
8195 * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8198 2005-11-15 Martin Baulig <martin@ximian.com>
8200 * object.c (set_value): Use mono_class_from_mono_type() instead of
8201 the hack for generic instances; fixes #76136.
8203 2005-11-15 Zoltan Varga <vargaz@gmail.com>
8205 * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8208 * image.c (load_metadata_ptrs): Initialize the new fields.
8210 * reflection.c (create_dynamic_mono_image): Ditto.
8212 * reflection.c (build_compressed_metadata): Use the new fields.
8214 * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8217 * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8220 2005-11-15 Ankit Jain <jankit@novell.com>
8221 Raja R Harinath <harinath@gmail.com>
8223 * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8224 * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8225 new per-generic_container cache if the cached MonoType's context matches
8226 the current context.
8227 (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8228 to the expected context.
8229 (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8231 2005-11-14 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8233 * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8234 we changed the signature of an icall.
8235 * icall.c: Modify to mono_double_ParseImpl return true/false
8236 depending on the success, instead of throwing the exception. This will
8237 help us in Double.TryParse methods.
8239 2005-11-14 Zoltan Varga <vargaz@gmail.com>
8241 * marshal.c (emit_marshal_object): Throw an exception when
8242 marshalling 'object' instead of crashing. Fixes #76696.
8244 2005-11-11 Zoltan Varga <vargaz@gmail.com>
8246 * class-internals.h: Add prototype for mono_type_get_full_name ().
8248 2005-11-11 Dick Porter <dick@ximian.com>
8250 * threads.c (mono_thread_manage): Make sure the main thread has
8251 abandoned all its mutexes when cleaning up. Fixes bug 74680.
8253 2005-11-11 Zoltan Varga <vargaz@gmail.com>
8255 * loader.c (mono_loader_set_error_type_load): Log a warning to the
8256 console about the missing type.
8257 (mono_loader_set_error_method_load): Ditto.
8259 2005-11-09 Miguel de Icaza <miguel@novell.com>
8261 * mono-config.c (mono_get_config_dir): Set the system defaults if
8264 * assembly.c (mono_set_dirs): New API entry point to set the
8265 assembly and the config directory in one call
8267 2005-11-09 Zoltan Varga <vargaz@gmail.com>
8269 * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
8270 the ftnptr was created from a delegate in a domain other than the
8271 current domain. Fixes #75377.
8273 * exception.h exception.c: Add mono_get_exception_not_supported ().
8275 2005-11-08 Martin Baulig <martin@ximian.com>
8277 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
8279 2005-11-07 Sebastien Pouliot <sebastien@ximian.com>
8281 * security-manager.h: Added definitions to deal with strongname key
8282 pairs bigger (and smaller) than 1024 bits.
8283 * reflection.c: Remove hardcoded strongname size (128 bytes) and
8284 adjust wrt the public key length being used.
8286 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
8288 * marshal.c, icall.c : reverted sig->pinvoke changes which broke
8289 Windows build (r51396-51397).
8291 2005-11-03 Martin Baulig <martin@ximian.com>
8293 * class.c (mono_class_setup_vtable_general): Also add generic
8294 methods to the vtable; fixes #76581.
8296 2005-11-01 Miguel de Icaza <miguel@novell.com>
8298 * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
8299 sure that we lookup GetString method from the System.Text.Encoding
8300 class, not the derived class or we get an empty method.
8304 2005-10-25 Miguel de Icaza <miguel@novell.com>
8306 * assembly.c (mono_assemblies_init): Do not set the Mono root dir
8307 if it has been previously set (embedders).
8309 Make mono_set_rootdir available also on Unix.
8311 005-10-24 Robert Jordan <robertj@gmx.net>
8313 * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
8315 2005-10-30 Zoltan Varga <vargaz@freemail.hu>
8317 * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
8318 only calls which are made to native code use this flag.
8320 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
8322 2005-10-29 Zoltan Varga <vargaz@freemail.hu>
8324 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
8325 Add support for FieldBuilders.
8327 2005-10-29 Martin Baulig <martin@ximian.com>
8330 (mono_debug_using_mono_debugger): New public method; returns
8331 whether we're running inside the debugger.
8333 2005-10-27 Zoltan Varga <vargaz@gmail.com>
8335 * reflection.c (mono_reflection_get_custom_attrs_info): Add support
8336 for Method/Constructor/FieldBuilders.
8338 2005-10-26 Zoltan Varga <vargaz@gmail.com>
8340 * reflection.c (module_add_cattrs): Save custom attributes for global methods
8343 2005-10-26 Martin Baulig <martin@ximian.com>
8345 * mono-debug-debugger.c
8346 (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
8348 2005-10-24 Raja R Harinath <harinath@gmail.com>
8350 * icall.c (base64_to_byte_array): Don't pass an out-of-range
8353 2005-10-21 Zoltan Varga <vargaz@gmail.com>
8355 * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
8356 when passing valuetypes byref. Fixes #76502.
8358 2005-10-19 Jackson Harper <jackson@ximian.com>
8360 * profiler.c: Don't put a . in front of types that are not in a
8363 2005-10-18 Zoltan Varga <vargaz@gmail.com>
8365 * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
8367 2005-10-15 Zoltan Varga <vargaz@freemail.hu>
8369 * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
8371 (mono_marshal_get_ldflda_wrapper): Fix a warning.
8373 2005-10-13 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8375 * assembly.c metadata-internals.h icall.c: Define an additional
8376 parameter for mono_assembly_name_parse_full, so we can avoid creating
8377 S.R.AssemblyName.Version when no version info wasn't passed.
8379 2005-10-09 Miguel de Icaza <miguel@novell.com>
8381 * class.c (mono_type_get_full_name): Reimplement method that was
8384 * image.c: Some docs
8386 2005-10-10 Zoltan Varga <vargaz@gmail.com>
8388 * profiler.c (output_newobj_profile): Fix printing of Total memory
8391 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
8393 * profiler.c: Add support for allocations > 2GB. Fixes #74886.
8395 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
8397 * threads.c: remove debug output.
8399 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
8401 * threads.c (mono_thread_manage): Fix crashes if more than 64
8402 threads need to be aborted. Hopefully fixes #75899.
8404 * assembly.c (mono_stringify_assembly_name): New helper function.
8406 * class.c: Use mono_stringify_assembly_name instead of the similar
8409 * assembly.h assembly.c: Add support for calling a postload search
8410 hook if an assembly cannot be loaded.
8412 * appdomain.c: Register new search hooks which call the AssemblyResolve
8413 events in AppDomain. Fixes #75231
8415 2005-10-07 Martin Baulig <martin@ximian.com>
8417 * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
8418 methods without debug info.
8420 2005-10-07 Zoltan Varga <vargaz@gmail.com>
8422 * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
8425 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8427 * file-io.c: now that we return symlinks, use lstat and, when the file
8428 is a symbolic link, stat, to get the file attributes. Also avoid the
8429 conversion to/from utf16/external.
8431 2005-10-06 Zoltan Varga <vargaz@gmail.com>
8433 * class.c (mono_class_layout_fields): Compute klass->has_references
8434 correctly if an embedded valuetype is not yet initialized. Fixes
8437 2005-10-04 Martin Baulig <martin@ximian.com>
8440 (mono_metadata_load_generic_param_constraints): New public
8441 function; splitted the constraints loading out from
8442 mono_metadata_load_generic_params().
8444 * class.c (mono_class_create_from_typedef): Call
8445 mono_metadata_load_generic_param_constraints() after setting up
8446 the type and creating our parent; fixes #75329.
8448 2005-10-04 Martin Baulig <martin@ximian.com>
8450 * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
8451 non-dynamic parent classes.
8453 2005-10-04 Atsushi Enomoto <atsushi@ximian.com>
8455 * file-io.c : win32 build fix (ETXTBSY seems not found).
8457 2005-10-04 Martin Baulig <martin@ximian.com>
8460 (mono_image_get_methodspec_token): Make the cache actually work;
8463 2005-10-04 Martin Baulig <martin@ximian.com>
8465 * class.c (mono_class_name_from_token): Removed the unneccessary
8466 `MonoGenericContext *' argument.
8468 2005-10-04 Martin Baulig <martin@ximian.com>
8471 (method_from_methodspec): Make the caching work again; fixes the
8472 performance regression from #76262.
8474 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8478 * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8479 GetFileSystemEntries that performs the same work but without going
8480 into io-layer, locking, etc.
8482 2005-09-30 Zoltan Varga <vargaz@gmail.com>
8484 * threads.c (ves_icall_System_Threading_Thread_Abort): Handle
8485 ThreadState_Stopped as well. Fixes #76047.
8487 2005-09-29 Martin Baulig <martin@ximian.com>
8490 (inflate_generic_context): If the new context has a `gmethod', set
8491 its `container' that that gmethod's `container'.
8494 (mono_metadata_parse_generic_param): Simplify things;
8495 `generic_container = generic_context->container;' is just fine.
8497 * loader.c (method_from_methodspec): Code cleanups.
8499 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
8501 * decimal.c: fix warning (and let gcc generate correct
8502 code on ARM with optimizations).
8504 2005-09-28 Martin Baulig <martin@ximian.com>
8507 (method_from_memberref): Added `MonoGenericContext *class_context'
8508 argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
8509 (method_from_methodspec): If we're a memberref, use the enclosing
8510 context when parsing its parent. Fixes #76262; see gtest-206.cs.
8512 2005-09-28 Martin Baulig <martin@ximian.com>
8514 * object.c (mono_runtime_invoke_array): Added support for
8515 MONO_TYPE_GENERICINST; fixes #75917.
8517 2005-09-27 Martin Baulig <martin@ximian.com>
8519 * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
8520 `k->byval_arg.type' to determine the actual type.
8522 * loader.c (method_from_methodspec): Removed some hacks.
8524 2005-09-27 Ben Maurer <bmaurer@ximian.com>
8526 * class-internals.h (mono_field_is_deleted): Do the test for
8527 rtspecialname before we check the actual name of the field. This
8528 prevents us from dereferencing a pointer into the string table,
8529 saving us from accessing a few pages
8531 * *.c: Replace the use of {Enter,Leave}CriticalSection with
8532 macros. This will allow a deadlock debugger to easily be plugged
8535 2005-09-27 Martin Baulig <martin@ximian.com>
8537 * loader.c (method_from_methodspec): Create a "signature"
8538 MonoGenericContainer and use mono_get_method_full(). Fixes #75584.
8540 2005-09-27 Martin Baulig <martin@ximian.com>
8543 (inflate_generic_class): Correctly set the new context's
8547 (find_method, find_method_in_class): Take a `MonoGenericContainer *'
8548 instead of a `MonoGenericContext *'.
8549 (mono_method_signature_full): Take a `MonoGenericContainer *'
8550 instead of a `MonoGenericContext *'.
8553 (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
8554 instead of a `MonoGenericContext *'.
8555 (mono_metadata_parse_method_signature_full): Likewise.
8557 2005-09-26 Martin Baulig <martin@ximian.com>
8560 (mono_class_from_generic_parameter): Set `klass->generic_container'
8561 (mono_class_from_generic_parameter): Likewise.
8562 (mono_bounded_array_class_get): We inherit the generic container
8563 from the element class.
8566 (find_method, find_method_in_class): Take a `MonoGenericContext *'
8567 argument rather than computing it here.
8568 (method_from_memberref): Correctly set the generic context before
8569 parsing the signature. Fixes #75681.
8571 2005-09-26 Zoltan Varga <vargaz@gmail.com>
8573 * object.c (mono_class_has_special_static_fields): Fix warnings.
8575 2005-09-26 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8577 * assembly.c: Add parse_public_key function, to
8578 par the public keys. Also added mono_assembly_name_parse_full,
8579 to define it the parsed key should be freed or not.
8580 * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
8581 to parse a long format assembly name.
8582 * metadata-internals.h: Keep mono_assembly_name_parse_full as
8583 private, since calling it to preserve the key requires
8584 freeing it manually.
8586 2005-09-26 Atsushi Enomoto <atsushi@ximian.com>
8588 * locales.c : removed HAVE_ICU part.
8590 2005-09-24 Zoltan Varga <vargaz@freemail.hu>
8592 * object.c (mono_class_create_runtime_vtable): Avoid calling
8593 field_is_special_static if the klass has no special static fields.
8595 * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
8596 (MonoCachedClassInfo): Likewise.
8598 * object.c (mono_class_has_special_static_fields): New helper function.
8600 2005-09-23 Zoltan Varga <vargaz@gmail.com>
8602 * class.c (mono_class_create_from_typedef): Don't call
8603 interfaces_from_typedef_full for enums.
8604 (mono_class_create_from_typedef): Compute the base types of enums directly
8605 without calling mono_class_setup_fields ().
8606 (mono_class_find_enum_basetype): New helper function.
8608 * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
8609 one place inside the string heap.
8611 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
8613 * class.c: locking fixes, code cleanups, some docs added.
8614 Allocate some data structures in the image mempool.
8616 2005-09-23 Zoltan Varga <vargaz@gmail.com>
8618 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8621 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
8623 * class-internals.h, class.c, reflection.c: reduce memory taken by
8626 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
8628 * metadata.c, metadata.h, loader.h: documentation updates, code and
8631 2005-09-23 Zoltan Varga <vargaz@gmail.com>
8633 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
8636 * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
8637 page faults caused by the runtime while reading metadata.
8639 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8641 * socket-io.c: the field names were changed 3 months ago and no one
8642 realized until bug #76077 got filed!
8644 2005-09-20 Martin Baulig <martin@ximian.com>
8646 * icall.c (assembly_icalls): Removed some unused debugger icalls.
8648 2005-09-20 Martin Baulig <martin@ximian.com>
8650 * mono-debug.c (mono_debug_add_type): Ignore array types and don't
8651 write the rank into the class entry.
8653 2005-09-20 Martin Baulig <martin@ximian.com>
8655 * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
8657 2005-09-19 Zoltan Varga <vargaz@gmail.com>
8659 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8661 * icall.c (custom_attrs_defined_internal): New icall.
8663 * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
8665 (mono_custom_attrs_construct_by_type): New helper function.
8667 2005-09-17 Zoltan Varga <vargaz@freemail.hu>
8669 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
8670 terminate the resulting string. Fixes #76123.
8672 2005-09-16 Martin Baulig <martin@ximian.com>
8675 (mono_debug_add_method): Ignore inflated methods for the moment.
8677 2005-09-14 Martin Baulig <martin@ximian.com>
8679 * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
8681 2005-09-13 Zoltan Varga <vargaz@gmail.com>
8683 * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
8684 return a success/failure indication.
8685 (mono_metadata_interfaces_from_typedef_full): Ditto.
8686 (get_constraints): Ditto.
8688 2005-09-12 Zoltan Varga <vargaz@gmail.com>
8690 * marshal.c (emit_marshal_array): Fix handling of null arrays.
8692 * marshal.c (emit_marshal_array): Add support for returning string
8693 arrays from delegates. Fixes #76063.
8695 * marshal.c: Use the emit_ldloc/stloc macros where possible.
8697 2005-09-11 Zoltan Varga <vargaz@gmail.com>
8699 * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
8702 2005-09-09 Zoltan Varga <vargaz@gmail.com>
8704 * reflection.c icall.c: Fix after mono_get_exception_type_load
8707 * assembly.c (mono_assembly_get_assemblyref): New helper function.
8708 (mono_assembly_load_reference): Use the new helper.
8710 * class-internals.h (MonoLoaderError): New structure containing
8711 information about type loading errors.
8713 * class-internals.h loader.c: Add APIs to store per-thread loader
8716 * loader.c class.c: Set the loader error if needed.
8718 * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
8720 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
8722 * decimal.c: fixed to handle the broken ARM fp format.
8724 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
8726 * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
8729 2005-09-06 Martin Baulig <martin@ximian.com>
8731 * domain.c (supported_runtimes): Added v2.0.50727.
8733 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
8735 * culture-info.h: reduce the size of some structures.
8737 2005-09-05 Martin Baulig <martin@ximian.com>
8739 Reflect latest API changes in the August CTP.
8742 ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
8743 ("MonoType.HasGenericArguments"): Removed.
8744 ("MonoMethod.BindGenericParameters"): Renamed to
8745 "MakeGenericMethod".
8746 ("MethodBuilder.BindGenericParameters"): Renamed to
8747 "MakeGenericMethod".
8749 2005-09-05 Martin Baulig <martin@ximian.com>
8751 * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
8753 2005-09-05 Martin Baulig <martin@ximian.com>
8755 Applying a patch from Michal Moskal <malekith@nemerle.org>.
8757 * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
8758 generic_container is non-NULL.
8760 2005-09-05 Martin Baulig <martin@ximian.com>
8762 Applying a patch from Michal Moskal <malekith@nemerle.org>.
8764 * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
8766 2005-08-29 Michal Moskal <malekith@nemerle.org>
8768 * reflection.c (encode_locals,
8769 mono_reflection_sighelper_get_signature_local): Increase buffer sizes
8770 for large generic types.
8772 2005-09-05 Martin Baulig <martin@ximian.com>
8774 Applying a patch from Michal Moskal <malekith@nemerle.org>.
8776 * class.c (mono_dup_array_type): New public method.
8777 (mono_metadata_signature_deep_dup): New public method.
8778 (dup_type): Correctly duplicate array and function types.
8780 2005-09-05 Martin Baulig <martin@ximian.com>
8782 Applying a patch from Michal Moskal <malekith@nemerle.org>.
8784 * reflection.c (get_default_param_value_blobs): Handle generic types
8785 and generic methods.
8787 2005-09-02 Sebastien Pouliot <sebastien@ximian.com>
8789 * class.c: Fixed error reporting (method/class were inversed) for
8790 inheritance demands.
8791 * security-manager.c|h: Added the AppDomain when calling the managed
8792 System.Security.SecurityManager.InheritanceDemand method.
8794 2005-09-01 Raja R Harinath <rharinath@novell.com>
8796 * reflection.c (encode_marshal_blob): 'marshaltype' and
8797 'marshaltyperef' are alternate sources for the custom marshaler
8800 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
8802 * class.c: fix creation of array classes with rank == 1
8803 (patch by Ankit Jain <jankit@novell.com>).
8805 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
8807 * object.c: fix check for creating the bound data for arrays vs
8810 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8812 * object.c: configuration file name is now based on the executable name,
8813 not the image name. Fixes bug #75931.
8815 2005-08-29 Zoltan Varga <vargaz@gmail.com>
8817 * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
8818 flag using LDIND_U4 since it leads to smaller and faster code on ia64.
8820 2005-08-25 Zoltan Varga <vargaz@gmail.com>
8822 * rand.c: Use wincrypt.h instead of WinCrypt.h.
8824 2005-08-24 Ankit Jain <jankit@novell.com>
8825 Raja R Harinath <rharinath@novell.com>
8827 * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
8828 called by it recursively.
8829 (mono_class_init): Remove special case in pending_init handling, since it's
8830 superseded by the fix to mono_class_from_typeref.
8832 2005-08-22 Zoltan Varga <vargaz@freemail.hu>
8834 * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the
8835 BROKEN_THREAD_START stuff.
8837 2005-08-21 Zoltan Varga <vargaz@freemail.hu>
8839 * class-internals.h object.c: Add a new kind of trampoline called a delegate
8842 * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
8844 * object.c (mono_delegate_ctor): Replace the original function address with
8845 a delegate trampoline.
8847 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
8849 * icall.c: add boolean argument to base64_to_byte_array and
8850 InternalFromBase64String to control whether a whitespace-only string
8851 is allowed (or should casue a FormatException to be thrown). We need
8852 this as the behavior has changed between MS.NET 1.x and 2.0, and we
8853 to match the MS behaviour in both profiles.
8854 * appdomain.c: Bump corlib version.
8856 2005-08-20 Carlos Alberto Cortez <calberto.cortez@gmail.com>
8858 This patch implements a big portion of publisher policy
8859 support, used to bind assembly versions and redirect
8860 one assembly from version A to version B.
8863 New GSList loaded_assembly_bindings, for storing the cached
8865 (assembly_binding_maps_name): New static function for checking if a
8866 assembly binding information maps an assembly name.
8867 (mono_assembly_binding_info_free): New function for freeing
8868 assembly binding information resources.
8869 (get_publisher_policy_info): New static function for retrieving
8870 assembly binding information from a MonoImage.
8871 (compare_versions): New static function for comparing an assembly
8872 binding information data and the version of an assembly name.
8873 (check_policy_versions): New static function for checking if an
8874 assembly binding info mapping an assembly name is valid for it.
8875 (mono_assembly_load_publisher_policy): New static function for
8876 loading the 'policy.major.minor.MyAssembly' image for an assembly
8877 with an assembly name 'aname'.
8878 (mono_assembly_bind_version): New static function for updating
8879 assembly redirection.
8880 (mono_assembly_apply_binding): New static function for applying
8882 (search_binding_loaded): New static function for searching
8883 loaded assembly binding infos in the cache domain.
8884 (mono_assembly_load_full): Don't apply assembly binding for
8885 reflection only assemblies.
8887 * metadata-internals.h: Add MonoAssemblyBindingInfo,
8888 which contains information about assembly binding. Also
8889 declare signature for mono_config_parse_publisher_policy ()
8890 function, used to retrieve pub policy info.
8893 (publisher_policy_start): New static function used to parse publisher
8894 policy config files.
8895 (publisher_policy_parser): New static MonoParseHandler containing
8896 the functions used when parsing config files.
8897 (mono_config_parse_publisher_policy): New function for parsing
8898 publisher policy files.
8900 2005-08-20 Zoltan Varga <vargaz@freemail.hu>
8902 * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
8904 * marshal.c (mono_delegate_free_ftnptr): Ditto.
8906 * object.c (mono_get_addr_from_ftnptr): New helper function.
8908 * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
8910 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8912 2005-08-19 Dick Porter <dick@ximian.com>
8914 * threads.c, threads.h, appdomain.c, appdomain.h,
8915 profiler-private.h, monitor.c, object.c, object-internals.h,
8916 profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
8917 store the thread ID, so it can hold a 64 bit value if needed.
8919 2005-08-19 Zoltan Varga <vargaz@freemail.hu>
8921 * reflection.c (mono_reflection_create_dynamic_method): Store the
8922 handle class into the method references as well so ldtoken works in
8925 * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
8928 2005-08-19 Ankit Jain <jankit@novell.com>
8931 * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature
8932 here rather than using the method signature of a arbitrary function
8933 named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with
8935 Hack done with Harinath.
8937 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8939 * threadpool.c: disable printing stack traces when we get a exception
8940 in a threadpool thread. I need to do more testing to figure out which
8941 cases actually print this. Fixes bug #75828.
8943 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8945 * icall.c: there might be ignored whitespace after the last '='. This
8946 fixes length computation and bug #75840.
8948 2005-08-18 Zoltan Varga <vargaz@freemail.hu>
8950 * assembly.c (mono_assembly_load_full): Consider .exe extension as
8953 * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
8956 * reflection.c (create_custom_attr_data): Ditto.
8958 2005-08-17 Atsushi Enomoto <atsushi@ximian.com>
8960 * locales.c, culture-info.h : removed RegionLCIDMap.
8961 * culture-info-tables.h : regenerated.
8963 2005-08-16 Martin Baulig <martin@ximian.com>
8965 * class.c (mono_type_get_name_recurse): Small fix.
8967 2005-08-16 Atsushi Enomoto <atsushi@ximian.com>
8969 * locales.c : indentation fixie.
8971 2005-08-15 Atsushi Enomoto <atsushi@ximian.com>
8973 * object-internals.h,
8977 icall.c : added RegionInfo table support.
8978 * culture-info-table.h : regenerated for region support.
8980 2005-08-14 Kamil Skalski <nazgul@nemerle.org>
8982 * reflection.c (resolve_object): handle all kinds of MonoMethod
8983 including generic ones
8985 2005-08-12 Ankit Jain <jankit@novell.com>
8987 * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
8988 (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY.
8990 2005-09-12 Lluis Sanchez <lluis@ximian.com>
8992 * process.c: Don't close a thread handle when it's NULL. This is a
8993 workaround for bug #75733.
8995 2005-08-11 Zoltan Varga <vargaz@freemail.hu>
8997 * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
8999 2005-08-10 Zoltan Varga <vargaz@freemail.hu>
9001 * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9003 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9005 * threadpool.c: if a work item in the thread pool has a callback that
9006 catches a exception, don't propagate it after invoking the callback.
9009 2005-08-08 Zoltan Varga <vargaz@freemail.hu>
9011 * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9013 * class-internals.h (MonoCachedClassInfo): Add some new fields.
9015 * class.c (mono_class_init): Load field info lazily in the AOT case.
9017 * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9019 2005-08-03 Ankit Jain <jankit@novell.com>
9022 * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9023 PInvoke calling convention is 0.
9025 2005-08-02 Zoltan Varga <vargaz@freemail.hu>
9027 * socket-io.c (convert_sockopt_level_and_name): Applied patch from
9028 Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9030 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9032 * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9033 to handle threads not started by the GC (patch by Michael Meeks
9034 <michael.meeks@novell.com>).
9036 2005-07-31 Kamil Skalski <nazgul@omega.pl>
9038 * reflection.c: Make buffer used in emitting types larger for some
9039 big generic types (patch by Michal Moskal).
9041 2005-07-30 Zoltan Varga <vargaz@freemail.hu>
9043 * mono-debug.c: Fix some (not all) alignment problems.
9045 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9047 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9048 Invoke mono_image_load_from_data_full passing the refonly
9052 (mono_assembly_open_from_bundle): Add the refonly argument,
9053 in order to pass it to other methods it calls to.
9054 (do_mono_assembly_open): Add the refonly argument, in order
9055 to pass it to other methods it calls to.
9056 (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9057 the refonly parameter to it.
9059 * image.c: Add loaded_images_refonly_hash and
9060 loaded_images_refonly_guid_hash to cache the reflection
9062 (mono_images_init): Initialize the hash tables used for
9063 caching the reflection only images.
9064 (load_modules): Invoke mono_image_open_full passing the refonly
9065 parameter to load the modules the correct way.
9066 (build_guid_table): Add the refonly argument, to re-build the
9068 (do_mono_image_open): Added the refonly argument, in order to
9069 define it for the loaded image.
9070 (mono_image_loaded_full): New function, which receives an
9071 additional parameter to look for the image in the refonly or
9072 non-refonly section.
9073 (mono_image_loaded): Updated, using mono_image_loaded_full.
9074 (mono_image_loaded_by_guid_full): The same case that happens
9075 with mono_image_loaded_full.
9076 (mono_image_loaded_by_guid): Likewise.
9077 (register_image): Use the ref_only variable inside MonoImage
9078 to decide in which hash table store the current image.
9079 (mono_image_open_from_data_full): Rename
9080 mono_image_open_from_data to mono_image_open_from_data_full,
9081 adding the refonly argument, to define the ref_only variable
9083 (mono_image_open_from_data): Return
9084 mono_image_open_from_data_full.
9085 (mono_image_open_full): Rename mono_image_open to
9086 mono_image_open_full, receiving the new refonly argument,
9087 to pass it to inner methods.
9088 (mono_pe_file_open): Update this function, to open
9089 a MonoImage as a non-refonly image.
9090 (mono_image_close): Use the refonly variable inside
9091 MonoImage to remove the image from the correct caches.
9093 * image.h: Add the signatures of mono_image_open_full,
9094 mono_image_open_from_data_full, mono_image_loaded_full,
9095 mono_image_loaded_by_guid_full.
9097 * metadata-internals.h: Add the ref_only field to
9100 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9102 * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9103 Fix the last behavior, which used to load the assemblies and
9104 extract MonoReflectionAssemblyName information, instead of
9105 extract it from the metadata tables. Needed for Reflection
9108 2005-07-29 Martin Baulig <martin@ximian.com>
9110 * mono-debug-debugger.c
9111 (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9115 (mono_debug_address_from_il_offset): Check whether we have
9116 debugging support before attempting to take the lock.
9117 (mono_debug_source_location_from_address): Likewise.
9118 (mono_debug_source_location_from_il_offset): Likewise.
9119 (mono_debug_il_offset_from_address): Likewise.
9120 (mono_debug_address_from_il_offset): Likewise.
9122 2005-07-29 Zoltan Varga <vargaz@freemail.hu>
9124 * class.c (mono_class_from_name_case): Add support for dynamic images.
9127 * object.c (mono_class_compute_gc_descriptor): Add a workaround
9130 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
9132 * reflection.c (mono_method_get_object): Fix warning.
9134 2005-07-28 Martin Baulig <martin@ximian.com>
9137 (mono_debug_add_wrapper): Also write the wrapper type.
9139 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
9141 * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9143 * class.c (mono_class_init): Avoid reading nested classes if the AOT
9144 data indicates the class has none.
9146 2005-07-26 Ben Maurer <bmaurer@ximian.com>
9148 * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9149 loader lock with the debugger lock. Prevents deadlocks for beagle.
9151 Beagle can now run on an smp box for a weekend without any
9154 2005-07-26 Zoltan Varga <vargaz@freemail.hu>
9156 * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9157 in a module. Fixes #75629.
9159 2005-07-26 Martin Baulig <martin@ximian.com>
9161 * mono-debug.c (mono_debug_add_wrapper): New static method.
9162 (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9163 interncall or a wrapper.
9165 * mono-debug.h (MonoDebugWrapperData): New public typedef.
9166 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9167 (MONO_DEBUGGER_VERSION): Bump to 51.
9169 * mono-debug-debugger.c
9170 (mono_debugger_add_type): Removed this empty function.
9171 (mono_debugger_add_method): Likewise.
9173 2005-07-22 Zoltan Varga <vargaz@freemail.hu>
9175 * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable ()
9176 before accessing method->slot.
9178 2005-07-21 Jb Evain <jbevain@gmail.com>
9180 * reflection.c (method_encode_clauses/class): Handle filters clauses.
9183 2005-07-21 Zoltan Varga <vargaz@freemail.hu>
9185 * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9188 2005-07-20 Zoltan Varga <vargaz@freemail.hu>
9190 * image.h image.c: Add mono_image_get_guid () API function.
9192 2005-07-19 Ben Maurer <bmaurer@ximian.com>
9194 There were issues when multiple threads tried to load
9195 assemblies. A deadlock was created between assemblies_mutex and
9196 mono_domain_assemblies_lock. This fixes the issue by making the
9197 assembly ref counting be lock free. See bug 75586.
9199 * image.c (mono_image_close): The add ref function here was using
9200 Interlocked operations while the unref was using a mutex and a
9201 --. I don't think this was ever a bug that would be exposed in a
9202 non-pendantic way (ie, by an embedder doing a ref on one thread
9203 and an unref on another), but for the sake of correctness, this is
9206 * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9207 (mono_assembly_load_reference): Call mono_assembly_addref rather
9208 than touching the refcount ourselves.
9209 (mono_assembly_close): Use InterlockedDecrement to unref the
9210 assembly. Don't acquire the lock unless it is actually needed.
9212 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
9214 * class.c (mono_class_layout_fields): Fix calculation of has_references
9217 2005-07-12 Martin Baulig <martin@ximian.com>
9219 Applying a patch from Michal Moskal <malekith@nemerle.org>.
9222 (mono_type_hash): Provide better hashing for generic instances.
9223 (mono_generic_inst_hash): Improve hashing.
9224 (mono_generic_class_hash): Likewise.
9226 * reflection.c (mymono_metadata_type_hash): Improve hashing for
9229 2005-07-12 Martin Baulig <martin@ximian.com>
9231 * reflection.c (mono_reflection_create_runtime_class): Remove the
9232 hack for generic type definitions and non-`Run' assemblies.
9233 (mono_reflection_bind_generic_parameters): Also use
9234 `klass->wastypebuilder' to check for TypeBuilders.
9236 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
9238 * class.c (mono_class_layout_fields): Fix calculation of has_references
9241 * class.c (inflate_generic_class): Fix a leak.
9242 (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9245 2005-07-11 Martin Baulig <martin@ximian.com>
9247 * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9250 2005-07-11 Martin Baulig <martin@ximian.com>
9252 * loader.c (find_method): Also lookup in
9253 `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9255 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
9257 * appdomain.c (mono_domain_unload): Don't free the error message
9258 before passing it to mono_get_exception_...
9260 * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
9262 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
9264 * threads.c: try to better guess an available RT signal (bug #75387).
9266 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
9268 * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
9271 2005-07-07 Martin Baulig <martin@ximian.com>
9273 * class.c (mono_type_get_name_full): Return NULL for
9274 MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
9277 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
9279 * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
9280 exit the appdomain as well being aborted.
9282 * threadpool.c: Create all threadpool threads inside the root appdomain, and
9283 change back to the root domain after calling managed code. This enables
9284 appdomains using threadpools to be unloaded.
9286 2005-07-07 Martin Baulig <martin@ximian.com>
9289 (MonoInflatedGenericClass): Moved the `MonoType *parent' field
9290 into `MonoDynamicGenericClass' since we only need it for dynamic
9293 * reflection.c (mono_class_bind_generic_parameters): We don't need
9294 to compute the `parent' here.
9296 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
9298 * culture-info-table.h : regenerated.
9300 2005-07-06 Martin Baulig <martin@ximian.com>
9303 (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
9305 * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
9307 2005-07-06 Martin Baulig <martin@ximian.com>
9309 * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
9310 we're doing a signature-only comparision; fixes #74945.
9312 2005-07-06 Martin Baulig <martin@ximian.com>
9314 * class-internals.h (MonoGenericClass): Moved some things out into
9315 a new `MonoInflatedGenericClass' type.
9316 (MonoInflatedGenericClass): New type; the `klass' of a
9317 `MonoGenericClass' is now computed lazyly in
9318 mono_get_inflated_generic_class().
9320 * class.c (mono_get_inflated_generic_class): New public function.
9321 (mono_class_inflate_generic_method): Removed the unused
9322 `MonoClass *' argument.
9323 (setup_generic_vtable): Don't call mono_get_inflated_method() on
9325 (mono_class_create_generic): Make this static and merge it with
9326 mono_class_create_generic_2(); we're now called automatically from
9327 mono_get_inflated_generic_class().
9329 * loader.c (mono_method_signature): Call
9330 mono_get_inflated_method() here.
9332 2005-07-06 Zoltan Varga <vargaz@freemail.hu>
9334 * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
9335 type of fields with RVA.
9337 * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
9338 for this pseudo class.
9339 (my_mono_class_from_generic_parameter): Likewise.
9340 (mono_class_init): Allow interfaces to have cctors.
9342 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
9344 * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
9345 lazily for AOT methods.
9347 2005-07-05 Martin Baulig <martin@ximian.com>
9349 * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
9350 returns FALSE for a successful match, not TRUE.
9352 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
9354 * loader.c (mono_method_get_index): Optimize this a bit.
9356 2005-07-04 Martin Baulig <martin@ximian.com>
9359 (class_compute_field_layout): Move the check for generic type
9360 definitions into mono_class_layout_fields(). Fixes #74684.
9361 (mono_class_from_generic_parameter): Correctly compute
9362 `klass->parent'; fixes #75457.
9364 * reflection.c (register_assembly, register_module): Make sure
9365 `domain->rejobject_hash' is already created.
9367 2005-07-02 Martin Baulig <martin@ximian.com>
9370 (MonoGenericClass): Move `count_ifaces' and `ifaces' into
9371 `MonoDynamicGenericClass'.
9373 2005-07-01 Lluis Sanchez <lluis@ximian.com>
9375 * icall.c: In ves_icall_InternalExecute() dont't assert if the value
9376 returned by a field getter is null, since null is a valid value.
9378 2005-07-01 Martin Baulig <martin@ximian.com>
9380 * reflection.c (mono_reflection_generic_class_initialize): Update
9381 the `dgclass->fields [i].parent' to the correct class.
9382 (mono_image_get_fieldref_token): Use the declaring type, not the
9385 2005-07-01 Martin Baulig <martin@ximian.com>
9387 * loader.c (find_method): Also look in the interfaces; fixes #75429.
9389 2005-06-30 Ben Maurer <bmaurer@ximian.com>
9391 * threads.c (thread_cleanup): assert that thread != NULL
9392 (wait_for_tids_or_state_change): We were using the wrong variable
9393 when accessing wait->threads. `i' was always out of the bounds of
9396 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9398 * loader.c: map user32 and kernel32 to libMonoSupportW
9400 2005-06-28 Zoltan Varga <vargaz@freemail.hu>
9402 * appdomain.c (unload_thread_main): Mark this as WINAPI.
9404 2005-06-28 Martin Baulig <martin@ximian.com>
9406 * loader.c (method_from_methodspec): Fix #75334.
9408 2005-06-28 Martin Baulig <martin@ximian.com>
9410 Fix #74953 - Arrays now implement the generic IList<T> interface
9411 on the 2.0 platform.
9413 * class-internals.h (MonoDefaults): Added `generic_array_class'.
9415 * reflection.c (mono_class_bind_generic_parameters): New public
9416 function; similar to mono_reflection_bind_generic_parameters(),
9417 but operates on a `MonoType *' and not on a `MonoReflectionType *'.
9419 * domain.c (mono_init_internal): Try to initialize.
9420 `mono_defaults.generic_array_class' here; this'll only succeed if
9421 we're using the 2.0 corlib.
9424 (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
9425 interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
9426 (mono_lookup_internal_call): Added support for nested classes.
9429 (mono_get_method_from_token): Set `result->signature->pinvoke' if
9430 we're an interncall and have generic arguments.
9433 (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
9434 (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
9435 instance of System.Array.InternalArray<T> for arrays, so they
9436 implement the generic IList<T> interface.
9438 2005-06-27 Zoltan Varga <vargaz@freemail.hu>
9440 * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
9441 (chastamar@yahoo.com). Fixes #75374.
9443 2005-06-27 Atsushi Enomoto <atsushi@ximian.com>
9445 * culture-info-table.h: regenerated.
9447 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9449 * icall.c: handle spaces correctly for base64 strings.
9451 2005-06-26 Ben Maurer <bmaurer@ximian.com>
9453 * *.c: Kill some warnings.
9455 2005-06-23 Duncan Mak <duncan@novell.com>
9457 * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
9458 that this builds on Solaris 10 (x86).
9460 2005-06-23 Martin Baulig <martin@ximian.com>
9463 (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9464 generic type definitions.
9466 2005-06-23 Martin Baulig <martin@ximian.com>
9470 * metadata.c (mono_class_get_overrides): Renamed to
9471 mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9472 (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9473 pass it to mono_get_method_full().
9475 2005-06-22 Ben Maurer <bmaurer@ximian.com>
9477 * reflection.c (mono_reflection_create_runtime_class): take the
9478 mono_domain_lock in this method. Prevents deadlocks
9480 2005-06-22 Martin Baulig <martin@ximian.com>
9482 * loader.c (method_from_methodspec): Fix #75330.
9484 2005-06-22 Martin Baulig <martin@ximian.com>
9486 * reflection.c (type_get_qualified_name): Use
9487 mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
9488 (_mono_reflection_get_type_from_info): Added `MonoImage *image'
9489 argument; use it if we don't have an assembly name.
9491 2005-06-22 Lluis Sanchez Gual <lluis@novell.com>
9493 * object.c: In mono_message_init, set "copy out" flag for in
9494 parameters with the [Out] flag.
9496 2005-06-21 Martin Baulig <martin@ximian.com>
9499 (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
9502 2005-06-21 Martin Baulig <martin@ximian.com>
9504 * class.c (mono_class_init): Don't initialize `class->fields' for
9505 generic instances since they're initialized again in
9506 compute_field_layout().
9507 (compute_field_layout): Set the field's `generic_info' here; fix
9510 2005-06-21 Martin Baulig <martin@ximian.com>
9513 (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
9515 * metadata.c (mono_metadata_generic_method_equal): Also
9516 distinguish the `generic_class'; fixes #75334.
9518 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9522 * domain-internals.h:
9523 * reflection.c: 'domain_assemblies' field is now protected by its own
9524 lock. Don't call into managed code to run the AssemblyLoad event if we
9525 now there are no registered delegates for it.
9527 2005-06-20 Martin Baulig <martin@ximian.com>
9529 * class.c (mono_class_is_assignable_from): Use a custom version of
9530 mono_class_has_parent() to make things work for generic instances;
9533 2005-06-20 Martin Baulig <martin@ximian.com>
9535 * loader.c (method_from_methodspec): Apply a patch from
9536 Kamil Skalski <nazgul@nemerle.org> to fix #75296.
9538 2005-06-20 Martin Baulig <martin@ximian.com>
9540 * class.c (mono_class_init): Reverted Zoltan's last change; it
9543 2005-06-19 Zoltan Varga <vargaz@freemail.hu>
9545 * threads.c (wait_for_tids_or_state_change): Add missing locking.
9547 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9549 * socket-io.c: fix the index in the socket array for writable/error
9550 sockets. Fixes bug #75306.
9552 2005-06-17 Zoltan Varga <vargaz@freemail.hu>
9554 * class.c (mono_class_init): Allow interfaces to have static ctors.
9556 2005-06-17 Martin Baulig <martin@ximian.com>
9558 * loader.c (method_from_methodspec): Use `context->container' when
9559 parsing the `gmethod->inst'.
9561 2005-06-17 Martin Baulig <martin@ximian.com>
9563 * class.c (mono_type_get_name_recurse): Don't add the assembly
9564 name for type arguments.
9566 2005-06-15 Martin Baulig <martin@ximian.com>
9568 * reflection.c (mono_image_get_inflated_method_token): Encode
9569 correct klass; fixes #75260.
9571 2005-06-13 Michal Moskal <malekith@nemerle.org>
9573 * icall.c: Make GetCorrespondingMethod/Constructor take
9574 MonoReflectionMethod method not MonoMethod. Removed
9575 MonoType.GetCorrespondingField, and make
9576 MonoGenericType.GetCorrespondingField take name not
9579 2005-06-13 Michal Moskal <malekith@nemerle.org>
9581 * reflection.c (field_encode_signature, encode_locals):
9582 Make sizes of buffers for types larger (for big generic types).
9583 (create_generic_typespec,
9584 mono_reflection_sighelper_get_signature_local,
9585 mono_reflection_sighelper_get_signature_field):
9586 Add asserts for too small buffers.
9588 2005-06-15 Martin Baulig <martin@ximian.com>
9590 * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
9591 if our parent is not a dynamic type.
9593 2005-06-15 Martin Baulig <martin@ximian.com>
9595 * class-internals.h (MonoTypeNameFormat): New enum.
9598 (mono_class_get_name_full): Renamed to mono_type_get_name_full().
9599 (mono_type_get_full_name): Removed.
9600 (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
9601 argument instead of the boolean's.
9603 * icall.c (ves_icall_System_MonoType_getFullName):
9604 Added `gboolean assembly_qualified'.
9607 (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
9609 * reflection.c (mono_reflection_parse_type): Parse the new type
9612 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9614 * icall.c: no need to convert from utf16 to utf8 and then back again
9615 after the call to GetLogicalDrives.
9617 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9619 * icall.c: frombase64. Fix problems exposed by new tests.
9621 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9623 * icall.c: added internal calls for converting char [] and strings in
9624 base64 into byte [].
9626 2005-06-10 Martin Baulig <martin@ximian.com>
9628 * class.c (mono_class_create_generic_2): Read the nested classes
9629 from the metadata rather than from `gklass->nested_classes' since
9630 `gklass' might not be initialized yet.
9632 2005-06-09 Duncan Mak <duncan@novell.com>
9634 * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
9635 all public headers. Fixes #74919.
9637 2005-06-09 Lluis Sanchez Gual <lluis@novell.com>
9639 * domain.c: The key for proxy_vtable_hash is now a pointer
9640 array. Added new GHashFunc and GCompareFunc functions for this.
9642 * class.h: The list of interfaces in MonoRemoteClass is known in
9643 advance and can't grow (we create a new MonoRemoteClass if needed),
9644 so now the interface array can be allocated together with
9647 * object.c: Added a new method create_remote_class_key.
9648 Fixed mono_remote_class so it does not depend on
9649 mono_upgrade_remote_class.
9650 Removed extend_interface_array.
9651 Added new method clone_remote_class(), which makes a copy of a remote
9652 class and adds a new interface or class to it.
9653 mono_upgrade_remote_class() now creates a new remote class (or gets
9654 it from the cache) if an vtable upgrade is needed. In this way
9655 we make sure that other objects sharing the same remote class
9656 don't get the new vtable with unwanted interfaces.
9658 * object-internals.h:
9659 * object.h: Moved mono_upgrade_remote_class to object-internals.h.
9661 * marshal.c: Track changes in mono_upgrade_remote_class().
9663 2005-06-08 Kamil Skalski <nazgul@nemerle.org>
9664 * icall.c: Add runtime methods for obtaining members of inflated
9665 class, which were created from supplied non-inflated members. It
9666 is used in internal Get{Method,Constructor,Field} methods in
9669 2005-06-09 Martin Baulig <martin@ximian.com>
9672 (mono_reflection_bind_generic_method_parameters): Fix #75169.
9674 2005-06-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9675 * reflection.c (mono_image_basic_init): Define
9676 Version in MonoDynamicAssembly.
9678 2005-06-08 Martin Baulig <martin@ximian.com>
9683 (mono_method_signature_full): New public method; takes a
9684 `MonoGenericContext *'.
9685 (find_method): Use mono_method_signature_full() and pass the
9686 klass'es context to it.
9688 * class.c (mono_class_is_inflated_method): Use
9689 mono_method_signature_full() and pass the context to it.
9691 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
9693 * object.c: add proper locking in mono_remote_class_vtable(),
9694 fixes possible memory corruption.
9696 2005-06-08 Michael Meeks <michael.meeks@novell.com>
9698 * marshal.c (mono_remoting_marshal_init): set
9699 initialized after initialization.
9701 2005-06-08 Atsushi Enomoto <atsushi@ximian.com>
9705 2005-06-06 Michael Meeks <michael.meeks@novell.com>
9707 * object.c (extend_interface_array): fix really silly
9708 memory corrupting / comparison bug.
9710 2005-06-07 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9712 * reflection.c: Functions added to support the creation
9713 of CustomAttributeData, which includes Attribute data
9714 used by ReflectionOnly methods.
9716 * reflection.h: mono_reflection_get_custom_attrs_data and
9717 mono_custom_attrs_data_construct added (functions exposed).
9719 * icall.c: Added mono_reflection_get_custom_attrs_data
9722 2005-06-07 Zoltan Varga <vargaz@freemail.hu>
9724 * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
9727 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
9729 * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
9731 * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
9732 dynamic DllImportAttribute.
9734 * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of
9735 dynamic DllImportAttribute.
9737 * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
9740 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9742 * threads.c: avoid segfault when an unstarted thread is aborted.
9744 2005-06-05 Kornél Pál <kornelpal@hotmail.com>
9746 * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
9747 Returns the name and version of the runtime for reporting.
9749 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9751 * appdomain.c: bump corlib version.
9752 * object-internals.h: new field in MonoReflectionAssembly.
9754 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9756 * object-internals.h: Carlos forgot to add this field.
9758 2005-06-03 Carlos Alberto Cortez <calberto.cortez@gmail.com>
9760 * icall.c: Added create_version to create instances
9761 of Version of MonoReflectionAssemblyName. This change helps
9762 the AssemblyName tests to keep running fine.
9764 2005-06-03 Lluis Sanchez Gual <lluis@novell.com>
9766 * object.c (mono_method_return_message_restore): A somehow less
9767 intrusive fix for #75138.
9769 2005-06-03 Raja R Harinath <rharinath@novell.com>
9771 * object.c (mono_method_return_message_restore): Fix computation
9772 of expected number of out args.
9774 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
9776 * reflection.c (mono_image_get_method_info): Fix the case when the
9779 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
9781 * object.c: Added missing null check in
9782 mono_method_return_message_restore.
9784 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
9786 * reflection.c (mono_image_get_method_info): Handle the case when
9789 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
9791 * object.c: When creating the vtable for a proxy, take into account
9792 all inherited interfaces, not only the ones registered in
9793 iclass->interfaces. This fixs bug #74996.
9794 Also, in mono_method_return_message_restore, verify that the array
9795 of out args has the expected lengh.
9797 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9799 * socket-io.c: update the timeout in Poll when the call is interrupte.
9801 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9803 * socket-io.c: support abort/suspend in Select_internal after last
9806 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9808 * threadpool.c: remove warning.
9810 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9813 * socket-io.[ch]: Select_internal uses poll() now when available, thus
9814 removing the 1024 limit from select(). Runtime part of the fix for
9817 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9819 * socket-io.c: when resolving the addresses for the same
9820 host returned by gethostname(), get the local IPs from the interface
9821 list. Loopback addresses are discarded if the are interfaces up with
9822 non-loopback ones. Fixes bug #63265.
9824 2005-05-27 Vladimir Vukicevic <vladimir@pobox.com>
9826 * appdomain.c, verify.c, object-internals.h, reflection.c:
9827 bumped corlib number to 36, and added new extra_flags field
9828 to ReflectionMethodBuilder and friends. Fixes #75060.
9830 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
9832 * gc.c: register a new weak link only if the object is non-null
9835 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
9837 * culture-info.h : short time pattern too.
9839 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
9841 * culture-info.h : expand long time pattern string length.
9843 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
9845 * culture-info-table.h : update (more French date format; #72788).
9847 2005-05-25 Zoltan Varga <vargaz@freemail.hu>
9849 * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
9850 the method is static. Fixes #75029.
9852 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
9854 * reflection.c: Update the table_idx field of method builders after
9855 saving the module, since it can change. This is a workaround for
9858 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
9860 * culture-info-table.h : update (additional French date format).
9862 2005-05-20 Zoltan Varga <vargaz@freemail.hu>
9864 * icall.c (ves_icall_type_Equals): Revert last change.
9866 * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
9868 * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
9870 2005-05-20 Sebastien Pouliot <sebastien@ximian.com>
9872 * class-internals.h: Added executioncontext_class field to
9873 MonoDefaults structure.
9874 * domain.c: Cache System.Threading.ExecutionContext class in
9876 * object.c: Capture the ExecutionContext for asynchroneous calls in
9877 mono_async_result_new.
9878 * object-internals.h: Added execution_context and original_context
9879 fields to MonoAsyncResult. Added execution_context to MonoThread.
9880 * security-manager.c|.h: Added mono_get_context_capture_method to
9881 return the capture method (if required by the security manager or by
9882 the framework version used).
9883 * threadpool.c: Apply capture (if present) ExecutionContext in
9884 mono_async_invoke and revert to original context after it completes.
9886 2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
9888 * culture-info-table.h : updated (real hacky solution for zh-CHT).
9890 2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
9892 * culture-info-table.h : zh-CHT related workaround.
9894 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
9896 * marshal.c (emit_marshal_custom): Add some error checking and call the
9897 methods in the ICustomMarshaler interface. Fixes #74875.
9899 * marshal.c (emit_marshal_array): Implement [Out] marshalling in
9900 native->managed wrappers.
9902 2005-05-12 Martin Baulig <martin@ximian.com>
9904 * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
9905 here and use the loader lock.
9907 * mono-debug.c: Properly lock when the debugger is not attached.
9908 (mono_debug_init): Release the initial lock if we're not running
9911 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
9913 * marshal.c (emit_marshal_custom): Pass through NULL values without
9914 calling the custom marshalling routines.
9916 * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
9917 conversion in structures. Fixes #74882.
9919 2005-05-12 Atsushi Enomoto <atsushi@ximian.com>
9921 * culture-info-table.h : zh-* cultures were missing.
9923 2005-05-12 Lluis Sanchez Gual <lluis@novell.com>
9925 * threads.c: Added a new event background_change_event which is signaled
9926 when a thread changes its background mode.
9927 Moved here several checks previously done in managed code. The checks
9928 require the thread lock, and using the thread lock in managed code
9929 can result in deadlocks.
9930 Merged Start_internal and Thread_internal into a single method. Now
9931 Thread_internal does all work of creating and starting a thread.
9932 Added icalls for setting and getting the state of the object. Moved from
9933 managed code to avoid locking there.
9934 Added wait_for_tids_or_state_change() which is called instad of
9935 wait_for_tids when waiting for non-backround threads to end. This method
9936 will return if one of the threads ends or the background_change_event
9938 * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
9939 the background mode. This method signals the background_change_event
9942 * threads-types.h: Added icalls for ClrState, SetState and GetState, and
9943 removed Start_internal.
9945 2005-05-11 Martin Baulig <martin@ximian.com>
9947 * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
9948 to order of some fields to get proper alignment on 64-bit machines.
9950 2005-05-11 Martin Baulig <martin@ximian.com>
9952 * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
9953 changes as they're broken and completely fuck up the debugger.
9955 * mono-debug.c (mono_debug_add_method): Properly unlock on error.
9957 2005-05-10 Martin Baulig <martin@ximian.com>
9959 * reflection.c (mono_reflection_generic_class_initialize): Don't
9960 call mono_class_setup_parent() here.
9962 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9964 * metadata/socket-io.c: on windows, getsockopt/setsockopt for
9965 send/receive timeout use an integer in milliseconds. We were using a
9968 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9971 (internal_get_cultures): reserve the first slot of the array for the
9972 InvariantCulture, which will be filled in managed code.
9974 2005-05-06 Zoltan Varga <vargaz@freemail.hu>
9976 * reflection.c (mono_image_fill_module_table): Initialize the
9977 GENERATION field as well.
9979 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9981 * monitor.c: ignore calls to Monitor.Exit even if no one ever called
9982 Monitor.Enter on the object.
9984 2005-05-05 Lluis Sanchez Gual <lluis@novell.com>
9986 * threads.c: Enable the wait for running threads when exiting.
9987 * icall.c: Suspend all threads before exiting.
9989 2005-05-05 Zoltan Varga <vargaz@freemail.hu>
9991 * assembly.c (mono_assembly_load_reference): Fix warning.
9993 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9995 * threadpool.c: changed the default number of threads per cpu. From now
9996 on, the default will be 20 + (5 * number of cpus) instead of 50.
9998 2005-05-04 Zoltan Varga <vargaz@freemail.hu>
10000 * loader.c (mono_method_get_signature_full): Add locking here.
10002 2005-05-03 Lluis Sanchez Gual <lluis@novell.com>
10004 * appdomain.c: Moved methods for parsing and freeing assembly
10005 names to assembly.c.
10006 * assembly.c, domain-internals.h: Created public methods for parsing
10007 assembly names. Fixed mono_assembly_load_with_partial_name:
10008 it now finds the best match, taking into account the version,
10009 token and culture specified in the partial name. Also return
10010 the latest version if no version information is specified.
10012 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10014 * threadpool.c: replace check for SocketAsyncCall class.
10016 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10018 * threadpool-internals.h:
10019 * Makefile.am: added threadpool-internals.h
10021 * threadpool.c: call mono_unhandled_exception on exceptions not handled
10022 that happen in threadpool threads (tested on MS).
10023 (mono_thread_pool_remove_socket): new function that dispatch any pending
10024 AIO call on a socket that is closing. By now only epoll really needs it,
10025 as select/poll wake up when the socket closes.
10028 * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10030 2005-05-01 Zoltan Varga <vargaz@freemail.hu>
10032 * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10034 2005-05-01 Lluis Sanchez Gual <lluis@novell.com>
10036 * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10038 2005-04-30 Lluis Sanchez Gual <lluis@novell.com>
10040 * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10041 has an abort request, convert it into a suspend request.
10043 2005-04-30 Ben Maurer <bmaurer@ximian.com>
10045 * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10046 warning for the usage of `UnmanagedFunctionPointerAttribute' which
10047 is not supported yet.
10049 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10051 * image.c: register assemblies loaded from data (bundles) in the loaded
10052 assemblies hash. Fixes bug #74772.
10054 2005-04-29 Martin Baulig <martin@ximian.com>
10056 * class.c (mono_type_get_name_recurse): Update to the new naming
10057 schema from the latest .NET 2.x beta2.
10058 (mono_class_setup_vtable_general): If we're a generic instance,
10059 copy the vtable from our generic type definition and inflate all
10062 * loader.c (find_method): Update to the new naming schema from the
10063 latest .NET 2.x beta2.
10065 2005-04-29 Raja R Harinath <harinath@gmail.com>
10067 * class.c (mono_class_init): Add a mono_loader_unlock to the
10070 2005-04-28 Zoltan Varga <vargaz@freemail.hu>
10072 * icall.c (ves_icall_System_Environment_Exit): Remove the
10073 suspend_all_other_threads () call for the time being, since it can hang.
10075 * threads.c (mono_thread_manage): Similarly, disable the waiting for
10076 the background threads to exit, since it can also hang.
10078 * class.c (mono_class_init): Applied patch from Ankit Jain
10079 (radical@gmail.com). Avoid pending init errors when a field refers
10080 to a nested class using a typeref. Fixes #74734.
10082 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10083 this for dynamic modules.
10085 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10087 * threads.c: don't wait for threads that are in the process of aborting
10088 or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10089 and waiting for background threads to finish. This makes xsp and
10090 mod-mono-server exit without random length delays and/or hangs.
10092 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10094 * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10096 2005-04-25 Zoltan Varga <vargaz@freemail.hu>
10098 * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10099 dynamic types to prevent infinite loops. Fixes #74727.
10101 * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10102 ..._is_assignable_to.
10104 2005-04-25 Sebastien Pouliot <sebastien@ximian.com>
10106 * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10108 2005-04-25 Martin Baulig <martin@ximian.com>
10110 Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10113 (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10115 * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10117 * reflection.c (build_compressed_metadata): Set metadata header
10120 2005-04-23 Zoltan Varga <vargaz@freemail.hu>
10122 * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10123 number into an integral and a decimal part. Fixes #70473.
10125 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10127 2005-04-23 Atsushi Enomoto <atsushi@ximian.com>
10129 * culture-info-table.h : reflected the latest locale-builder output.
10131 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10133 * threadpool.c: check for SuspendRequested too when deciding if
10134 mono_thread_interruption_checkpoint should be called.
10136 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10138 * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10139 * threads.c: remove interruption_mutex and use Interlocked instead. When
10140 suspending all the threads, wait for all the suspended events at once.
10141 If we're shutting down and get an APC that is going to be queued,
10142 call mono_thread_execute_interruption immediately, as the thread might
10143 be sleeping on a pthread condition or mutex.
10145 * icall.c: call mono_runtime_set_shutting_down before suspending the
10148 Fixes bug #74693. And now xsp is happier when exiting.
10150 2005-04-22 Zoltan Varga <vargaz@freemail.hu>
10152 * loader.c (mono_stack_walk): Fix #74690.
10154 2005-04-22 Martin Baulig <martin@ximian.com>
10156 * mono-debug.h (MonoDebugMethodJitInfo): Added
10157 `MonoDebugMethodJitInfo *jit'.
10159 * mono-debug.c (mono_debug_read_method): Cache the
10160 MonoDebugMethodJitInfo in `address->jit'.
10161 (mono_debug_free_method_jit_info): New public method.
10163 2005-04-22 Martin Baulig <martin@ximian.com>
10165 * class.c (mono_class_is_assignable_from): Disallow
10166 type parameter -> interface.
10168 2005-04-21 Dick Porter <dick@ximian.com>
10170 * threads.c (mono_thread_create): Turn an assertion into an error.
10172 2005-04-20 Zoltan Varga <vargaz@freemail.hu>
10174 * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10176 * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c:
10177 Fix some gcc 4.0 warnings.
10179 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10181 * file-io.c: fix alt dir separator char on unix systems
10182 and cleanup (fixes bug #71214).
10184 2005-04-19 Lluis Sanchez Gual <lluis@novell.com>
10186 * marshal.c: Use CALLVIRT instead of CALL when dispatching
10187 a call to a remote domain, since the method may be an
10188 interface method in the client domain. This fixes bug #74192.
10190 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10192 * threadpool.c: recv/send are now performed before going back to managed
10193 code to save one transition.
10195 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10197 * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10199 * metadata/threadpool.c: removed hack to workaround the bug above.
10203 2005-04-16 Zoltan Varga <vargaz@freemail.hu>
10205 * reflection.c reflection.h: Fix handling of parameter defaults in
10206 dynamic methods. Also fixes handling of parameter attributes.
10209 * mono-debug.c (mono_debug_close_image): Fix warning.
10211 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10213 * socket-io.h: replaced old unused field with new 'blocking'.
10214 * threadpool.c: restore socket blocking state on windows(tm).
10216 2005-04-14 Sebastien Pouliot <sebastien@ximian.com>
10218 * icall.c: don't return the codebase in the AssemblyName[] returned by
10219 ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10220 * object-internals.h: Removed FIXME (fields were presents) and fixed
10221 versioncompat declaration.
10223 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10225 * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10226 not closed, so don't cleanup when it happens.
10228 2005-04-13 Chris Toshok <toshok@ximian.com>
10230 * mono-debug-debugger.h: change prototype for
10231 mono_debugger_lookup_type.
10233 * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10234 this function, although it should probably be named
10235 mono_debugger_init_type.
10237 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10239 * threadpool.c: fix non-AIO case.
10241 2005-04-13 Zoltan Varga <vargaz@freemail.hu>
10243 * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10244 the built-in profiler to measure just JIT compilation times.
10246 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10248 * threadpool.c: the epollfd might be closed by another thread at
10249 any time, so ignore EBADF at treat it as a "we're closing" sign.
10251 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10253 * threadpool.c: release the semaphores with a count equals to the number
10254 of working threads in both IO and regular pools. Fixed typo that messed
10255 up the count of IO pool threads. Don't initialize the pipe handles if
10258 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10260 * threadpool.c: some systems don't like a NULL when deleting the socket
10263 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10265 * threadpool.c: fix semaphore allocation.
10267 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10269 * threadpool.c: added epoll() based implementation for asynchronous IO
10270 that is used instead of the default poll() when available.
10271 It can be disabled by setting MONO_DISABLE_AIO.
10273 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10275 * threadpool.c: windows needs 'closesocket' and instead of returning
10276 0 when the stream is closed while in select, it returns -1. Fixes bug
10279 2005-04-12 Zoltan Varga <vargaz@freemail.hu>
10281 * class.c (class_compute_field_layout): Fix the regression caused by
10284 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10286 * threadpool.c: separate pool for socket async. IO.
10287 * threadpool.h: mono_max_worker_threads is not a global any more.
10289 2005-04-10 Zoltan Varga <vargaz@freemail.hu>
10291 * class.c (class_compute_field_layout): Fix #74549.
10293 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10295 * threadpool.c: select() on windows doesn't allow pipe handles, soooo
10296 use 2 connected sockets instead.
10298 2005-04-08 Miguel de Icaza <miguel@novell.com>
10300 * mono-config.c: Add new entry point for mkbundle
10301 mono_config_parse_memory.
10303 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10305 * threadpool.c: removed another unused function.
10307 2005-04-08 Ankit Jain <radical@corewars.org>
10309 * reflection.c (get_default_param_value_blobs): Add 'types'
10310 parameter to get the types encoded in the constant table.
10311 (mono_param_get_objects): Use the type from the constant table,
10312 not the type of the parameter, when creating default values.
10313 Handle null default values correctly.
10315 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10322 * socket-io.c: removed dead code for async IO.
10324 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10326 * socket-io.h: 2 more fields in MonoSocketAsyncResult.
10328 * threadpool.c: intercept socket async. calls and pass them to a thread
10329 that is polling and dispatching the job items to the threadpool as
10330 socket become ready. Fixes bugs #71217, #71933.
10332 * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
10333 between char and short/ushort arrays.
10335 * socket-io.c: remove dead code.
10337 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
10340 icall.c : removed InternalToUpper_Comp() and
10341 InternalToLower_Comp().
10343 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
10345 * char-conversions.h : The tables were incorrectly generated. Should
10346 be generated against invariant culture.
10348 2005-04-04 Zoltan Varga <vargaz@freemail.hu>
10350 * object.c (mono_runtime_invoke_array): Fix return value when
10351 passing pre-created valuetype objects to ctors.
10353 * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer
10354 (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
10357 2005-03-30 Sebastien Pouliot <sebastien@ximian.com>
10359 * domain.c: removed g_assert for runtimesecurityframe_class. This is
10360 only used with --security and hides the wrong corlib version error.
10362 2005-03-30 Joshua Tauberer <tauberer@for.net>
10364 * class.c: Changed mono_class_name_from_token so that types
10365 outside of a namespace don't have an initial period. Improved
10366 the g_warning message used in _mono_class_get when loading
10368 * assembly.c: In mono_assembly_load_reference, when an assembly
10369 can't be found, "No such file or directory" is misleading and
10370 unhelpful because a few paths were checked for the presence of
10371 the assembly. When that happens (ENOENT), display a nicer
10372 message indicating the directories that were searched. In all
10373 cases, the warning is made easier to read for non-hackers.
10375 2005-03-29 Sebastien Pouliot <sebastien@ximian.com>
10377 * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
10379 * appdomain.h|domain.c: Removed inline from functions.
10380 * appdomain.c: Reduced warnings when compiling on windows.
10381 * icall.c: Fixed output_debug declaration to gunichar2*.
10382 * mono-config.c: Reduced warnings when compiling on windows.
10383 * rand.c: Added missing "windows.h". Added missing return value.
10384 * rawbuffer.c: Added missing winsock2.h for windows.
10385 * sysmath.h: Added mono-compiler.h header to allow/ease
10386 compilation with non-GCC compilers.
10387 * threads.c: Fixed declarations to compile with VS.NET C compiler.
10388 Removed cast warnings.
10390 Adapted from the work of J Lothian (for VC6).
10392 2005-03-29 Zoltan Varga <vargaz@freemail.hu>
10394 * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
10397 2005-03-27 Zoltan Varga <vargaz@freemail.hu>
10399 * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
10402 2005-03-27 Raja R Harinath <harinath@gmail.com>
10404 * Makefile.am (assembliesdir): Fix. If it is arch-dependent it
10405 has to be in $(exec_prefix). $(prefix) is for arch-independent
10406 stuff, and it would probably use $(prefix)/share rather than
10409 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10411 * console-io.c: added 2 includes that might be missing.
10413 2005-03-24 Zoltan Varga <vargaz@freemail.hu>
10415 * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
10418 * reflection.c (create_custom_attr): Allocate the params array using
10419 alloca so it gets GC tracking.
10421 2005-03-23 Chris Toshok <toshok@ximian.com>
10423 * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
10426 2005-03-24 Raja R Harinath <rharinath@novell.com>
10428 * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
10429 changes to pick up any changes in prefix, etc.
10431 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
10433 * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
10435 * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
10436 * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
10438 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
10440 * class-internals.h object-internals.h class.c reflection.c: Extend the
10441 mono_lookup_dynamic_token () function to return the class of the
10444 * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
10445 well. Fixes #73848.
10447 2005-03-23 Sebastien Pouliot <sebastien@ximian.com>
10449 * security-manager.c: Skip inheritance checks for intra-corlib
10450 class inheritance and method overrides. This skips a lot of checks
10451 and (anyway) permissions cannot work until corlib is loaded.
10453 2005-03-23 Martin Baulig <martin@ximian.com>
10455 * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
10456 MONO_TYPE_GENERICINST.
10458 2005-03-23 Martin Baulig <martin@ximian.com>
10460 * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
10462 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10464 * class.c: added locking comments to some functions.
10465 Cache the interface offsets arrays (saves about 20 KB
10466 of runtime memory in a typical app).
10467 Reduce the time overhead in mono_class_setup_supertypes ().
10469 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10471 * icall.c: speedup and fix leaks in GetMethodsByName and
10472 GetPropertiesByName.
10474 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10476 * reflection.c: some locking fixes.
10478 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10480 * metadata.c: added missing break in case statement.
10482 2005-03-22 Zoltan Varga <vargaz@freemail.hu>
10484 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10485 typedbyref return values. Fixes #73941.
10487 2005-03-17 Sebastien Pouliot <sebastien@ximian.com>
10489 * security-manager.c|h: Added demandunmanaged method and
10490 suppressunmanagedcodesecurity class to MonoSecurityManager.
10491 Renamed aptc class to allowpartiallytrustedcallers.
10493 2005-03-17 Martin Baulig <martin@ximian.com>
10495 * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
10497 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10499 * file-io.c: disabled file async. IO using aio_*. It uses the
10500 threadpool now. Workaround for bug #73718.
10502 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10504 * assembly.h, mono-config.c: added code to deal with bundled configs
10505 for bundled assemblies.
10507 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
10509 * *.c, private.h: cleanup, removing old private.h header file.
10511 2005-03-16 Zoltan Varga <vargaz@freemail.hu>
10513 * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
10514 and throw_on_unmappable_char attributes.
10516 2005-03-13 Sebastien Pouliot <sebastien@ximian.com>
10518 * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
10519 _ProcessName_internal.
10521 2005-03-13 Zoltan Varga <vargaz@freemail.hu>
10523 * object.c (mono_array_new_full): Fix aligning of array size. Fixes
10526 * icall.c threads.c threads-types.h: Remove slothash icalls as they
10527 are no longer used.
10529 2005-03-11 Zoltan Varga <vargaz@freemail.hu>
10531 * object.c (compute_class_bitmap): Add support for generics. Fixes
10534 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
10536 * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
10538 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10540 * filewatcher.c: commented out the code for windows watcher, as we don't
10541 use it (we use the managed implementation instead).
10543 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
10545 * object-internals.h (MonoThread): Remove 'unused1' field.
10547 * appdomain.c: Bump corlib version.
10549 * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
10551 * reflection.c (mono_reflection_create_runtime_class): Remove the
10552 AssemblyBuilder.Save optimization since it causes too many problems.
10554 2005-03-10 Sebastien Pouliot <sebastien@ximian.com>
10556 * exception.c|h: Added mono_get_exception_reflection_type_load to
10557 create a ReflectionTypeLoadException object.
10558 * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
10559 to return NULL is a InheritanceDemand fails during reflection. Updated
10560 ves_icall_System_Reflection_Assembly_GetTypes to throw a
10561 ReflectionTypeLoadException if an InheritanceDemand fails during
10562 reflection. Added icall mapping for GetLinkDemandSecurity.
10563 * security-manager.c|h: Added ves_icall_System_Security_
10564 SecurityManager_GetLinkDemandSecurity internal call to return the
10565 class and methods permissions set for a LinkDemand. Removed unused
10566 fields in MonoSecurityManager.
10568 2005-03-10 Martin Baulig <martin@ximian.com>
10570 * class.c (mono_bounded_array_class_get): Initialize `eclass' if
10571 it's a generic instance.
10573 2005-03-09 Zoltan Varga <vargaz@freemail.hu>
10575 * reflection.c (mono_get_object_from_blob): Applied patch from
10576 Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
10578 * class.c (mono_class_is_assignable_from): Another try at fixing
10579 #73469 without breaking anything.
10581 2005-03-08 Zoltan Varga <vargaz@freemail.hu>
10583 * class.c: (mono_class_is_assignable_from): Revert the last changes
10584 since they don't work with generics.
10586 * class.c (mono_class_is_assignable_from): Fix build bustage.
10588 * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
10589 the managed IsAssignableFrom method. Fixes #73469.
10591 * reflection.c (mono_reflection_call_is_assignable_from): New helper
10594 2005-03-04 Zoltan Varga <vargaz@freemail.hu>
10596 * object.c (mono_load_remote_field_new): Fix returning uninitialized
10597 memory when the remoting callback does not sets the out arguments.
10600 * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
10603 * string-icalls.c: Return String.Empty where needed. Fixes #73310.
10605 * object-internals.h (MonoStackFrame): Sync with managed object layout.
10607 * appdomain.c: Bump corlib version.
10609 2005-03-03 Zoltan Varga <vargaz@freemail.hu>
10611 * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
10614 * threads.c (mono_thread_attach): Detect threads which are not started
10615 by the GC pthread wrappers.
10617 2005-03-03 Sebastien Pouliot <sebastien@ximian.com>
10619 * icall.c: Added new icall for RNG.
10620 * rand.c|h: Added new icall to open the RNG. This allows to share a
10621 single handle on Linux to access /dev/urandom and fix #73183.
10623 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
10625 * object.c: setting the new vtable in a transparent proxy object must
10626 not change the GC descriptor.
10628 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10630 * object.c: fixed compilation without GCJ support.
10631 * reflection.c: for runtime-created types ensure klass->has_references
10632 is correct (bug #73215).
10634 2005-03-02 Martin Baulig <martin@ximian.com>
10636 * class.c (mono_class_is_assignable_from): Make this work if
10637 `oklass' is a generic instance; fixes #72831.
10639 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
10641 * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
10644 * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
10646 * marshal.c: Reorganize native->managed marshalling code to also use
10647 the emit_marshal_... functions.
10649 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10651 * object.c: typed allocs have issues with bitmap sizes > 30,
10652 so check for max_set >= 30.
10654 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
10656 * marshal.c (emit_marshal_array): Implement marshalling of arrays to
10657 managed code. Fixes #73012.
10659 * metadata.h (MonoMarshalSpec): Add elem_mult field.
10661 * metadata.c reflection.c: Load/Emit elem_mult as well.
10663 * metadata.h (MonoMarshalSpec): Add comment.
10665 * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
10667 * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
10668 num_elem to -1 if not given.
10670 * object-internals.h (MonoReflectionMarshal): Add has_size field.
10672 * reflection.c (encode_marshal_blob): Differentiate between 0 and not
10675 2005-03-01 Marek Safar <marek.safar@seznam.cz>
10677 * null-gc.c (mono_gc_free_fixed): Was not compilable.
10679 2005-02-28 Zoltan Varga <vargaz@freemail.hu>
10681 * reflection.c (encode_marshal_blob): Encode param_num field as well.
10683 * object-internals.h (MonoReflectionMarshal): Add param_num field.
10685 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
10687 * object.c: generalized the reference bitmap creation
10688 and added hooks for the new GC.
10689 * class-internals.c: removed the gc_bitmap field from MonoClass.
10691 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10693 * domain.c: help the compiler to produce better code
10694 in mono_jit_info_table_find ().
10696 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10698 * object.c: make all allocations look typed.
10700 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10702 * socket-io.c: load Mono.Posix if it's not loaded already
10705 2005-02-24 Martin Baulig <martin@ximian.com>
10707 * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
10708 * reflection.c (dup_type): Likewise.
10710 2005-02-24 Zoltan Varga <vargaz@freemail.hu>
10712 * gc.c (run_finalize): Set the domain for finalizing delegates as well.
10713 Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
10715 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10717 * domain.c, threads.c, object-internals.h: make the critical thread
10718 local vars use the fast access mode (even when we're compiled in
10719 a lib). Provide accessors to be used by the jit during codegen.
10721 2005-02-24 Carlos Alberto Cortez <calberto.cortez@gmail.com>
10723 * appdomain.c: Changed hook functios behavior to include
10724 support for the reflection only assemblies. Some icalls were changed
10725 to support the mentioned assemblies too. Signatures of static methods
10726 try_assembly_resolve and real_load now have an additional parameter:
10729 * assembly.c: General changes to mono_assembly_ methods to support
10730 reflection only api. Functions mono_assembly_open, mono_assembly_load,
10731 mono_assembly_load_from and mono_assembly_loaded have got a '_full'
10732 suffix, to support an additional gbool parameter to specify whether
10733 the assembli is reflection only or not. Created some new hook functions
10734 to add support for reflection only assemblies. Signatures of static
10735 methods load_in_path, search_loaded, and mono_assembly_load_from_gac
10736 have now an additional parameter: refonly.
10738 * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
10739 indicating whether the assembly is reflection only or not.
10741 * exception.c: Add mono_get_exception_invalid_operation.
10743 * icall.c: Throw an InvalidOperationException when trying to invoke
10744 a property/method/event, or trying to set/get the value of a field.
10745 Also add an icall to retrieve the ref_only flag to the
10746 MonoReflectionAssembly.
10748 2005-02-23 Chris Toshok <toshok@ximian.com>
10750 Part of fix for #72827.
10751 * mono-debug.c (mono_debug_add_method): add lexical block data to
10752 the info we write. Kind of a hack at the moment - we copy the
10753 lexical block info from the MonoDebugMethodInfo to the
10754 MonoDebugMethodJitInfo here, before writing it.
10755 (mono_debug_read_method): read the lexical block info.
10757 * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
10759 * debug-mono-symfile.h: add lexical block support.
10761 * debug-mono-symfile.c (mono_debug_find_method): add lexical block
10764 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
10766 * loader.c (mono_lookup_pinvoke_call): Fix warning.
10768 * object.c (mono_runtime_free_method): Call mono_free_method () and
10769 put the TODOs there.
10771 * loader.c (mono_free_method): Free up most memory allocated for
10774 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10776 * reflection.c: properly flag a Type argument to a
10777 named custom attr value (bug #72248).
10779 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10781 * reflection.c: reduce code duplication in named custom
10782 attribute encoding.
10784 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
10786 * reflection.c: properly encode custom attrs of type object
10789 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
10791 * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
10793 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
10795 * socket-io.c: load System.dll if it's not loaded already
10796 (bug #72850 and #70477).
10798 2005-02-21 Martin Baulig <martin@ximian.com>
10800 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
10803 2005-02-21 Martin Baulig <martin@ximian.com>
10805 * reflection.c (mono_image_build_metadata): We also need to
10806 "fixup" the MethodImpl table after we computed the final method
10807 indices. Call fixup_methodimpl() to do that.
10808 (fixup_methodimpl): New private method.
10810 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
10812 * assembly.c: special case mscorlib.dll (bug#72536),
10813 patch from Carlos Alberto Cortez.
10815 2005-02-20 Zoltan Varga <vargaz@freemail.hu>
10817 * threads-types.h threads.c: Fix build bustage.
10819 * threads.c: Use a union for long<->double conversions.
10821 * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
10822 functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
10824 * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock
10825 containing the checkpoint call with NOT_TAKEN.
10827 * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt
10828 checkpoint before pushing the arguments, so they won't have to be
10831 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10833 * domain.c, assembly.c, domain-internals.h: make some data
10834 const and relocation-free.
10836 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
10838 * object.c, appdomain.c, class-internals.h: introduce the
10839 MonoClassRuntimeInfo structure to hold the info needed to
10840 use a class at runtime. Made mono_class_vtable() lock-free
10841 for all the appdomains.
10843 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
10845 * metadata-internals.h, image.c: introduce a per-image mempool to
10846 be used for memory that has the same lifetime as the image.
10848 2005-02-18 Lluis Sanchez Gual <lluis@novell.com>
10850 * domain.c: In mono_init_internal(), instead of selecting the first
10851 runtime version supported by an executable, get a list of all
10852 supported versions and select the one for which an mscorlib exists
10853 (since even if the runtime supports a given version, it doesn't mean
10854 that the framework for that version is installed).
10855 Modified get_runtimes_from_exe to support this behavior.
10856 In supported_runtimes, added information about additional system
10859 * assembly.c: Added support for more than one system assembly version
10860 per runtime version. Updated the assembly list.
10861 In mono_assembly_remap_version, removed the initial version check,
10862 since we don't know to which version we need to compare until we
10863 get the version set on which the assembly is based.
10864 Moved the code for loading corlib into the new method
10865 mono_assembly_load_corlib(), so it can be used by the initialization
10868 * domain-internals.h: Updated data structures and added declaration
10869 for mono_assembly_load_corlib.
10871 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
10873 * reflection.c (resolve_object): Fix the creation of the signature in
10874 the SignatureHelper case.
10876 * assembly.c (mono_assembly_remap_version): Fix binary search.
10878 2005-02-17 Sebastien Pouliot <sebastien@ximian.com>
10880 * class.c: Added inheritance check when a method is overloaded (from a
10881 virtual method or when implementing an interface) and when a class is
10882 inherited. Added functions to set a failure for a class and to
10883 retreive the exception from a failure.
10884 * class-internals.h: Added fields to MonoClass to keep the exception
10885 information status for inheritance (or other exceptions) to be thrown
10886 later (i.e. not at load time).
10887 * object.c: Throw the inheritance SecurityException when a type is to
10888 be created with either class or method inheritance violations.
10889 * reflection.c|h: Fix when getting declsec from a class. Removed
10890 unrequired code for class. Improved sanity in parameter naming.
10891 * security-manager.c|h: Added functions to check for class and method
10894 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
10896 * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
10897 and has_finalize in dynamic types as well.
10899 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
10901 * culture-info-table.h : fixed currency format for en-GB (and so on).
10903 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
10905 * gc.c: ensure the GC handles never have 0 as a value.
10907 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
10909 * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
10910 a pointer to a struct to unmanaged code. Fixes #72625.
10912 2005-02-16 Martin Baulig <martin@ximian.com>
10914 * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
10916 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
10918 * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
10920 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
10922 * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
10924 * marshal.c (mono_ftnptr_to_delegate): If the delegate has the
10925 UnmanagedFunctionPointerAttribute, use it for determining calling convention
10928 * reflection.c (mono_custom_attrs_get_attr): New helper function.
10930 * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
10932 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
10934 * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
10935 changes to make the current context a field in MonoThread.
10937 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
10939 * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
10942 * marshal.c (mono_marshal_emit_native_wrapper): New helper function
10943 extracted from mono_marshal_get_native_wrapper.
10945 * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
10946 to create wrappers around native functions.
10948 * marshal.c (mono_ftnptr_to_delegate): Add support for creating
10949 delegates for arbitrary function pointers. Fixes #71472.
10951 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10953 * threads.c: cleaned up the code a little.
10955 2005-02-15 Martin Baulig <martin@ximian.com>
10957 * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
10960 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
10961 allocate larger chunks if needed.
10963 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
10965 * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
10968 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
10970 * domain.c: keep the domains in an array and ensure the domain ids
10971 are kept small, so they can be used as indexes to domain-specific data
10972 with a small memory overhead.
10974 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
10976 * icall.c: Handle byref types in Type icalls. Fixes #72544.
10978 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
10980 * Makefile.am: remove libmetadata: we build just libmonoruntime now.
10982 2005-02-13 Zoltan Varga <vargaz@freemail.hu>
10984 * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
10986 * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
10989 * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
10991 2005-02-12 Ben Maurer <bmaurer@ximian.com>
10993 * domain-internals.h: add the hashtable here.
10995 * class-internals.h: Remove `info' from MonoMethod
10997 * domain.c: Add a new hashtable, jit_trampoline_hash
10999 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11001 * object.c: don't set the value of static fields
11004 2005-02-11 Martin Baulig <martin@ximian.com>
11006 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11007 (mono_debug_add_method): Silently ignore the method if it's too big.
11008 (mono_debug_add_type): Likewise.
11010 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11012 * threads.c, appdomain.c: remove #ifdefs from the code.
11014 2005-02-10 Sebastien Pouliot <sebastien@ximian.com>
11016 * metadata-internals.h: Added flags to MonoAssembly to cache the most
11017 common security informations. This allows us to stay in unmanaged code
11018 when doing LinkDemand and it's special cases (except for the first
11019 time for initialization). The flags a very much used with --security.
11020 * reflection.c|h: Added code to get declarative security attributes
11021 for LinkDemand and InheritanceDemand. This required to refactor the
11022 existing code for Demand.
11023 * security-manager.c|h: Added new method fields for the special cases
11026 2005-02-10 Martin Baulig <martin@ximian.com>
11028 * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11029 (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11031 2005-02-10 Martin Baulig <martin@ximian.com>
11033 * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11034 debugging code; this is almost a complete rewrite.
11036 * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11038 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11040 * domain.c, object.h: expose mono_string_equal () and
11041 mono_string_hash ().
11042 * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11043 it's implemented in managed code.
11045 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11047 * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11048 lo leak objects between appdomains.
11050 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11052 * assembly.c: old compilers compilation fix from
11053 robertj@gmx.net (Robert Jordan).
11055 2005-02-09 Ben Maurer <bmaurer@ximian.com>
11057 * class-internals.h: Little reminder for the future.
11059 * debug-helpers.c: Fix up wrapper_type_names
11061 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11063 * image.c, metadata-internals.h: when loading an image from a file,
11064 mmap all of it and use the same codepaths as when using a
11065 in-memory image: the code is simpler and we use less memory
11066 (both writable and readonly).
11068 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11070 * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11071 API to alloc runtime data structures that need to be tracked by the
11072 GC and contain pointers.
11073 * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11074 make the code more readable and eventually use a different GC.
11076 2005-02-09 Zoltan Varga <vargaz@freemail.hu>
11078 * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11081 2005-02-09 Lluis Sanchez Gual <lluis@novell.com>
11083 * object.c: In release_type_locks(), don't release the cctor lock
11084 if it has already been released. This fixes a crash in the
11087 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11089 * gc.c, marshal.c, icall.c: register a delegate for finalization
11090 only when the native function pointer has been allocated for it.
11092 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11094 * object.c: cleaned up some code, allocate objects that are
11095 pointer free with the atomic malloc variant. Allocate memory
11096 for static data from the mempool if it's pointer-free.
11097 Allocate the bounds array at the end of the array data, when needed.
11098 * object-internals.h, object.h: move a private function in a private
11100 * class.c: handle missing case in tracking references in fields.
11102 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11104 * class.c, class-internals.h: keep track if a type has
11105 reference fields in either the instance or static fields.
11107 2005-02-07 Lluis Sanchez Gual <lluis@novell.com>
11109 * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11110 and renamed to MonoRuntimeInfo. Added fields to store the expected
11111 framework assembly version. Changed mono_get_framework_version and
11112 mono_get_runtime_version for a single mono_get_runtime_info method.
11114 * assembly.c: Added method to remap system assembly versions to the
11115 current executing runtime version. Removed old mapping code.
11116 Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11118 * icall.c, reflection.c: Track api changes.
11120 2005-02-06 Miguel de Icaza <miguel@novell.com>
11122 * loader.c (method_from_memberref): Improve error reporting,
11123 produce the class name instead of the typeref/typedef index.
11125 2005-02-07 Zoltan Varga <vargaz@freemail.hu>
11127 * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11129 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11131 * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11132 stdcall and charset name mangling. Reorganize the code and add
11133 some tracing stuff.
11135 2005-02-05 Ben Maurer <bmaurer@ximian.com>
11137 * monodiet.c: More iters!
11139 * marshal.c: Iter usage.
11141 * icall.c: Iter usage.
11143 * object.c: Use iters.
11145 * debug-helpers.c: More iters
11147 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11149 * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11152 2005-02-05 Ben Maurer <bmaurer@ximian.com>
11154 * mono-debug-debugger.c: use iters
11156 * class.c, class-internals.h: mono_class_setup_events is static
11159 * All callers: use iters
11161 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
11163 * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11164 Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11166 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
11168 * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11170 * marshal.h: Add prototypes for ldfld/stfld_remote.
11172 * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11173 this is called during startup.
11175 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11177 * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11178 MonoThreadsSync struct private in monitor.c. Changed the way
11179 MonoThreadsSync is allocated so it's faster and there is no
11180 need to keep track of it with a finalizer and it uses less memory.
11181 This also finally allows us to allocate mono objects as ptrfree when
11182 there are no reference fields.
11184 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11186 * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11187 disappearing link to the GC interface and use them to simplify
11188 the gchandles code.
11190 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
11192 * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11193 stfld_remote which call mono_load/store_field_new. This allows methods
11194 calling ldfld/stfld wrappers to be AOTed.
11196 * console-io.c: Include sys/filio.h under solaris.
11198 * console-io.c: Include curses.h if needed correctly.
11200 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
11202 * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11203 method->klass as well.
11205 * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11207 * class.c (mono_class_init): Switch on lazy initialization of
11210 * class.c (mono_class_get_finalizer): Handle the case when the
11211 finalizer is inherited.
11213 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11215 * console-io.c: <curses.h> is needed by term.h on solaris.
11217 2005-02-03 Ben Maurer <bmaurer@ximian.com>
11219 * icall.c, class-internals.h, monodiet.c, class.c: Remove
11220 mono_class_setup_properties where possible. Remove this ftn from
11221 the header file, and make it static.
11223 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
11225 * loader.c: Add missing setup_... call.
11227 * class.c: Add missing setup_... calls.
11229 * class.c (mono_class_init): Switch on lazy initialization of
11230 the generic vtable.
11232 * class.c (mono_class_init): Fix generics broken by the recent changes.
11234 * monodiet.c (handle_type): Add missing setup_... calls.
11236 * class.c: Back out garbage in previous patch.
11238 * class.c: Add missing setup_... calls.
11240 * class.c (mono_class_get_method_from_name_flags): Avoid calling
11241 mono_class_setup_methods () if possible.
11243 * class-internals.h (MonoClass): Add 'has_cctor' flag.
11245 * class-internals.h (MonoCachedClassInfo): New structure.
11247 * class.c: Initialize properties and events fields of MonoClass lazily.
11249 * class.c: Add infrastructure for lazily initializing the methods and
11250 vtable fields of MonoClass. Not yet used.
11252 * class.c (mono_class_get_finalizer): New helper function.
11254 * class.c: Add infrastructure for loading some class related data from
11257 * object.c: Add infrastructure for initializing the vtable from data
11260 * gc.c (run_finalize): Use mono_class_get_finalizer ().
11262 * class.c loader.c object.c icall.c gc.c reflection.c: Call the
11263 appropriate initialization function before accessing parts of the
11264 MonoClass structure.
11266 * marshal.c: Fix warnings.
11268 * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
11270 * mono-debug-debugger.c (get_exception_message): Use
11271 mono_class_get_method_from_name_flags ().
11273 2005-02-02 Ben Maurer <bmaurer@ximian.com>
11275 * reflection.c, appdomain.c: Replace a few manual searches that
11276 Zoltan missed. (Paolo approved this part of my initial patch).
11278 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
11280 * profiler.c: disable recording statistical events at report time.
11282 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11284 * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
11285 to byteswap arrays of enum values, too (bug #72080).
11287 2005-02-02 Zoltan Varga <vargaz@freemail.hu>
11289 * appdomain.c (set_domain_search_path): Allow this to be called if
11290 domain->setup is not yet set.
11292 * loader.c (mono_method_get_index): New helper function.
11294 * loader.c reflection.c: Use mono_method_get_index ().
11296 * class.c (mono_class_get_method_from_name_flags): New helper method.
11298 * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
11301 * class.c (mono_class_get_cctor): New helper method.
11303 * string-icalls.c object.c class.c marshal.c reflection.c: Use
11304 mono_class_get_method () to look up methods.
11306 2005-02-01 Miguel de Icaza <miguel@novell.com>
11308 * console-io.c: Fix the build, this should work on Windows.
11310 2005-01-31 Ben Maurer <bmaurer@ximian.com>
11312 * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
11313 be set to null to keep things valid
11315 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11317 * icall.c: added Console 2.0 icalls.
11318 * Makefile.am: added console-io.[ch]
11319 * console-io.[ch]: internal calls for Console 2.0 API.
11321 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11323 * class.c: make sure we consider all the interfaces
11324 when calculating max_interface_id (bug found by
11325 Jeroen Frijters running ikvm).
11327 2005-01-31 Zoltan Varga <vargaz@freemail.hu>
11329 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
11330 valuetype fields to null.
11332 * object.c (set_value): Ditto. Fixes #71669.
11334 2005-01-31 Martin Baulig <martin@ximian.com>
11336 * metadata.c (mono_metadata_has_generic_params): New public
11337 function; checks whether something is a generic method.
11339 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
11341 * appdomain.c: fix infinite recursion when adding assemblies.
11343 2005-01-30 Sebastien Pouliot <sebastien@ximian.com>
11345 * object.c: Fix small typo to return all items for Environment.
11346 GetCommandLineArgs.
11348 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11350 * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
11351 reflection.c: more domain and assembly-unload related fixes
11352 and memory leaks plugs.
11354 2005-01-30 Zoltan Varga <vargaz@freemail.hu>
11356 * 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.
11358 2005-01-29 Ben Maurer <bmaurer@ximian.com>
11360 * loader.c (mono_method_signature): Make this method lazy
11361 (mono_get_method_from_token): Don't computate the signature here.
11363 Doing this saves quite a bit of memory. I got 90 kb on starting up
11364 monodoc. It should also save some disk reads on startup.
11366 * *: MonoMethod->signature might be NULL now. You *MUST* use
11367 mono_method_signature.
11369 2005-01-29 Zoltan Varga <vargaz@freemail.hu>
11371 * object.c (mono_runtime_get_main_args): Return an array from the
11372 current domain here. Fixes #71938.
11374 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
11376 * monitor.c: formatting changes to comply with the
11377 mono coding style and remove #ifdefs from the code.
11379 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11381 * metadata.c, private.h: remove some unneeded data
11382 and use a more compact representation for table schemas.
11384 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
11386 * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
11387 to get a better distribution in hash tables.
11388 * *.c: use mono_aligned_addr_hash() where appropriate.
11389 * assembly.c: make var static.
11391 2005-01-28 Zoltan Varga <vargaz@freemail.hu>
11393 * domain-internals.h: Put MonoJitInfo on a diet.
11395 * domain.c: Fix a warning.
11397 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11399 * gc.c: rework the gc handles code to reuse handles
11402 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11404 * domain.c: fixed long standing bug in mono_string_equal() which
11405 was brought to light with the ldstr changes.
11407 2005-01-26 Sebastien Pouliot <sebastien@ximian.com>
11409 * reflection.c: Remove warning by adding missing include for marshal.h
11411 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11413 * domain.c, object.c: change the ldstr_table to hold
11414 MonoString* as keys: makes the runtime isinterned lookup
11415 faster and simplifies memory management.
11417 2005-01-25 Sebastien Pouliot <sebastien@ximian.com>
11419 * icall.c: Renamed GetEnvironmentVariable so internal* so it was
11420 possible to add imperative security checks before calling the icall.
11421 * reflection.c: Return security attributes on the original MonoMethod
11422 (and not the wrapped one). This fix permissions on icalls.
11424 2005-01-25 Dick Porter <dick@ximian.com>
11426 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
11427 the check for mktime() support actually test the mktime() return
11428 value. "Fixes" bug 71682, though the output is still different to
11431 2005-01-25 Martin Baulig <martin@ximian.com>
11433 * class.c (mono_class_is_assignable_from): Make this work for
11436 2005-01-24 Ben Maurer <bmaurer@ximian.com>
11438 * marshal.c (mono_string_utf8_to_builder)
11439 (mono_string_builder_to_utf16): We might not have ownership of the
11440 string. In thise case, we need to create a new buffer.
11442 * object-internals.h (mono_stringbuilder_capacity): sb->str might
11443 be null, in which case, use the default capacity.
11445 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11447 * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
11448 GC events to the profiler.
11450 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11452 * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
11453 if you don't want the GC to run.
11455 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
11457 * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
11458 start providing a GC API and keeping different implementations in
11460 * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
11462 2005-01-22 Ben Maurer <bmaurer@ximian.com>
11464 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11465 mmap rather than allocating a huge buffer.
11466 (mono_debug_close_mono_symbol_file): Free the buffer allocated
11469 2005-01-22 Sebastien Pouliot <sebastien@ximian.com>
11471 * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11472 and CheckExecutionRights.
11473 * reflection.c|h: Keep the index of the declarative security to be
11474 used, instead of the pointer, when AOT compiler is used. Also add
11475 class initialization when requesting demands.
11476 * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11477 CheckExecutionRights. Both properties are now FALSE by default, and
11478 unmodifiable, unless the --security option is used.
11480 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11482 * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
11483 reflection.c: properly refcount images and assemblies, many leaks fixed.
11485 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11487 * threadpool.c: increase the timeout for threads in the thread pool to
11488 10s. Fixes bug #67159.
11490 2005-01-20 Bernie Solomon <bernard@ugsolutions.com>
11492 * class-internals.h: Sun's compiler insists on explicit
11493 signed on bit fields to handle then correctly.
11495 2005-01-19 Miguel de Icaza <miguel@ximian.com>
11497 * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
11498 Make the size of the array fit only the number of invalid path
11499 chars that we have.
11501 * class.c (_mono_class_get): Improve the error reporting when a
11502 class referenced is not found, to assist debugging.
11504 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
11506 * threads.c: fix off-by-one error.
11507 * domain.c: free data allocated in the domain.
11509 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
11511 * reflection.c (mono_method_body_get_object): Fill out exception info
11514 * object-internals.h: Add MonoReflectionExceptionHandlingClause
11517 2005-01-19 Martin Baulig <martin@ximian.com>
11519 * loader.c (mono_get_method_constrained): Make this work again.
11521 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
11523 * object-internals.h (_MonoReflectionMethodBody): Make local_index a
11524 guint16 to match the managed side.
11526 * reflection.c (mono_reflection_body_get_object): Fill out local
11529 * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
11532 * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
11533 'local_var_sig_token'.
11535 2005-01-18 Zoltan Varga <vargaz@freemail.hu>
11537 * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks
11540 * reflection.c (mono_method_body_get_object): Handle abstract and
11543 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
11545 * marshal.c, loader.c, class-internals.h, reflection.c:
11546 store the emthod data for a wrapper in an array instead of a list.
11548 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
11550 * marshal.c: change the code to allocate memory more
11551 conservatively for method wrappers.
11553 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
11555 * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
11556 fields from MonoClass to the marshal info structure where they belong.
11558 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11560 * class.c, object.c, class-internals.h, marshal.c: rearrange
11561 some fields and tweak some types to lower memory usage.
11563 2005-01-17 Zoltan Varga <vargaz@freemail.hu>
11565 * threads.c (signal_thread_state_change): Handle the case when the
11566 target thread is the current thread.
11568 * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
11570 * marshal.c: Rename emit_ptr_to_str_conv and its pair to
11571 emit_ptr_to_object_conv.
11573 * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
11574 marshalling. Fixes #71352.
11576 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11578 * metadata.h, blob.h: move table enum to blob.h so it can be included
11580 * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
11581 cut the size of MonoImage/MonoDynamicImage.
11583 2005-01-16 Zoltan Varga <vargaz@freemail.hu>
11585 * profiler.c (mono_profiler_install_simple): Fix default arguments.
11587 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11589 * reflection.c, reflection.h, icall.c: add a function to check
11590 if an attribute type is defined for a metadata object.
11592 2005-01-14 Lluis Sanchez Gual <lluis@novell.com>
11594 * object-internals.h: Added some needed fields from StringBuilder class.
11595 * marshal.c: Set the maxCapacity when creating a StringBuilder.
11597 2005-01-13 Zoltan Varga <vargaz@freemail.hu>
11599 * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
11600 threads before shutting down the runtime.
11602 * threads.c (mono_thread_suspend_all_other_threads): New helper function.
11604 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11606 * object-internal.h, threads.c: implement stacksize and
11607 parameterized thread start functionality (requires
11608 matching corlib). Marked broken code for later removal.
11610 2005-01-12 Martin Baulig <martin@ximian.com>
11612 * class-internals.h (MonoGenericClass): Moved the `initialized'
11613 flag to MonoDynamicGenericClass, removed `init_pending'.
11614 (MonoGenericInst): Added `is_reference' flag.
11616 2005-01-12 Zoltan Varga <vargaz@freemail.hu>
11618 * reflection.c (mono_image_create_pefile): Only set the pe_offset
11619 inside the MSDOS header. Fixes #71201.
11621 * gc.c (mono_gc_cleanup): Handle the case when this is called from the
11623 (mono_domain_finalize): Ditto.
11625 2005-01-12 Martin Baulig <martin@ximian.com>
11627 * class.c (mono_get_shared_generic_class): Use the cache for
11628 non-dynamic generic classes.
11630 * class-internals.h (mono_class_create_generic_2): Removed
11631 function prototype, this function is now static inside class.c.
11633 * class.c (mono_class_create_generic_2): Made this static, only
11634 call it from mono_class_init() and mono_class_setup_parent().
11635 (collect_implemented_interfaces_aux): Call mono_class_init() on
11636 the interfaces we collect.
11637 (mono_class_setup_vtable): Call mono_class_init (class->parent).
11639 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
11641 * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
11642 it a real thread handle.
11644 * domain-internals.h: Move exvar_offset from MonoJitInfo to
11645 MonoJitExceptionInfo, since each catch clause needs its own variable.
11647 2005-01-11 Dick Porter <dick@ximian.com>
11649 * image.c (mono_pe_file_open): New variant on mono_image_open()
11650 that does not set up the CLI metadata; used for FileVersionInfo so
11651 it can get the data for windows binaries too.
11653 * process.c (process_read_string_block): Don't read off the end of
11654 the StringTable block.
11656 These both fix bug 70766.
11658 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
11660 * gc.c: set some fields to NULL at GC cleanup time.
11661 * threads.c: if we quit the main thread, call exit ().
11663 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
11665 * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
11667 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
11669 * threads.h, threads.c, object.c: added accessor and settor for
11670 main_thread. Handle it specially when exiting from it: wait
11671 for other foreground threads to exit.
11673 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
11675 * process.c, verify.c: remove some bloat.
11677 2005-01-09 Zoltan Varga <vargaz@freemail.hu>
11679 * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
11680 the calling convention to cdecl under win32.
11682 2005-01-08 Ben Maurer <bmaurer@ximian.com>
11684 * object.c (mono_object_get_size): New function to get the size of
11685 an object instance.
11687 * profiler.c (simple_allocation): Use above.
11689 2005-01-08 Sebastien Pouliot <sebastien@ximian.com>
11691 * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
11692 ves_icall_System_AppDomain_getRootDomain (as it's not required to
11693 get an appdomain by it's id and we can't assume the root's id is 0).
11694 * domain-internals.h: Change the function prototype to match.
11695 * icall.c: Change the icall table for AppDomain.
11697 2005-01-08 Miguel de Icaza <miguel@ximian.com>
11699 * locales.c (string_invariant_compare_char): Only compute
11700 GUnicodeTypes in the case where we need them. Test for ordinality
11701 first and return if so.
11706 * FIXME: here we must use the information from c1type and c2type
11707 * to find out the proper collation, even on the InvariantCulture, the
11708 * sorting is not done by computing the unicode values, but their
11709 * actual sort order.
11712 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11714 * loader.c: for P/Invoke methods, allow the "Internal" shared
11715 library name to refer to the calling process symbol namespace.
11717 2005-01-07 Sebastien Pouliot <sebastien@ximian.com>
11719 * Makefile.am: Add the security manager to the build.
11720 * security-manager.c|h: New. Initialization of the security manager.
11722 2005-01-07 Dick Porter <dick@ximian.com>
11725 * monitor.c: Update thread state during Monitor and WaitHandle
11726 waits. Fixes bug 71031.
11728 2005-01-07 Zoltan Varga <vargaz@freemail.hu>
11730 * reflection.c (property_encode_signature): Correctly handle when the
11731 property has no methods.
11733 2005-01-06 Zoltan Varga <vargaz@freemail.hu>
11735 * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
11737 * reflection.c (reflection_methodbuilder_from_method_builder): Copy
11738 fields from mb, not rmb. Fixes #71017.
11740 * marshal.c (emit_ptr_to_str_conv): Add support for
11741 ByValTStr -> string conversion. Fixes #71015.
11743 * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
11745 * mempool.c (mono_mempool_contains_addr): New helper function.
11747 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
11749 * metadata.c (mono_metadata_compute_size): Fix size calculation of
11750 HasSematics encoded fields.
11752 * metadata.c (mono_type_to_unmanaged): Improve error message for
11753 invalid string marshalling.
11755 * metadata.c: Fix warnings.
11757 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11759 * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
11762 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
11764 * domain.c object.c domain-internals.h: Revert part of r38077 since the
11765 keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
11768 2005-01-03 Zoltan Varga <vargaz@freemail.hu>
11770 * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
11771 so methods containing these can be AOTed.
11773 2005-01-03 Martin Baulig <martin@ximian.com>
11775 * loader.c (find_method): Removed the hack for generic instances.
11776 (method_from_memberref): If our parent is a generic instance, pass
11777 its generic type definition to find_method() and then inflate the
11779 (mono_get_method_constrained): Pass the generic type definition to
11780 find_method() and inflate the method later.
11782 * class-internals.h (MonoStats): Added `generic_class_count'.
11784 * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
11785 Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
11787 * reflection.c (mono_custom_attrs_from_params): Don't ignore
11788 generic type definitions.
11790 2004-12-30 Zoltan Varga <vargaz@freemail.hu>
11792 * loader.c icall.c: Fix warnings.
11794 2004-12-29 Zoltan Varga <vargaz@freemail.hu>
11796 * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
11797 blittable types. Fixes #70864.
11799 2004-12-29 Martin Baulig <martin@ximian.com>
11802 (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
11804 * reflection.c (mono_method_get_object): Create a
11805 "System.Reflection.MonoGenericMethod" for inflated methods; don't
11806 call mono_get_inflated_method().
11808 * class-internals.h (MonoStats): Added `inflated_method_count_2'.
11810 2004-12-27 Martin Baulig <martin@ximian.com>
11812 * class-internals.h (MonoMethod): Added `is_inflated' flag.
11813 (MonoMethodInflated): Added `inflated' field.
11815 * class.c (mono_class_inflate_generic_method): Don't really
11816 inflate the method here; just set the `is_inflated' flag in the
11818 (mono_class_get_inflated_method): Actually inflate the method here
11819 if it's not already inflated; we use the MonoMethodInflated's new
11820 `inflated' field as a cache.
11822 2004-12-26 Martin Baulig <martin@ximian.com>
11825 (inflate_generic_class): Moved some code out of inflate_generic_type().
11826 (mono_class_inflate_generic_method): If we're already inflated,
11827 inflate the context and use the declaring method; ie. make sure
11828 the declaring method of an inflated method is always the generic
11830 (mono_class_create_from_typedef): Create
11831 `class->generic_container->context->gclass'.
11833 2004-12-24 Ben Maurer <bmaurer@ximian.com>
11835 * metadata-internals.h, marshal.c, reflection.c: More
11836 MonoGHashTable->GHashTable.
11838 * domain-internals.h, class.c: Change MonoGHashTable's into
11839 GHashTables for some cases where no gc stuff is used
11841 All users: update apis
11843 2004-12-23 Ben Maurer <bmaurer@ximian.com>
11845 * metadata.c (builtin_types): Make this `const'. Makes this get
11846 put into the shareable section.
11847 (mono_metadata_init): Casts to make gcc happy.
11849 2004-12-22 Zoltan Varga <vargaz@freemail.hu>
11851 * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
11853 2004-12-21 Sebastien Pouliot <sebastien@ximian.com>
11855 * icall.c: Added an internal call to retrieve the position and length
11856 of assembly-level declarative security attributes (RequestMinimum,
11857 RequestOptional and RequestRefuse). This is used by the Assembly class
11858 to re-create the corresponding permission sets.
11860 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
11862 * marshal.c: fix the stelemref wrapper to be type correct
11865 2004-12-20 Ben Maurer <bmaurer@ximian.com>
11867 * icall.c (ves_icall_System_Object_GetHashCode): There was no need
11868 to do key & 0x7fffffff. Hashtable already does this. It just
11869 results in longer code.
11871 2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
11873 * appdomain.c: Bump corlib version.
11874 * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
11875 * domain.c: Add RuntimeSecurityFrame to mono_defaults.
11876 * reflection.c|h: Add functions to get declarative security infos
11877 (blob position and length) for assemblies, classes and methods.
11879 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
11881 * reflection.c: sort the constant table (bug #70693).
11883 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
11885 * object-internals.h, threads.c, domain.c: add accessors for
11886 the MonoThread and MonoDomain tls keys.
11888 2004-12-18 Martin Baulig <martin@ximian.com>
11890 * class.c (inflate_generic_type): If we're inflating a generic
11891 instance, set `ngclass->context->container = context->container';
11892 ie. the container we inflated into.
11894 * metadata.c (mono_metadata_parse_generic_param): Reflect above
11895 inflate_generic_type() changes.
11897 2004-12-17 Martin Baulig <martin@ximian.com>
11899 * class-internals.h
11900 (MonoGenericClass): Replaced `MonoType *generic_type' with
11901 `MonoClass *generic_class'. Removed `dynamic_info'; if
11902 `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
11903 (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
11905 2004-12-16 Zoltan Varga <vargaz@freemail.hu>
11907 * exception.c (mono_exception_from_token): New helper function.
11909 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
11911 * assembly.c (mono_assembly_load_with_partial_name): Call
11912 mono_assembly_loaded before invoking the preload hooks. Fixes
11915 * object-internals.h (MonoThread): Change culture_info and
11916 ui_culture_info into an array.
11918 * threads.c: Cache culture info objects from more than one appdomain.
11920 * threads.c threads-types.h icall.c: Add icalls for manipulating the
11921 current UI culture.
11923 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
11925 * threads.h threads.c appdomain.c: Clear the culture_info field of
11926 all threads during unloading if they point to an object in the dying
11929 2004-12-13 Ben Maurer <bmaurer@ximian.com>
11931 * culture-info.h (TextInfoEntry): New struct
11932 * object-internals.h: sync with managed
11933 * locales.c: fill the `text_info_data' field
11934 * culture-info-tables.h: update
11936 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
11938 * Makefile.am, monodiet.c: add monodiet, an IL code garbage
11941 2004-12-12 Ben Maurer <bmaurer@ximian.com>
11943 * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
11944 (ves_icall_ModuleBuilder_getMethodToken): Ditto
11946 2004-12-12 Martin Baulig <martin@ximian.com>
11948 * mono-debug-debugger.c (write_type): If we're an enum and the
11949 builtin types have already been initialized, call mono_class_init().
11951 2004-12-11 Martin Baulig <martin@ximian.com>
11953 * metadata.c (mono_metadata_load_generic_params): Added
11954 `MonoGenericContainer *parent_container' argument; automatically
11955 compute `container->is_method'; pass the correct owner to
11958 * reflection.c (compare_genericparam): Sort the GenericParam table
11959 according to increasing owners.
11961 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
11963 * profiler.c: allow disabling the default profiler.
11965 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
11967 * decimal.c, icall.c: allow disabling System.Decimal support.
11969 2004-12-09 Marek Safar <marek.safar@seznam.cz>
11971 * reflection.c: Add support for null attribute arguments.
11973 2004-12-09 Martin Baulig <martin@ximian.com>
11975 * metadata.h, loader.h: Use `idx' instead of `index' in parameter
11976 names to get rid of compiler warnings.
11978 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
11980 * marshal.c (mono_marshal_get_struct_to_ptr): Call
11981 mono_marshal_load_type_info (). Fixes #69625.
11982 (mono_marshal_get_ptr_to_struct): Likewise.
11984 2004-12-08 Martin Baulig <martin@ximian.com>
11986 * mono-debug.h: Bumped version number to 47.
11988 * mono-debug-debugger.c
11989 (mono_debugger_event_handler, mono_debugger_event): Take two
11990 guint64 arguments insteed of a gpointer and a guint32.
11992 2004-12-08 Martin Baulig <martin@ximian.com>
11994 * debug-mono-symfile.h
11995 (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
11996 `address' to `native_offset'.
11998 2004-12-08 Martin Baulig <martin@ximian.com>
12000 * class.c (mono_class_create_from_typespec): Only inflate if we
12001 either have `context->gclass' or `context->gmethod'.
12003 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
12005 * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12007 * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12009 * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12011 * reflection.c (mono_assembly_get_object): Remove the workaround put
12012 in for the release.
12014 * appdomain.c: Use the corlib_internal field from MonoAssembly.
12016 * appdomain.c: Bump corlib version.
12018 * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12019 be visible in other appdomains.
12021 2004-12-07 Ben Maurer <bmaurer@ximian.com>
12023 * threads.c: Interlocked inc and dec for longs were messed up,
12024 use a KISS based impl for this. Fixes 70234
12026 2004-12-07 Zoltan Varga <vargaz@freemail.hu>
12028 * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12030 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12032 * icall.c: fix to follow policy not to allow struct
12033 arguments in icalls.
12035 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12037 * process.c: make the patch that handles spaces in file paths work
12038 on mono/windows too.
12040 2004-12-06 Martin Baulig <martin@ximian.com>
12042 * class.c (mono_class_create_generic): Call
12043 mono_class_setup_supertypes() if we're dynamic.
12044 (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12046 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
12048 * object-internals.h: Add new fields to MonoThread.
12050 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12052 * icall.c threads-types.h threads.c: Add new icalls.
12054 * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12056 * object-internals.h (MonoReflectionAssembly): Sync object layout with
12059 * appdomain.c: Bump corlib version.
12061 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12062 internal assemblies. Fixes #69181.
12064 2004-12-05 Martin Baulig <martin@ximian.com>
12066 * class.c (mono_class_inflate_generic_signature): Make this a
12067 no-op if `context' is NULL or we don't have any type parameters;
12068 also copy `sentinelpos'.
12070 2004-12-04 Zoltan Varga <vargaz@freemail.hu>
12072 * image.c: Add unbox_wrapper_cache.
12074 * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12076 * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12077 function generator.
12079 * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12082 * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12084 2004-12-04 Martin Baulig <martin@ximian.com>
12086 * loader.c (mono_method_get_signature_full): New public function;
12087 like mono_method_get_signature(), but with an additional
12088 `MonoGenericContext *' argument.
12090 * class.c (mono_class_inflate_generic_signature): Formerly known
12091 as inflate_generic_signature(); make this public.
12093 2004-12-04 Martin Baulig <martin@ximian.com>
12096 (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12097 instead of a `MonoGenericContainer *'.
12098 (mono_metadata_parse_array_full): Likewise.
12099 (mono_metadata_parse_signature_full): Likewise.
12100 (mono_metadata_parse_method_signature_full): Likewise.
12101 (mono_metadata_parse_generic_inst): Likewise.
12102 (mono_metadata_parse_generic_param): Likewise.
12103 (mono_metadata_parse_mh_full): Likewise.
12104 (mono_type_create_from_typespec_full): Likewise.
12106 2004-12-03 Martin Baulig <martin@ximian.com>
12108 * class-internals.h (MonoGenericContainer): Replaced the
12109 `MonoGenericContext * pointer with a `MonoGenericContext'
12110 structure and made it the first element.
12112 2004-12-03 Martin Baulig <martin@ximian.com>
12115 (inflate_generic_type): Set the `context->container' when creating
12116 a new MonoGenericContext.
12117 (mono_class_inflate_generic_method): Likewise.
12118 (mono_class_create_from_typespec): Just use `context->container'
12119 to get the container.
12121 * loader.c (method_from_methodspec): Set `context->parent' from
12122 `context->container' - and if that's a method container, use its
12123 parent. Also set the `context->container' when creating a new
12124 MonoGenericContext.
12125 (mono_get_method_from_token): Use just `context->container' to get
12128 * metadata.c (do_mono_metadata_parse_generic_class): Also set
12129 `gclass->context->container'.
12131 * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12132 the `context->container' when creating a new MonoGenericContext.
12134 2004-12-03 Zoltan Varga <vargaz@freemail.hu>
12136 * reflection.c (compare_genericparam): Sort params with identical
12137 owner by their number. Fixes gen-111 on sparc.
12139 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
12141 * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12142 around the domain changes.
12144 * appdomain.c (mono_domain_unload): Handle the case when the thread
12145 calling Unload is itself being aborted during unloading. Fixes #70022.
12147 * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12149 * marshal.c (emit_thread_interrupt_checkpoint_call): Call
12150 checkpoint_func as an icall so it gets a wrapper.
12151 (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12152 in the cross-appdomain wrappers too.
12154 * threads.c (mono_thread_has_appdomain_ref): Make this public.
12156 * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12158 * reflection.c: Fix some memory leaks.
12160 2004-12-02 Martin Baulig <martin@ximian.com>
12162 * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12164 * metadata.c (generic_class_cache): New static hashtable.
12165 (mono_metadata_lookup_generic_class): New public method.
12167 2004-12-02 Martin Baulig <martin@ximian.com>
12169 * class.c (mono_class_create_from_typedef): Call
12170 mono_class_setup_parent() and mono_class_create_mono_type() before
12171 parsing the interfaces.
12173 2004-12-02 Martin Baulig <martin@ximian.com>
12175 * metadata.c (generic_inst_cache): New static hashtable.
12176 (mono_metadata_lookup_generic_inst): New public function.
12177 (mono_metadata_inflate_generic_inst): New public function.
12178 (mono_metadata_parse_generic_inst): New public function.
12179 (do_mono_metadata_parse_generic_class): Use the new
12180 mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12181 since this'll also use the cache.
12183 * reflection.c (mono_reflection_bind_generic_method_parameters):
12184 Use mono_metadata_lookup_generic_inst() to use the new cache.
12186 * class.c (inflate_mono_type): Use
12187 mono_metadata_inflate_generic_inst() to inflate a generic
12188 instance; this'll also use the new cache.
12190 * loader.c (method_from_methodspec): Use
12191 mono_metadata_parse_generic_inst() and
12192 mono_metadata_inflate_generic_inst() rather than parsing it
12193 manually, so we can use the new cache.
12195 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
12197 * threads.c (wait_for_tids): Do not incorrectly free threads when
12198 the wait times out.
12200 2004-12-01 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12202 * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12203 iter->args based on whether parameters are passed in registers (i.e.
12204 MONO_ARCH_REGPARMS is defined)
12206 2004-12-01 Zoltan Varga <vargaz@freemail.hu>
12208 * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12209 the exception message. Fixes #70070.
12210 (method_from_methodspec): Fix warnings.
12212 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12214 * process.c: (complete_path) return the path quoted
12216 2004-12-01 Martin Baulig <martin@ximian.com>
12218 * class-internals.h (MonoGenericInst): New structure.
12219 (MonoGenericClass): Replaced `type_argc', `type_argv' and
12220 `is_open' with `MonoGenericInst *inst'.
12221 (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12222 `is_open' with `MonoGenericInst *inst'.
12224 2004-11-30 Martin Baulig <martin@ximian.com>
12226 Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12228 * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12229 to `generic_class_cache'.
12232 (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12233 (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12234 (mono_generic_inst_is_valuetype): Renamed to
12235 mono_generic_class_is_valuetype().
12237 * class-internals.h
12238 (MonoGenericInst): Renamed to MonoGenericClass.
12239 (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12240 (MonoClass): Renamed `generic_inst' to `generic_class'.
12241 (MonoGenericContext): Renamed `ginst' to `gclass'.
12243 * object-internals.h
12244 (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12246 * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12247 mono_reflection_generic_class_initialize().
12249 * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12250 now known as "System.Reflection.MonoGenericClass".
12251 (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12253 2004-11-29 Sebastien Pouliot <sebastien@ximian.com>
12255 * class-internals.h: Added a flag field to MonoClass to cache the
12256 declarative security attributes actions associated with the class.
12257 * domain-internals.h: Added booleans to MonoJitInfo to cache the
12258 (class or method level) stack modifiers (Assert, Deny and PermitOnly)
12259 applicable to the JITted method.
12260 * reflection.c|h: Added functions to extract (as flags) which security
12261 actions are available (declaratively) for a method, class or assembly.
12262 * metadata.c|h: Added functions to search the declarative security
12263 table in the metadata.
12265 2004-11-29 Ben Maurer <bmaurer@ximian.com>
12267 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
12268 EXPORTEDTYPES are already in the class name cache, so there is no
12269 need to add extra code here to look at them. Just removes a bit of
12272 (ves_icall_System_Environment_get_TickCount): No need for #if
12273 WINDOWS. We already have the code in io-layer.
12275 2004-11-28 Martin Baulig <martin@ximian.com>
12278 (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
12281 2004-11-27 Miguel de Icaza <miguel@ximian.com>
12283 * assembly.c (do_mono_assembly_open): Instead of having a
12284 conditional WITH_BUNDLE, incorporate support for bundles here, by
12285 having a global `bundles' variable holding a pointer to the actual
12288 (mono_register_bundled_assemblies): New API call used by the
12291 See mkbundle.1 for details.
12293 2004-11-27 Martin Baulig <martin@ximian.com>
12295 * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
12296 the vtable for generic methods.
12298 2004-11-26 Martin Baulig <martin@ximian.com>
12301 (mono_metadata_generic_method_hash): New public function.
12302 (mono_metadata_generic_method_equal): Likewise.
12304 * class-internals.h
12305 (MonoGenericContainer): Added `GHashTable *method_hash'.
12307 * reflection.c (ReflectionMethodBuilder): Added
12308 `MonoGenericContainer *generic_container'.
12309 (reflection_methodbuilder_to_mono_method): Don't create a new
12310 MonoGenericContainer each time we're called.
12311 (mono_reflection_bind_generic_method_parameters): Use
12312 `container->method_hash' to cache the results so we don't create a
12313 different method if we're called several times with the same
12316 * loader.c (method_from_methodspec): Use the new
12317 `container->method_hash' here, too.
12319 2004-11-26 Martin Baulig <martin@ximian.com>
12321 * class.c (inflate_generic_signature): Correctly compute
12322 `res->has_type_parameters'.
12323 (mono_class_vtable): Use the `has_type_parameters' flag to
12324 determine whether we're a generic method.
12326 * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
12328 2004-11-25 Zoltan Varga <vargaz@freemail.hu>
12330 * object.c (mono_runtime_run_main): Fix a small memory leak.
12332 2004-11-25 Martin Baulig <martin@ximian.com>
12334 * class.c (set_generic_param_owner): Fixed the loop.
12336 2004-11-25 Martin Baulig <martin@ximian.com>
12338 * object.c (mono_class_vtable): Don't create any JIT wrappers for
12341 2004-11-24 Zoltan Varga <vargaz@freemail.hu>
12343 * reflection.c: Allow all kinds of whitespace, not just ' ' in type
12344 names. Fixes #69787.
12346 2004-11-24 Martin Baulig <martin@ximian.com>
12348 * class.c (mono_class_create_generic_2): If we don't have a
12349 `ginst->parent', inflate `gklass->parent' to get our parent.
12351 2004-11-24 Martin Baulig <martin@ximian.com>
12353 * reflection.c (compare_genericparam): Correctly sort the
12354 GenericParam table; fixes #69779.
12356 2004-11-23 Ben Maurer <bmaurer@ximian.com>
12358 * reflection.c: When writing a PE file, don't create a huge
12359 buffer in memory. Just write the arrays we have to the file.
12360 This reduces memory usage.
12362 * metadata-internals.h: MonoDynamicStream pefile is no longer used
12365 2004-11-17 Martin Baulig <martin@ximian.com>
12367 * class.c (mono_class_init): Don't setup `class->parent' for
12368 dynamic instances; moved this to mono_class_generic_2().
12369 (mono_class_create_generic): Also set `klass->inited' for dynamic
12371 (mono_class_create_generic_2): Don't do anything for dynamic
12372 generic instances. Set `klass->parent' here and also call
12373 mono_class_setup_parent() here.
12375 * reflection.c (do_mono_reflection_bind_generic_parameters): Added
12376 `MonoType *parent' argument; set `ginst->parent' before calling
12377 mono_class_create_generic_2(), so we set the correct parent.
12379 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
12381 * reflection.c: allow getting attributes from ModuleBuilder
12384 2004-11-17 Martin Baulig <martin@ximian.com>
12386 * class.c (mono_class_create_from_typedef): If a type parameter is
12387 inherited from an outer class, set its owner to that class.
12389 2004-11-17 Atsushi Enomoto <atsushi@ximian.com>
12391 * reflection.c: (mono_image_create_pefile): Don't use NULL argument
12392 for (int*) written size. This fixes bug #69592.
12394 2004-11-15 Sebastien Pouliot <sebastien@ximian.com>
12396 * icall.c: Added IsAuthenticodePresnet internal call.
12397 * image.c|h: New function that check a MonoImage for an Authenticode
12398 signature in the certificate PE data directory.
12399 * security.c|h: New internal call to ask the runtime if an
12400 Authenticode signature seems referenced in the PE header.
12402 2004-11-15 Zoltan Varga <vargaz@freemail.hu>
12404 * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
12406 * reflection.c (mono_image_create_pefile): Free the assembly streams
12407 after writing out the assembly file.
12409 * object.c (mono_runtime_run_main): Fix small memory leak.
12411 * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
12412 property access modifiers. Fixes #69389.
12414 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
12416 * domain.c, object.c, object-internals.h, domain-internals.h,
12417 object.h, marshal.c: keep dynamic code info per domain.
12419 2004-11-15 Martin Baulig <martin@ximian.com>
12421 * class.c (mono_type_get_name_recurse): Put type arguments in
12422 `[',`]' instead of in `<','>'. Thanks to Atsushi for the patch,
12425 2004-11-15 Martin Baulig <martin@ximian.com>
12427 * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
12428 (mono_class_setup_vtable): When computing `the_cname' for a
12429 generic instance, don't include the namespace since we'd otherwise
12432 2004-11-15 Martin Baulig <martin@ximian.com>
12434 * class.c (mono_class_create_generic): Changed return type to void.
12435 (mono_class_create_generic_2): New public function; setup
12436 `class->method', `class->field' and `class->interfaces' here
12437 instead of in mono_class_init().
12439 * class.h (mono_class_create_generic): Moved to class-internals.h.
12441 2004-11-14 Ben Maurer <bmaurer@ximian.com>
12443 * reflection.c (mono_image_create_pefile): take a file HANDLE.
12444 rather than writing to memory, write to this file. Right now,
12445 we are just writting into a buffer, and copying that. However
12446 we can avoid the buffer later.
12448 (mono_dynamic_stream_reset): new function
12450 * icall.c, object-internals.h: update for the above.
12452 2004-11-13 Ben Maurer <bmaurer@ximian.com>
12454 * reflection.c: Remove *_ATOMIC macros. We really shouldn't
12455 have been using gc'd memory. First it is slower, unlikely
12456 the comment in the source code said, secondly, it increases
12457 our footprint to do it in the gc.
12459 * icall.c (WriteToFile): rename of getDataChunk. Rewrite
12460 the method so that it does not have to copy to managed code.
12462 2004-11-12 Zoltan Varga <vargaz@freemail.hu>
12464 * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12466 2004-11-12 Martin Baulig <martin@localhost>
12468 * reflection.c (mono_image_create_token): Allow generic method
12469 definitions here, since they may appear in an `.override'; see
12470 gen-98/gen-99 for an example.
12472 2004-11-11 Zoltan Varga <vargaz@freemail.hu>
12474 * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12477 * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12480 2004-11-11 Martin Baulig <martin@ximian.com>
12482 * class.c (mono_class_setup_vtable): In an explicit interface
12483 implementation, the method name now includes the arity.
12485 2004-11-10 Zoltan Varga <vargaz@freemail.hu>
12487 * object.c (mono_array_full_copy): Fix warning.
12489 2004-11-10 Lluis Sanchez Gual <lluis@novell.com>
12491 * appdomain.c: Removed look_for_method_by_name(). Use the new method
12492 mono_class_get_method_from_name() instead.
12494 * class-internals.h: Added two new types of wrappers.
12495 Added MonoRemotingTarget enum. Added new trampoline function type, which
12496 takes an additional MonoRemotingTarget value as parameter, so it is
12497 possible to request a trampoline for a specific target.
12499 * class.c: Added new mono_class_get_method_from_name() method.
12501 * class.h: In MonoRemoteClass, we can have now to vtables, one for
12502 general remoting sinks and one specific for cross domain calls.
12504 * debug-helpers.c: Added new wrapper names.
12506 * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
12509 * image.c: Porperly delete value objects form the remoting invoke hashtable.
12511 * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
12512 with several other methods (mono_marshal_get_xappdomain_dispatch,
12513 mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
12514 and others) can generate a fast remoting wrapper for cross domain calls.
12515 More information can be found in docs/remoting.
12516 Other changes: Removed mono_find_method_by_name, and used
12517 mono_class_get_method_from_name instead.
12518 Remoting wrappers are now stored in a MonoRemotingMethods struct, which
12519 is stored in the remoting invoke hashtable.
12521 * marshal.h: published the new method for getting the xdomain wrapper,
12522 and also added a method for getting the adequate wrapper for a given
12525 * object-internals.h, object.c: Added a couple of methods for capying and
12527 Modified mono_install_remoting_trampoline, which takes the new remoting
12528 trampoline that has a remoting target as parameter.
12529 mono_class_proxy_vtable now also takes a remoting target as parameter, and
12530 will return the most suitable vtable for the target.
12531 Added mono_remote_class_vtable, which returns the vtable of a remote class
12532 (which can be the normal remoting vtable or the xdomain vtable).
12534 * threads.c: the xdomain invoke and dispatch wrappers must also be
12535 protected against interruptions.
12537 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12539 * icall.c: use memmove in BlockCopyInternal when the source and
12540 destination arrays are the same.
12542 2004-11-09 Martin Baulig <martin@ximian.com>
12544 * class-internals.h (MonoGenericContainer): Removed `method' and
12545 `signature', replaced them with `is_method' and `is_signature'
12546 flags. Added `context'.
12548 * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
12549 instead of a `MonoGenericContainer *'.
12551 * metadata.c (mono_metadata_generic_param_equal): Removed the hack
12552 for dynamic type parameters.
12553 (mono_metadata_load_generic_params): Setup `container->context'.
12555 * reflection.c (mono_reflection_setup_generic_class): Setup
12556 `tb->generic_container->context'.
12557 (do_mono_reflection_bind_generic_parameters): Use
12558 mono_class_inflate_generic_type() to correctly inflate types,
12559 rather than using our own hack just for MONO_TYPE_VAR.
12561 2004-11-09 Martin Baulig <martin@ximian.com>
12563 * class.c (mono_class_inflate_generic_method): Small fix; don't
12567 (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
12568 (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
12569 (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
12570 (ves_icall_Type_BindGenericParameters): Likewise.
12571 (ves_icall_Type_get_IsGenericInstance): Likewise.
12572 (ves_icall_Type_GetGenericParameterPosition): Likewise.
12573 (ves_icall_MonoType_get_HasGenericArguments): Likewise.
12574 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12575 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12577 2004-11-09 Zoltan Varga <vargaz@freemail.hu>
12579 * assembly.c (mono_assembly_names_equal): Reenable the comparison of
12580 assembly versions and public key tokens. Fixes #69113.
12582 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
12584 * metadata.c: fix bug introduced with the type cache changes
12587 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
12589 * metadata.h, metadata.c, domain-internals.h, marshal.c: include
12590 the MonoClass pointer instead of the token in exception clauses.
12591 * reflection.c: updates for the above and make the code not depend
12592 on the structure of MonoExceptionClause.
12594 2004-11-08 Zoltan Varga <vargaz@freemail.hu>
12596 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
12597 Add support for dynamic assemblies. Fixes #69114.
12599 * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
12601 2004-11-07 Ben Maurer <bmaurer@ximian.com>
12603 * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
12604 since most only those methods use it. the code member of
12605 MonoMethodPInvoke was dead, so that can be removed too. Also,
12606 remove inline_count (again, not used), and move slot so that it
12607 can share bits with some other flags. This saves 8 bytes in the
12608 structure and gives us about 50 kb back for mcs helloworld.cs
12610 * *.[ch]: Do naming changes for the above.
12612 * loader.c (mono_method_get_header): Lazily init the header
12614 (mono_get_method_from_token): don't init the header here
12615 (mono_free_method): the header may never be allocated
12617 Overall, this saves 150 kb of unmanaged allocations
12618 for mcs helloworld.cs. That accounts for 10% of the unmanaged
12621 * loader.c, loader.h (mono_method_get_header): new accessor.
12623 * *.[ch]: use the above method. Prepares us to lazily load
12626 * *.[ch]: Clean up all the pesky warnings. gcc now only gives
12627 three warnings, which are actual bugs (see 69206).
12629 * class-internals.h (MonoMethod): Remove remoting_tramp. It is
12630 unused. Saves a cool 4 bytes / method.
12632 2004-11-06 Ben Maurer <bmaurer@ximian.com>
12634 * metadata.c (builtin_types): Add types for System.Object here.
12635 (mono_metadata_parse_type_full): Cache MonoType*'s that are
12636 for a class or valuetype from klass->this_arg or klass->byval_arg.
12638 On mcs for a hello world, this gets us down from 21836 MonoType's
12641 (mono_metadata_free_type): Account for the above change.
12643 2004-11-06 Zoltan Varga <vargaz@freemail.hu>
12645 * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an
12646 exception instead of asserting if name is null.
12647 (ves_icall_System_AppDomain_GetData): Ditto.
12649 2004-11-05 Zoltan Varga <vargaz@freemail.hu>
12651 (ves_icall_get_enum_info): Avoid crash when called on a non-finished
12654 * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly):
12655 Return NULL when the domain does not have entry_assembly set.
12657 * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal):
12658 Add a 'resource_modules' argument.
12659 (ves_icall_type_GetTypeCode): Fix typecode of byref types.
12661 * reflection.c (mono_reflection_create_runtime_class): Move setting
12662 of wastypebuilder here, so mono_get_type_object () returns a MonoType
12665 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
12666 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
12667 Throw an ArgumentNullException if 'ptr' is null.
12669 * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
12670 assemblies here. Fixes #69020.
12672 2004-11-05 Geoff Norton <gnorton@customerdna.com>
12674 * reflection.c (build_compressed_metadata): Fix the previous patch for
12675 big endian systems. GUINT32_FROM_LE isn't needed on strlen and was overwriting
12678 2004-11-04 Zoltan Varga <vargaz@freemail.hu>
12680 * assembly.c (mono_assembly_names_equal): Allow a match if one of
12681 the cultures is false. Fixes #69090.
12683 * reflection.c (build_compressed_metadata): Fix invalid memory read
12684 detected by valgrind.
12686 * reflection.c (mono_reflection_get_type): Avoid triggering a
12687 TypeResolve multiple times for the same type. Fixes #65577.
12689 2004-11-04 Ben Maurer <bmaurer@ximian.com>
12691 * marshal.c: Avoid using ldftn to call managed functions. It is
12692 much slower than just a call.
12694 * reflection.c (mono_module_get_object): free the basename we
12695 allocate here from glib.
12697 * reflection.c (ensure_runtime_vtable): make sure to free
12698 overrides. Also, we were allocating an array of MonoMethod not an
12699 array of MonoMethod*.
12701 * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
12703 * image.c (mono_image_close): free image->guid here.
12705 2004-11-02 Zoltan Varga <vargaz@freemail.hu>
12707 * reflection.c: Fix some spec conformance issues with the PE file
12708 structures so mcs compiled apps run on the Net 2.0 beta.
12710 2004-11-01 Zoltan Varga <vargaz@freemail.hu>
12712 * string-icalls.c (ves_icall_System_String_ctor_encoding):
12713 Implement this. Fixes #67264.
12715 * debug-helpers.h debug-helpers.c marshal.c: Move
12716 mono_find_method_by_name to debug-helpers.c.
12718 2004-10-31 Zoltan Varga <vargaz@freemail.hu>
12720 * object.c (mono_release_type_locks): type_initialization_hash is
12723 * reflection.c object.c object-internals.h: Fix warnings.
12725 * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
12726 without accessors. Fixes #61561.
12728 * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
12729 application base from the root domain if not set. Fixes #65641.
12730 (mono_runtime_init): Fix warning.
12732 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12734 * appdomain.c: call mono_thread_pool_init.
12735 * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
12736 of worker threads based on the number of CPUs and the environment
12737 variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
12738 for non-windows (windows) systems.
12740 2004-10-27 Chris Toshok <toshok@ximian.com>
12742 * mono-debug-debugger.c (write_class): don't call mono_class_init
12743 here, as even with the check for (!klass->init_pending), we get
12744 into a situation where we're hitting cycles in class
12745 initialization. Fixes #68816.
12747 2004-10-25 Zoltan Varga <vargaz@freemail.hu>
12749 * image.c: Avoid overwriting values in the loaded_images_hash when an
12750 assembly is loaded multiple times. Fixes #61152.
12752 * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
12753 so multiple satellite assemblies for the same name can be loaded.
12756 * mono_domain_assembly_preload: Actually return the loaded assembly,
12759 * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
12760 (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
12762 * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
12763 pending finalizers are not invoked after the appdomain has been
12764 unloaded. Fixes #67862.
12766 2004-10-22 Martin Baulig <martin@ximian.com>
12768 * mono-debug-debugger.c
12769 (mono_debugger_runtime_invoke): Don't box valuetypes.
12771 2004-10-22 Chris Toshok <toshok@ximian.com>
12773 * mono-debug-debugger.c (do_write_class): handle .cctors too, and
12774 don't hide private methods.
12776 2004-10-22 Sebastien Pouliot <sebastien@ximian.com>
12778 * icall.c: Allows the runtime to "share" (when known) the public key
12779 token of an assembly. This avoid the need to recalculate the token
12780 (from the public key) in managed code.
12782 2004-10-21 Chris Toshok <toshok@ximian.com>
12784 * debug-helpers.c (append_class_name): argh, revert last patch.
12786 2004-10-21 Chris Toshok <toshok@ximian.com>
12788 * debug-helpers.c (append_class_name): use '+' as the delimiter,
12789 not '/', so that it matches what the debugger uses to look up
12792 2004-10-21 Martin Baulig <martin@ximian.com>
12794 * mono-debug-debugger.c (mono_debugger_throw_exception): New
12795 public method; this is called each time an exception is thrown and
12796 allows the debugger to use exception catch points.
12798 2004-10-21 Martin Baulig <martin@ximian.com>
12800 * mono-debug-debugger.c (mono_debugger_handle_exception): Write
12801 the stack pointer and the exception object in some struct and pass
12802 that to the debugger.
12804 2004-10-21 Chris Toshok <toshok@ximian.com>
12806 * mono-debug-debugger.c (do_write_class): add instance/static
12807 event support. We don't expose "raise" or "other" yet.
12808 (event_is_static): new method.
12810 2004-10-20 Bernie Solomon <bernard@ugsolutions.com>
12812 * mono-debug-debugger.c
12813 (mono_debugger_handle_exception): Remove
12814 bogus return value for fussy compilers.
12816 2004-10-20 Martin Baulig <martin@ximian.com>
12818 * mono-debug-debugger.c
12819 (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
12820 (mono_debugger_handled_exception): Likewise.
12822 2004-10-20 Martin Baulig <martin@ximian.com>
12824 * mono-debug-debugger.h (MonoDebuggerEvent): Added
12825 MONO_DEBUGGER_EVENT_EXCEPTION.
12827 * mono-debug-debugger.c (mono_debugger_handle_exception): New
12828 public function to send the debugger a notification for an
12829 exception and inform it about a catch/finally clause.
12831 2004-10-19 Zoltan Varga <vargaz@freemail.hu>
12833 * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
12834 Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
12837 * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
12839 2004-10-18 Zoltan Varga <vargaz@freemail.hu>
12841 * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
12842 marshalled as [In,Out]. Fixes #58325.
12844 2004-10-14 Zoltan Varga <vargaz@freemail.hu>
12846 * reflection.c (mono_method_body_get_object): Implement some fields.
12848 2004-10-12 Martin Baulig <martin@ximian.com>
12850 * reflection.c (mono_reflection_bind_generic_parameters): Small
12851 fix, correctly retrieve our parent from a generic instance.
12853 2004-10-12 Martin Baulig <martin@ximian.com>
12855 * metadata.c (mono_metadata_generic_param_equal): We always have
12859 (mono_class_from_generic_parameter): We need to have an owner.
12860 (my_mono_class_from_generic_parameter): Likewise.
12862 * reflection.c (mono_reflection_setup_generic_class): Renamed to
12863 mono_reflection_create_generic_class() and added a new
12864 mono_reflection_setup_generic_class().
12865 (mono_reflection_initialize_generic_param): If we're a nested
12866 generic type and inherited from the containing class, set our
12867 owner to the outer class.
12869 2004-10-11 Zoltan Varga <vargaz@freemail.hu>
12871 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
12873 * reflection.c (mono_method_body_get_object): New function to create
12874 a MethodBody object.
12876 * object-internals.h object.h: Add MonoReflectionMethodBody structure.
12878 2004-10-11 Martin Baulig <martin@ximian.com>
12880 * metadata.c (_mono_metadata_type_equal): Renamed to
12881 do_mono_metadata_type_equal() and made static.
12883 2004-10-11 Martin Baulig <martin@ximian.com>
12885 * appdomain.c: Bump corlib version number to 28.
12887 2004-10-10 Martin Baulig <martin@ximian.com>
12889 * class-internals.h
12890 (MonoGenericInst): Added `MonoGenericContainer *container'.
12891 (MonoGenericMethod): Likewise.
12892 (MonoGenericContext): Likewise.
12893 (MonoGenericParam): Added `MonoGenericContainer *owner'.
12896 (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
12897 (do_mono_metadata_parse_generic_inst): Likewise.
12898 (mono_metadata_parse_type_full): New public method. This is the actual
12899 mono_metadata_parse_type() implementation - with an additional
12900 `MonoGenericContainer *' argument.
12901 (mono_metadata_parse_array_full): Likewise.
12902 (mono_metadata_parse_signature_full): Likewise.
12903 (mono_metadata_parse_method_signature_full): Likewise.
12904 (mono_metadata_parse_mh_full): Likewise.
12905 (mono_type_create_from_typespec): Likewise.
12906 (mono_metadata_interfaces_from_typedef_full): New public method;
12907 this is similar to the other _full() methods, but we take a
12908 `MonoGenericContext *' since we have to pass it to mono_class_get_full().
12909 (mono_metadata_parse_generic_param): Take an additional
12910 `MonoGenericContainer *' argument and lookup the MonoGenericParam
12911 from that container.
12912 (mono_metadata_generic_param_equal): New static method to compare
12913 two type parameters.
12914 (_mono_metadata_type_equal): New static method; takes an
12915 additional `gboolean signature_only' argument - if true, we don't
12916 compare the owners of generic parameters.
12917 (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
12918 with a TRUE argument - do a signature-only comparision.
12920 * loader.c: Use the new _full() methods and pass the
12921 MonoGenericContainer to them.
12923 * object-internals.h (MonoReflectionTypeBuilder): Added
12924 `MonoGenericContainer *generic_container' field.
12925 (MonoReflectionMethodBuilder): Likewise.
12927 2004-10-08 Zoltan Varga <vargaz@freemail.hu>
12929 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
12930 case initial images of dynamic assemblies.
12932 * reflection.c (mono_image_basic_init): Set 'initial_image' field.
12934 * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
12936 * reflection.c (mono_reflection_event_builder_get_event_info): Fix
12937 length of event->other array.
12938 (typebuilder_setup_events): Ditto.
12940 * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
12941 'assembly_by_name' and add an 'assemblies' list.
12943 * assembly.h assembly.c: Add a new search hook for determining whenever
12944 an assembly is already loaded. Use this instead of searching in the
12945 loaded_assemblies list.
12947 * domain.c appdomain.c: Implement the new search hook so loaded
12948 assemblies are now scoped by appdomain. Fixes #67727.
12950 2004-10-07 Zoltan Varga <vargaz@freemail.hu>
12952 * threads.c (mono_thread_attach): Initialize synch_lock field so
12953 mono_thread_detach works again.
12955 * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
12956 'lib' too. Fixes #63130.
12958 2004-10-06 Jackson Harper <jackson@ximian.com>
12960 * culture-info-tables.h: regenerated.
12962 2004-10-06 Zoltan Varga <vargaz@freemail.hu>
12964 * icall.c (ves_icall_Type_GetInterfaces): Include interfaces
12965 implemented by other interfaces in the result. Fixes #65764.
12967 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
12968 Handle unloadable modules without crashing.
12970 * image.c (load_modules): Revert the previous patch since modules must
12971 have a fixed index inside the array.
12973 * image.c (load_modules): Don't include native modules in the modules
12976 2004-10-05 Zoltan Varga <vargaz@freemail.hu>
12978 * reflection.h: Add param_defaults field.
12980 * reflection.c: Add support for parameter defaults in dynamic methods.
12983 * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
12984 an empty string when a type has no namespace. Fixes #64230.
12986 2004-10-04 Sebastien Pouliot <sebastien@ximian.com>
12988 * tabledefs.h: Added "internal" security actions to support non-CAS
12989 permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance.
12990 Note: they do not seems to be used anymore in 2.0 (new metadata format)
12992 2004-10-04 Zoltan Varga <vargaz@freemail.hu>
12994 * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
12995 constructor of abstract class. Fixes #61689.
12997 2004-10-04 Martin Baulig <martin@ximian.com>
12999 * class-internals.h (MonoGenericContainer): New type.
13000 (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13001 `MonoGenericContainer *generic_container'.
13002 (MonoClass): Replaced `gen_params' and `num_gen_params' with
13003 `MonoGenericContainer *generic_container'.
13005 * metadata.c (mono_metadata_load_generic_params): Return a
13006 `MonoGenericContainer *' instead of a `MonoGenericParam *';
13007 removed the `num' argument.
13009 2004-10-03 Zoltan Varga <vargaz@freemail.hu>
13011 * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13012 for dynamic images.
13014 * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13017 * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13019 * reflection.c: Save pe_kind and machine values into the generated
13022 * appdomain.c: Bump corlib version number.
13024 * object-internals.h: Reorganize layout of LocalBuilder.
13026 * class-internals.h class.c (mono_class_get_implemented_interfaces):
13027 New helper function.
13029 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13030 created MonoType for dynamic types. Fixes #66180.
13032 2004-10-02 Ben Maurer <bmaurer@ximian.com>
13034 * threadpool.c: the ares hashtable needs a critical section around it.
13035 this prevents some nasty segfaults
13037 2004-10-02 Massimiliano Mantione <massi@ximian.com>
13039 * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13040 on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13043 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
13045 * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13047 2004-09-30 Lluis Sanchez Gual <lluis@novell.com>
13049 * image.c: Always canonicalize image file names, to avoid loading
13050 the same assembly twice when referenced using a relative path.
13052 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
13054 * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13056 * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13058 * marshal.c: Fix warnings.
13060 2004-09-29 Geoff Norton <gnorton@customerdna.com>
13062 * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13063 attempting to marshal the delegate_trampoline as the method_addr.
13064 This patch has a static hashtable of marshalled delegates so that
13065 we can map delegate_trampoline addresses back to delegates. This
13066 allows a delegate passed to managed code to be passed back into native
13069 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
13071 * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13073 * reflection.c (method_encode_code): Align method headers properly.
13076 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
13078 * marshal.c: In the runtime invoke wrapper, reset the abort
13079 exception if it is cached. This avoids the automatic rethrowal of
13080 the exception after the catch of the wrapper. Also check for pending
13081 interruptions before calling the managed method. This is done using
13082 the new method emit_thread_force_interrupt_checkpoint, since the
13083 normal checkpoint method is ignored when running the invoke wrapper.
13084 * object.c: If the abort exception is rethrown, set the abort_exc
13085 field of the thread, so it will be rethrown aftere every catch.
13086 * threadpool.c: Only run an interruption checkpoint if what has been
13087 requested is a stop of the thread (aborts will be ignored).
13088 * threads.c: By default, a thread will now never be interrumped while
13089 running the runtime invoke wrapper (this ensures that runtime_invoke
13090 will always return to the caller if an exception pointer is provided).
13091 There is a new special method mono_thread_force_interruption_checkpoint()
13092 to force an interruption checkpoint even if running a protected
13093 wrapper, which is used by the same runtime invoke wrapper to do a check
13096 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
13098 * object.c, object-internals.h: Implemented mono_release_type_locks,
13099 which releases the cctor locks held by a thread.
13100 * threads.c, threads.h: In thread_cleanup, release cctor locks held
13101 by a thread. Added mono_thread_exit() method to be used to safely stop
13104 2004-09-28 Raja R Harinath <rharinath@novell.com>
13106 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13107 Move null check before dereference. Avoid indexing beyond the end
13108 of the 'modules' array.
13110 2004-09-28 Raja R Harinath <rharinath@novell.com>
13112 * metadata-internals.h (MonoImage): Add module_count field.
13113 * image.c (load_modules): Set image->module_count.
13114 (mono_image_load_file_for_image): Use image->module_count.
13115 * reflection.c (mono_image_load_module): Append to image->modules array
13116 of dynamic assembly.
13117 (mono_module_get_object): Fix loop to actually increment index.
13118 Use image->module_count.
13119 * assembly.c (mono_assembly_load_references): Use image->module_count.
13120 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13123 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
13125 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
13126 Avoid assert on generic types.
13128 2004-09-26 Zoltan Varga <vargaz@freemail.hu>
13130 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13132 * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13134 * reflection.c (mono_reflection_marshal_from_marshal_spec): New
13135 function to convert a MarshalSpec structure to its managed counterpart.
13137 * reflection.c: Fix warnings.
13139 * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13142 * icall.c (mono_create_icall_signature): Fix build.
13144 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
13146 * icall.c: Add MakePointType icall.
13148 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13151 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13153 * threadpool.c: reuse allocated slots in the queue.
13155 2004-09-24 Zoltan Varga <vargaz@freemail.hu>
13157 * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13159 * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13161 * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13164 * tabledefs.h: Add constants for pinvoke attributes BestFit and
13165 ThrowOnUnmappableChar.
13167 * icall.c (ves_icall_Type_GetPacking): New icall.
13169 2004-09-24 Martin Baulig <martin@ximian.com>
13171 * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13173 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13176 (mono_domain_set): allow setting a domain that is being unloaded.
13177 (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13180 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
13182 * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13183 the GetCustomAttributes icall.
13185 2004-09-23 Martin Baulig <martin@ximian.com>
13187 * object-internals.h (MonoReflectionGenericParam): Replaced
13188 'has_ctor_constraint', `has_reference_type' and `has_value_type'
13189 with `guint32 attrs'.
13191 2004-09-23 Martin Baulig <martin@ximian.com>
13193 * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13195 2004-09-23 Martin Baulig <martin@ximian.com>
13197 * object-internals.h (GenericParameterAttributes): New enum.
13199 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
13201 * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13203 * class.c (init_events): Fill out event->other field.
13205 * class.c: Fix warnings.
13207 * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13209 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13211 * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13212 walk which doesn't supply the IL offset.
13214 2004-09-22 Martin Baulig <martin@ximian.com>
13216 * reflection.c (mono_reflection_setup_internal_class): If we're
13217 System.ValueType, System.Object or System.Enum, set
13218 `klass->instance_size' and create the vtable.
13219 (mono_reflection_create_internal_class): If we're an enum type,
13220 get the base class from our current corlib.
13222 2004-09-22 Zoltan Varga <vargaz@freemail.hu>
13224 * reflection.h (MonoResolveTokenError): New type.
13226 * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13229 * icall.c: Add an 'error' argument to the ResolveToken icalls.
13231 2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
13233 * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13234 Support also calling constructors, but only for already allocated objects.
13236 2004-09-17 Geoff Norton <gnorton@customerdna.com>
13238 * reflection.c (type_get_qualified_name): If the klass is null
13239 return the typename to avoid a NullRefEx.
13240 (encode_cattr_value): Get the qualified name of the boxed type,
13241 not the underlying enumtype. Fixes #62984.
13243 2004-09-21 Zoltan Varga <vargaz@freemail.hu>
13245 * marshal.c: Fix problems with previous checkin.
13247 2004-09-21 <vargaz@freemail.hu>
13249 * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13250 existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13252 * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13254 2004-09-21 Geoff Norton <gnorton@customerdna.com>
13256 * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13257 should only return a type for pointers, arrays, and passbyref types.
13260 2004-09-21 Martin Baulig <martin@ximian.com>
13262 * domain.c (mono_debugger_check_runtime_version): New public
13265 * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.
13267 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
13269 * reflection.c: Added missing sort to the declarative security
13270 attributes table. MS implementation stops seeing the attributes if the
13271 token number regress in the table (as shown by ildasm and permview).
13273 2004-09-20 Zoltan Varga <vargaz@freemail.hu>
13275 * object-internals.h (MonoReflectionModule): Add 'token' field.
13277 * reflection.c (mono_reflection_get_token): Add support for Module
13279 (mono_module_get_object): Set 'token' field.
13280 (mono_module_file_get_object): Set 'token' field.
13282 * icall.c: Add new Assembly and Module icalls.
13284 * appdomain.c: Bump corlib version.
13286 2004-09-19 Zoltan Varga <vargaz@freemail.hu>
13288 * loader.h loader.c class.h class.c: Add helper functions for obtaining
13289 tokens of metadata objects.
13291 * reflection.h reflection.c (mono_reflection_get_token): New function
13292 to obtain the token of a metadata object.
13294 * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
13296 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
13298 * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
13300 * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
13302 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
13304 * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
13305 * object-internals.h: Added 3 MonoArray* members to MonoReflection
13306 AssemblyBuilder to access the permissions set in the class lib.
13307 * reflection.c: Added security attributes encoding step in
13308 mono_image_build_metadata.
13309 * tabledefs.h: Added new security actions defined in 2.0:
13310 LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
13312 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
13314 * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
13317 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
13319 * locales.c: nullify the ICU_collator member of CompareInfo when it is
13320 finalized. There where random SIGSEVs at program termination, when
13321 an object being finalized was trying to do a string comparison and
13322 the current culture was already finalized.
13324 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13326 * threads.c: call thread_cleanup before finishing the thread if we get
13329 2004-09-16 Zoltan Varga <vargaz@freemail.hu>
13331 * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
13332 assemblies from the parent. Fixes #65665.
13334 2004-09-15 Zoltan Varga <vargaz@freemail.hu>
13336 * metadata.c (mono_metadata_parse_type): Fix parsing of custom
13339 2004-09-14 Bernie Solomon <bernard@ugsolutions.com>
13341 * reflection.h: add prototype for mono_get_dbnull_object
13342 * reflection.c: add prototypes for get_default_param_value_blobs
13343 and mono_get_object_from_blob for fussier compilers
13345 2004-09-14 Lluis Sanchez Gual <lluis@novell.com>
13347 * object.c: Added a "done" flag to TypeInitializationLock. This avoids
13348 false deadlock checks in class initialization.
13350 2004-09-13 Zoltan Varga <vargaz@freemail.hu>
13352 * image.c (mono_image_addref): Fix comment.
13354 * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
13357 2004-09-12 Jambunathan K <kjambunathan@novell.com>
13359 * reflection.c (mono_param_get_objects): Modified to return
13360 ParameterInfo.DefaultValue object.
13362 (get_default_param_value_blobs):
13363 (mono_get_object_from_blob):
13364 (mono_get_dbnull_object): New helper routines.
13366 * object.c (mono_get_constant_value_from_blob): New helper routine
13367 carved out from get_default_field_value ()
13369 * object-internals.h (mono_get_constant_value_from_blob): Added
13370 function declaration.
13372 2004-09-11 Zoltan Varga <vargaz@freemail.hu>
13374 * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load
13375 referenced assemblies. Fixes #62135.
13377 * exception.h exception.c (mono_get_exception_file_not_found2): New
13380 2004-09-10 Zoltan Varga <vargaz@freemail.hu>
13382 * class.h class.c: Add mono_type_get_underlying_type ().
13384 2004-09-09 Geoff Norton <gnorton@customerndna.com>
13386 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
13387 Fix GetTypes() to support dynamically created assemblies.
13389 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
13391 * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
13393 * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
13396 * reflection.h reflection.c loader.c: Allow dynamic construction of
13397 pinvoke methods. Fixes #65571.
13399 * reflection.c (mono_reflection_get_type): Revert previous change since
13400 it causes regressions.
13402 2004-09-08 Martin Baulig <martin@ximian.com>
13404 * class.c (class_compute_field_layout): Don't call
13405 mono_class_layout_fields() for open generic instances.
13407 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
13408 * threads.c appdomain.c: fix typo in GC macro
13410 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13412 * threads.c: don't call mono_thread_detach() in start_wrapper(),
13413 avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
13415 2004-09-08 Zoltan Varga <vargaz@freemail.hu>
13417 * image.c (mono_image_close): Applied patch from
13418 vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
13419 assembly is loaded multiple times from data.
13421 * image.c (mono_image_open): Fix warning.
13423 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
13425 * reflection.h reflection.c icall.c: Only call TypeResolve handlers
13426 once. Fixes #58334.
13428 * reflection.c (mono_reflection_create_runtime_class): Initialize
13429 klass->nested_classes. Fixes #61224.
13431 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13433 * threads.c: sched_yield() on exit, to allow threads to quit.
13435 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
13437 * object.c (mono_unhandled_exception): Remove leftover debug code.
13439 2004-09-07 Atsushi Enomoto <atsushi@ximian.com>
13441 * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
13443 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
13445 * marshal.c (emit_marshal_array): Really null terminate string arrays.
13447 * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
13449 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
13451 * marshal.c (emit_marshal_array): Null terminate string arrays.
13453 * marshal.c (raise_auto_layout_exception): Fix warning.
13455 * reflection.c (mono_param_get_objects): Initialize the default value
13456 with DBNull.Value, not null. Fixes #62123.
13458 2004-09-01 Miguel de Icaza <miguel@ximian.com>
13460 * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
13461 throw an exception with a cute explanation.
13463 2004-09-06 Dick Porter <dick@ximian.com>
13465 * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13466 Close the new process's thread handle, as we don't use it. The
13467 handle stays around forever otherwise.
13469 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
13471 * object.c (arith_overflow): Fix warning.
13473 * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13474 calling conventions in method refs. Fixes #65352.
13476 * reflection.c: Fix warnings.
13478 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
13480 * icall.c: Add a new icall for Array.Clear
13482 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
13484 * object.c: When allocating an array, we have to throw
13485 an overflow exception if any of the lengths are < 0.
13487 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
13489 * marshal.h marshal.c: Free unmanaged memory allocated by managed code
13490 properly. Also move implementation of string array marshalling to
13491 managed code. Fixes #42316.
13493 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13495 * assembly.c: provide more information when loading an assembly fails.
13497 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13499 * filewatcher.c: don't expect the development fam package to be
13502 2004-09-03 Zoltan Varga <vargaz@freemail.hu>
13504 * marshal.c: Make a copy of the signature cookie since it will be
13505 freed by the caller.
13507 * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
13509 * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
13511 * metadata.c (mono_metadata_free_marshal_spec): New function to free
13514 * marshal.c: More refactoring.
13516 * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
13519 2004-09-03 Lluis Sanchez Gual <lluis@novell.com>
13521 * object.c: In mono_message_invoke, fill the output parameter array after
13522 calling the managed method (it was done before the call). This fixes
13525 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
13527 * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
13530 2004-09-02 Martin Baulig <martin@ximian.com>
13532 * class.c (mono_class_instance_size): Don't allow generic type
13533 definitions or open generic instances.
13534 (mono_class_array_element_size): If we're a value type, call
13535 mono_class_instance_size() on the original class.
13537 * metadata.c (mono_type_size, mono_type_stack_size): Correctly
13538 handle generic instances.
13540 * mono-debug-debugger.c (write_type): Handle generic instances
13543 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
13545 * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
13546 the allocation request fails. Fixes #65089.
13548 * object.c (mono_runtime_free_method): Do not call mono_free_method.
13550 * object.c (mono_runtime_free_method): New function to free a dynamic
13553 * marshal.c (mono_delegate_free_ftnptr): New function to free the
13554 delegate trampoline.
13556 * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
13557 with hasthis as dynamic,
13559 * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
13561 * domain.c (mono_jit_info_table_remove): New function to remove an
13562 entry from the jit info table.
13564 * class-internals.h (MonoMethod): Add 'dynamic' field.
13566 * loader.c: Fix warnings.
13568 2004-09-01 Martin Baulig <martin@ximian.com>
13570 * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
13571 instead of mono_debugger_lock() because the latter one is a no-op
13572 unless running in the debugger.
13574 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
13576 * class.c (class_compute_field_layout): Classes with auto-layout or
13577 reference fields are not blittable.
13579 2004-09-01 Dick Porter <dick@ximian.com>
13581 * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
13582 mono_image_get_filename() to get the assembly location.
13585 * metadata.h: Fix compile warnings
13587 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
13589 * class.c (class_compute_field_layout): System.Object is blittable.
13591 * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
13592 as in/out. Fixes #59909.
13594 2004-09-01 Martin Baulig <martin@ximian.com>
13596 * metadata.h (MONO_TYPE_ISREFERENCE): Call
13597 mono_metadata_generic_inst_is_valuetype() if we're a generic
13598 instance to check whether our underlying type is a reference type.
13600 2004-09-01 Martin Baulig <martin@ximian.com>
13602 * metadata.c (mono_type_size): If we're a generic instance, call
13603 mono_class_value_size() for value types.
13605 2004-08-31 Zoltan Varga <vargaz@freemail.hu>
13607 * marshal.c: Implement more custom marshalling functionality. Fixes
13610 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13612 * mono-debug.c, debug-mono-symfile.c: add some locking love.
13614 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
13616 * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
13618 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
13620 * icall.c: Fix some warnings.
13622 * threads.c (abort_appdomain_thread): Fix unref errors.
13623 (mono_thread_current): Fix THREAD_DEBUG define.
13625 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
13627 * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
13629 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
13631 2004-08-28 Zoltan Varga <vargaz@freemail.hu>
13633 * marshal.c (mono_marshal_get_native_wrapper): Add support for byref
13636 2004-08-28 Martin Baulig <martin@ximian.com>
13639 (mono_metadata_generic_inst_is_valuetype): New public function.
13641 * metadata.h (MONO_TYPE_ISSTRUCT): Call
13642 mono_metadata_generic_inst_is_valuetype() if we're a generic
13643 instance to check whether our underlying type is a valuetype.
13645 2004-08-26 Zoltan Varga <vargaz@freemail.hu>
13647 * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
13650 2004-08-25 Martin Baulig <martin@ximian.com>
13652 * loader.c (mono_get_method_from_token): Abstract methods can also
13653 be generic and thus have type parameters.
13655 * metadata-internals.h
13656 (MonoDynamicImage): Added `GPtrArray *gen_params'.
13658 * reflection.c (mono_image_get_generic_param_info): Don't create a
13659 metadata row, just add an entry to the `gen_params' array.
13660 (build_compressed_metadata): Sort the `gen_params' array and then
13661 actually create the metadata.
13663 2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13665 * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
13667 2004-08-25 Zoltan Varga <vargaz@freemail.hu>
13669 * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
13671 2004-08-24 Martin Baulig <martin@ximian.com>
13673 * class.cs (mono_class_is_subclass_of): Like an interface, a
13674 generic instance also derives from System.Object.
13676 2004-08-23 Zoltan Varga <vargaz@freemail.hu>
13678 * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
13679 custom modifiers to be in any order. Fixes #61990.
13681 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
13683 * object.c: Register mono_object_new_fast icall.
13685 * object.c (mono_class_get_allocation_ftn): Return to calling
13686 mono_object_new_fast, since it seems faster to compute the object
13687 size in unmanaged code than passing it as a parameter.
13689 * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
13691 * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
13692 this function with Boehm as the oom handler, so we don't have to check
13693 the result of GC_malloc.
13695 * object.c: Remove checks for oom.
13697 * object.h object.c (mono_class_get_allocation_ftn): New function to
13698 return the icall which can be used to allocate an instance of a given
13701 * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
13703 * class-internals.h: Add 'enabled' field.
13705 2004-08-19 Zoltan Varga <vargaz@freemail.hu>
13707 * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
13709 2004-08-18 Jambunathan K <kjambunathan@novell.com>
13710 * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
13713 2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
13715 * appdomain.c: use the Tls function for appdomain too,
13716 at Zoltan's request. Actually return in mono_context_get
13718 * appdomain.c, profiler.c, threads.c: use __thread
13720 2004-08-18 Zoltan Varga <vargaz@freemail.hu>
13722 * appdomain.c threads.c: Call GC_CreateThread on windows.
13724 * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
13725 multiple libraries since this don't work on windows.
13727 2004-08-18 Martin Baulig <martin@ximian.com>
13729 * class-internals.h
13730 (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
13733 * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
13734 MonoMethodNormal since we also need it for abstract and interface
13738 (build_compressed_metadata): Sort the GenericParam table.
13739 (mono_image_create_token): Added `gboolean create_methodspec'
13740 argument; this is false when generating a MethodImpl token.
13741 (reflection_methodbuilder_to_mono_method): Abstract and interface
13742 methods may also have generic parameters.
13744 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
13746 * appdomain.c: thread local alloc
13748 2004-08-17 Martin Baulig <martin@ximian.com>
13750 * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
13753 (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
13756 * class.c (mono_type_get_full_name): New public function.
13757 (mono_type_get_name): Don't include the type arguments.
13759 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
13761 * Makefile.am: Build static versions of libmetadata and libmonoruntime
13762 for inclusion into the mono executable.
13764 2004-08-16 Martin Baulig <martin@ximian.com>
13766 * metadata.c (do_mono_metadata_parse_generic_inst): Store the
13767 MonoGenericInst, not the MonoType in the `generic_inst_cache'.
13769 2004-08-14 Martin Baulig <martin@ximian.com>
13771 * class.c (dup_type): Also copy the `byref' field.
13773 2004-08-15 Zoltan Varga <vargaz@freemail.hu>
13775 * reflection.c (create_dynamic_mono_image): Revert the last change
13776 since it breaks bootstrap.
13778 2004-08-14 Zoltan Varga <vargaz@freemail.hu>
13780 * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
13782 * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
13783 not free them with g_free.
13785 2004-08-11 Martin Baulig <martin@ximian.com>
13787 * reflection.c (mono_reflection_setup_internal_class): Also call
13788 mono_class_setup_mono_type() if we already have a `tb->type.type'.
13790 2004-08-09 Sebastien Pouliot <sebastien@ximian.com>
13792 * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when
13793 called during default (first) AppDomain creation. Keep track of
13794 Evidence when loading assemblies.
13796 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13798 * opcodes.c, opcodes.h: reduce runtime relocations.
13800 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
13802 * culture-info.h, locales.c: fixes and chages to sue the new
13803 optimized format of the locale data.
13804 * culture-info-tables.h: regenerated.
13806 2004-08-06 Geoff Norton <gnorton@customerdna.com>
13808 * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
13810 2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
13812 * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
13813 ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
13814 * domain-internals.h: icall declaration.
13815 * icall.c: icall registration.
13816 * object-internals.h: New fields in MonoAssembly for CAS.
13818 2004-08-05 Duncan Mak <duncan@ximian.com>
13820 * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
13823 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13825 * reflection.c: fix to deal with object[] arrays in custom ctors
13828 2004-08-05 Martin Baulig <martin@ximian.com>
13830 * class.c (mono_class_array_element_size): Added support for
13831 generic instances and correctly handle "recursive" types.
13833 2004-08-05 Zoltan Varga <vargaz@freemail.hu>
13835 * assembly.c: Fix warnings.
13837 2004-08-04 Martin Baulig <martin@ximian.com>
13840 (mono_type_get_name_recurse): Added `gboolean include_arity'
13841 argument specifying whether or not we should include the generic
13842 arity in the type name.
13843 (_mono_type_get_name): New static function.
13844 (mono_class_setup_vtable): If we're a generic instance, don't
13845 include the generic arity in the names of explicit method
13848 2004-08-03 Martin Baulig <martin@ximian.com>
13850 * class.c (mono_type_get_name_recurse): Enclose the generic type
13851 arguments in `<', '>'.
13853 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13855 * gc.c: make GC warning messages use the trace API, they are just
13856 noise to most of the users.
13858 2004-08-03 Martin Baulig <martin@ximian.com>
13860 * debug-mono-symfile.c (read_string): Correctly read the string.
13862 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
13864 * marshal.c (signature_dup_add_this): Fix bug in previous patch.
13866 * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
13868 (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
13870 2004-07-30 Martin Baulig <martin@ximian.com>
13872 * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
13873 Reflect latest symbol writer changes.
13875 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13877 * object.c: always create an object if null is passed
13878 to Invoke() where a valuetype is expected.
13880 2004-07-29 Bernie Solomon <bernard@ugsolutions.com>
13882 * marshal.c (mono_marshal_init): make managed
13883 signatures match native ones better for 64bits.
13885 2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13887 * appdomain.c: hack to build correctly the private bin path on windows.
13890 2004-07-28 Lluis Sanchez Gual <lluis@novell.com>
13892 * assembly.c: Load mscorlib from the correct framework directory
13893 (mono/<version>/mscorlib.dll).
13894 * appdomain.h: Added prototypes for new functions.
13895 * internals.h: Added some prototypes.
13896 * domain.c: When initializing the runtime, get from the executable and
13897 the configuration files the runtime version that the app supports.
13898 Added support methods for reading app.exe.config. Added list of versions
13899 supported by the JIT. Added two new methods: mono_init_from_assembly,
13900 which initializes the runtime and determines the required version from
13901 the provided exe file, and mono_init_version, which initializes
13902 the runtime using the provided version.
13903 * icall.c: Get machine.config from version-specific directory.
13904 * reflection.c: When generating an image, embed the version number
13905 of the current runtime.
13907 2004-07-28 Dick Porter <dick@ximian.com>
13910 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
13911 returned sockaddr size before creating the remote address object.
13912 Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
13915 2004-07-28 Dick Porter <dick@ximian.com>
13917 * locales.c (string_invariant_compare_char): Fix invariant char
13918 compares between upper and lower cases. Fixes bug 61458.
13920 2004-07-27 Ben Maurer <bmaurer@ximain.com>
13922 * marshal.c: actually cache stelem.ref wrappers.
13924 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
13926 * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image
13927 sections and remove the mono_cli_rva_map () function.
13929 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13931 * debug-mono-symfile.c: fix one more endianess issue, from a patch
13932 by Geoff Norton (<gnorton@customerdna.com>).
13934 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13936 * class.c: fix class loads for pointer types (typeof(int) !=
13939 2004-07-27 Martin Baulig <martin@ximian.com>
13941 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
13942 reading the debugging information from an external ".mdb" file.
13944 2004-07-24 Martin Baulig <martin@ximian.com>
13946 * reflection.c (mono_image_get_type_info): Only write a class
13947 layout entry if we actually have a size or a packing size.
13949 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
13951 * reflection.c (type_get_fully_qualified_name):
13952 insert cast to get type checking of ?: with non-gcc compilers
13954 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
13956 * rand.c: use g_getenv for both lookups of
13959 2004-07-17 Martin Baulig <martin@ximian.com>
13961 * reflection.c (mono_reflection_bind_generic_method_parameters):
13962 Set `gmethod->reflection_info'.
13964 2004-07-17 Martin Baulig <martin@ximian.com>
13966 * class.c (mono_class_create_from_typedef): Insert the newly
13967 created class into the hash table before computing the interfaces
13968 since we could be called recursively.
13970 2004-07-16 Ben Maurer <bmaurer@ximain.com>
13972 * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
13973 function to implement stelem.ref in managed code
13974 * class-internals.h, debug-helpers.c: a new wrapper type
13977 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13979 * gc.c: allow GC handles to work even when no GC is compiled in.
13980 Fix part of bug #61134 (GetAddrOfPinnedObject).
13982 2004-07-13 Peter Williams <peter@newton.cx>
13984 * process.c (complete_path): Make sure we don't attempt to execute
13987 2004-07-12 Geoff Norton <gnorton@customerdna.com>
13989 * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone
13990 boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary
13991 and will add/subtract the hour if needed
13993 2004-07-12 Martin Baulig <martin@ximian.com>
13995 * reflection.c (mono_field_get_object): If we have
13996 `field->generic_info', take the attributes from
13997 `field->generic_info->generic_type'.
13999 2004-07-12 Martin Baulig <martin@ximian.com>
14001 * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14002 This function must be called before initializing the runtime.
14003 (mono_debug_init_1): New function; call this after initializing
14004 the runtime, but before loading the assembly. It tells the
14005 debugger to load corlib and the builtin types.
14007 * mono-debug-debugger.c: Did some larger changes in the debugging
14008 code; support recursive class declarations, make sure we actually
14011 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14013 * debug-helpers.c: undo my previous patch and fixed the real issue in
14014 ../mini/exceptions-x86.c
14016 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14018 * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14019 when no HOME env. variable was set and a NullRef was thrown in a .cctor
14020 called from other .cctors.
14022 2004-07-09 Miguel de Icaza <miguel@ximian.com>
14024 * loader.c: Removed the mono_loader_wine_init hack now that we are
14025 doing a managed version of Windows.Forms.
14027 2004-07-09 Ben Maurer <bmaurer@ximian.com>
14029 * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14030 threadpool.c, threads.c: remove static data from rootset.
14032 2004-07-09 Dick Porter <dick@ximian.com>
14034 * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14035 Don't do any more processing if the matched length was 0. It was
14036 increasing the size of the string before. Fixes bug 61167.
14038 2004-07-09 Dick Porter <dick@ximian.com>
14042 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14043 Add support for SO_PEERCRED if its available.
14045 2004-07-09 Peter Bartok <pbartok@novell.com>
14046 * loader.c: winelib.exe.so error message is now only displayed if
14047 MONO_DEBUG is set. To help us avoid questions when people are trying
14048 out the new Managed.Windows.Forms.
14050 2004-07-08 Zoltan Varga <vargaz@freemail.hu>
14052 * class-internals.h debug-helpers.c marshal.c: Add new wrapper types
14053 for isinst and castclass wrappers.
14055 * class-internals.h icall.c: Move registration and lookup of JIT icalls
14056 to libmetadata from the JIT, so they could be used by the marshalling
14057 code and the interpreter.
14059 * marshal.c: Register marshalling related JIT icalls here instead of
14060 in mini.c. Use CEE_MONO_ICALL instead of the family of
14061 CEE_MONO_PROC<x> opcodes to call marshalling functions.
14063 * metadata.h: Remove unneeded marshalling conversions.
14065 * opcodes.c: Update for new opcodes.
14067 2004-07-08 Martin Baulig <martin@ximian.com>
14069 * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14070 (mono_debug_get_domain_data): Make this function static.
14072 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14074 * gc.c, object.h: add nice GC handle API for embedders.
14076 2004-07-06 Ben Maurer <bmaurer@ximian.com>
14078 * reflection.c: more changes for the new api
14080 * object.c: When we reflect on a field w/ a constant value, it
14081 will not have a memory location, so we must access metadata. Also,
14082 allow easier reading of strings so that we can read them from
14085 * class.c (mono_class_layout_fields): no need for literal fields here.
14087 * class-internals.h: api changes for const fields
14089 * icall.c (ves_icall_get_enum_info): use new apis for const fields
14091 2004-07-06 Martin Baulig <martin@ximian.com>
14093 * mono-debug.h: Increment version number to 44.
14095 * mono-debug.c (mono_debug_add_wrapper): The second argument is
14096 now a gpointer, rewrote this whole method.
14098 * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14099 function. Add information about the wrapper in a new "misc table".
14101 * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14102 for the new misc table.
14104 2004-07-05 Zoltan Varga <vargaz@freemail.hu>
14106 * metadata-internals.h image.c: Add a cache for helper signatures.
14108 * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14110 2004-07-03 Zoltan Varga <vargaz@freemail.hu>
14112 * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14113 delegates from a delegate. Fixes #61033.
14115 * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14116 marshalling of stringbuilder arrays. Fixes #59900.
14118 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
14120 * icall.c: Add EnumBuilder:setup_enum_type icall.
14122 2004-06-30 Ben Maurer <bmaurer@ximian.com>
14124 * icall.c: Added a new icall for the property version of
14125 OffsetOfStringData.
14127 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
14129 * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14130 it has a constant size across platforms.
14132 * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14135 2004-06-29 Martin Baulig <martin@ximian.com>
14137 * mono-debug.c (mono_debug_add_method): Protect the whole function
14138 in mono_debugger_lock(), not just parts of it.
14140 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14142 * reflection.c: make sure padding bytes in heaps are zeroed.
14144 2004-06-24 David Waite <mass@akuma.org>
14146 * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14147 image.c, loader.c, locales.c, marshal.c, metadata.c,
14148 mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14149 string-icalls.c, threads.c: change to C90-style comments from C99 /
14152 2004-06-24 Dick Porter <dick@ximian.com>
14155 (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14156 return createdNew. Fixes bug 60412.
14159 * icall.c: Add createdNew parameter to CreateMutex icall
14161 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14163 * reflection.c, object-internals.h: save default value in params.
14165 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14167 * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14168 no need to build a new path combining that with the application base.
14171 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14173 * reflection.c: fixed minor standard compliance issues.
14175 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14177 * reflection.c: fixed issue with encoding some custom attributes
14178 (arrays in properties and fields, bug #60411).
14180 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14182 * reflection.c: fix start address when copying the public key token.
14184 2004-06-23 Martin Baulig <martin@ximian.com>
14186 * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14187 the `exc' object in a static object to put it into the GC's root set.
14189 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14191 * reflection.c: make mono_reflection_setup_internal_class ()
14192 callable a second time to setup a new parent class.
14194 2004-06-23 Dick Porter <dick@ximian.com>
14196 * threads.c: Check for WAIT_IO_COMPLETION return values.
14198 2004-06-22 Sebastien Pouliot <sebastien@ximian.com>
14200 * appdomain.c: Removed the g_free on the public key token. Now copy
14201 the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14202 * assembly.c: Added public key token string value when loading
14203 assemblies. Fix bug #60439.
14204 * icall.c: Added missing informations (like public key) in
14205 GetReferencedAssemblies. Fix #60519.
14206 * image.h: Changed definition for public key token from const char*
14207 public_tok_value to guchar public_key_token [17];
14208 * reflection.c: Updated for changes to public key token.
14210 2004-06-22 Lluis Sanchez Gual
14212 * icall.c: In ves_icall_InternalExecute, when setting a filed, also look
14213 for the field in base classes.
14215 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14217 * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14218 mark headers as not supported, they are installed only for use by the
14221 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14223 * *.c, *.h: avoid namespace pollution in public headers.
14225 2004-06-21 Martin Baulig <martin@ximian.com>
14227 * exception.c (mono_get_exception_security): It's in
14228 "System.Security", not in "System".
14230 * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14231 the exception classes.
14233 2004-06-21 Martin Baulig <martin@ximian.com>
14235 * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14236 Protect the exception object from being finalized.
14238 2004-06-21 Martin Baulig <martin@ximian.com>
14240 * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14243 2004-06-21 Sebastien Pouliot <sebastien@ximian.com>
14245 * reflection.c: Load the assembly in mono_reflection_type_from_name,
14246 if it was not loaded before. Fix parts of #60439.
14248 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14250 * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14251 code that was broken since Ben's change: wrappers are now
14252 dependent on the method signature only again.
14254 2004-06-21 Martin Baulig <martin@ximian.com>
14256 * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14257 added interface support.
14259 2004-06-21 Martin Baulig <martin@ximian.com>
14261 * class.c (mono_vtable_get_static_field_data): New public method.
14263 2004-06-20 Atsushi Enomoto <atsushi@ximian.com>
14265 * filewatcher.c : Windows build fix to be compliant with API changes.
14267 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14269 * class.h, class.c: more accessors.
14270 * metadata.h, metadata.c: prepare for hiding MonoType and
14271 MonoMethodSignature: people should use the accessors from now on
14272 outside of the tree.
14274 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14276 * *.c, *.h: more API cleanups.
14278 2004-06-18 Jackson Harper <jackson@ximian.com>
14280 * assembly.c: Trace loading assemblies.
14281 * loader.c: Trace loading native libraries.
14282 * mono-config.c: Trace loading config files.
14284 2004-06-18 Dick Porter <dick@ximian.com>
14286 * locales.c: Tell ICU the lengths of strings, it can cope with
14287 embedded \0 then. Fixes bug 59274, and doesn't break bug 55822.
14289 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
14291 * image.c: swapped name/filename;
14293 2004-06-18 Martin Baulig <martin@ximian.com>
14295 * mono-debug-debugger.c (write_class): Write the parent class at
14296 the end of the header.
14298 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14300 * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
14302 2004-06-17 Raja R Harinath <rharinath@novell.com>
14304 * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la.
14305 (bundle_obj): New conditional define.
14306 (BUILT_SOURCES): Remove.
14307 ($(bundle_srcs)): Make parallel-make safe.
14308 (libmonoruntime_la_LIBADD): Make unconditional.
14309 (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj).
14310 (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
14312 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
14314 * culture-info-tables.h: It was inconsistent with the latest
14317 2004-06-17 Zoltan Varga <vargaz@freemail.hu>
14319 * assembly.c (mono_assembly_open): Fix crash when the assembly can't
14322 * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
14325 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14327 * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
14328 cleaned up public header threads.h.
14330 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14332 * Makefile.am, *.c, *.h: more API cleanups.
14334 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
14336 * Makefile.am: removed monosn from compilation.
14337 * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
14338 debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
14339 image.c, image.h, loader.c, marshal.c, metadata-internals.h,
14340 metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
14341 mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
14342 reflection.c, reflection.h, verify.c: more API cleanups and fixes.
14344 2004-06-15 Jackson Harper <jackson@ximian.com>
14346 * assembly.c: Make locales lower case when searching the GAC for
14347 assemblies. gacutil will always make locales lowercase when
14348 installing so this effectively makes them case insensitive.
14350 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
14352 * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
14353 * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
14354 parameter which allows to choose whether the wait can be interrupted or
14355 not. Also added the method mono_monitor_enter(), which locks the monitor
14356 using an infinite wait and without allowing interruption.
14357 In the Monitor.Enter and Wait icalls, retry the lock if the wait is
14359 * object.h: Added new fields in MonoThread. suspend_event holds the event
14360 used to susped/resume the thread. synch_lock is the lock object to use for
14361 modifying the thread state.
14362 * threads.c: Use the new synch_lock object for locking, instead of "this",
14363 which can generate deadlocks.
14364 Moved thread state change in Thread.Sleep and Thread.Join from managed
14365 to unmanaged code. This avoids a deadlock when the thread was suspended
14366 just after acquiring the thread lock.
14367 In general, use mono_monitor_enter instead of mono_monitor_try_enter.
14368 Implemented Thread.Suspend using an event instead of ThreadSuspend,
14369 which is not fully implemented in the io-layer.
14370 * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
14372 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
14374 * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
14375 threads-types.h: more API cleanups.
14377 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14379 * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
14380 domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
14381 threadpool.c, threads.c: first pass at the exported API cleanup.
14383 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
14385 * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
14387 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14389 * icall.c: added internalGetHome.
14391 2004-06-14 Dick Porter <dick@ximian.com>
14393 * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
14394 possible to return successfully when '.' or '..' were the only
14395 entries in a directory, but were skipped. The MonoIOStat was not
14396 filled in in that case. Now return ERROR_NO_MORE_FILES instead.
14399 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14401 * reflection.c: make binaries run on .Net 1.1 by default.
14403 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14405 * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
14407 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
14409 * marshal.c: keep track of struct size with explicit layout
14412 2004-06-12 Martin Baulig <martin@ximian.com>
14414 * mono-debug-debugger.c: Comment out a debugging g_message().
14416 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14418 * reflection.c, reflection.h: do not free custom attrs that are cached.
14419 * icall.c: use braces to make code clearer.
14421 2004-06-11 Martin Baulig <martin@ximian.com>
14423 * class.h (MonoInflatedField): New type.
14424 (MonoClassField): Replaced `MonoType *generic_type' with
14425 `MonoInflatedField *generic_info'.
14428 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
14430 2004-06-11 Martin Baulig <martin@ximian.com>
14432 * reflection.c (mono_image_create_method_token): Correctly encode
14435 2004-06-11 Martin Baulig <martin@ximian.com>
14437 * metadata.c (mono_metadata_parse_method_signature): When parsing
14438 a MethodDef which has VarArgs, also set sentinelpos if we don't
14439 have any parameters.
14441 2004-06-11 Martin Baulig <martin@ximian.com>
14443 * verify.c (mono_method_verify): In CEE_CALL, use
14444 mono_method_get_signature() to get the method's signature, unless
14445 we're a PInvoke method.
14447 2004-06-10 Jackson Harper <jackson@ximian.com>
14449 * assembly.c: Use <path>/lib/mono/gac for the extra paths
14450 lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
14451 logical name as the supplied path is just a prefix to the gac not
14452 the direct path to it.
14454 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
14456 * reflection.c: make the token for a created method match
14457 the token of the MethodBuilder it was created from
14458 (IKVM requires this behaviour now).
14460 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
14462 * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14463 reflection.c, socket-io.c: leak fixes.
14465 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14467 * icall.c: handle sentinel pos in vararg methods in position different
14470 2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14472 * culture-info-tables.h: freshly generated.
14474 2004-06-09 Martin Baulig <martin@ximian.com>
14476 * loader.c (mono_get_method_constrained): Call `mono_class_init
14477 (constrained_class)'.
14479 2004-06-08 Gert Driesen <drieseng@users.sourceforge.net>
14481 * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14482 any methods. Fixes #59629.
14484 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
14486 * culture-info-tables.h: reflecting locale-builder updates.
14488 2004-06-08 Dick Porter <dick@ximian.com>
14491 * locales.c: Fixed compile warnings, including a real bug in
14492 CompareInfo_internal_compare.
14494 2004-06-08 Dick Porter <dick@ximian.com>
14497 (ves_icall_System_Globalization_CompareInfo_internal_index):
14498 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14499 Double-check the resuls of usearches, because ICU currently
14500 ignores most of the collator settings here. Fixes bug 59720.
14502 2004-06-08 Dick Porter <dick@ximian.com>
14505 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
14506 Fix memory leak and segfault-causing typo. No idea how this one
14507 lasted so long without being noticed.
14509 2004-06-09 Zoltan Varga <vargaz@freemail.hu>
14511 * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
14512 any methods. Fixes #59629.
14514 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14517 (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
14518 own the critical section before). Removed dead code (that's done
14519 in the preload hook).
14521 (mono_assembly_load_with_partial_name): call the preload hook.
14523 2004-06-08 Martin Baulig <martin@ximian.com>
14525 * metadata.c (mono_metadata_signature_alloc): Default
14526 `sentinelpos' to -1.
14528 * reflection.c (mono_image_get_array_token): Likewise.
14530 2004-06-08 Martin Baulig <martin@ximian.com>
14532 * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
14534 * metadata.c (mono_metadata_parse_method_signature): When parsing
14535 a MethodDef which has VarArgs, set sentinelpos.
14537 * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
14538 `gint16' since we're using -1 for non-varargs methods.
14541 (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
14542 (method_encode_signature): Added varargs support.
14543 (method_builder_encode_signature): Likewise.
14544 (mono_image_get_varargs_method_token): New static method.
14545 (mono_image_create_method_token): New public method; this is
14546 called via an icall instead of mono_image_create_token() when
14547 calling a varargs method.
14549 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
14551 * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
14553 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
14555 * culture-info-tables.h : Reflecting the latest locale-builder that
14556 fixed empty array representation ({} to {0}).
14558 2004-06-07 Jackson Harper <jackson@ximian.com>
14560 * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
14561 looking up extra gac paths. This allows MONO_GAC_PATH to act
14562 exactly like a prefix.
14564 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
14566 * reflection.c (mono_reflection_type_from_name): Make a copy of the
14567 type name before modifying it. Fixes #59405.
14569 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
14571 * culture-info.h: added fields for "all datetime patterns".
14572 * locales.c: ( ves_icall_System_Globalization_CultureInfo
14573 _construct_datetime_format ()): fill xxx_patterns fields.
14574 * object.h: added fields for "all datetime patterns" to
14575 MonoDateTimeFormatInfo.
14576 * culture-info-tables.h: reflecting locale-builder updates.
14578 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
14580 * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
14581 the event has no add and remove methods. Fixes #59629.
14583 2004-06-05 Sebastien Pouliot <sebastien@ximian.com>
14585 * object.c: Fixed possible integer overflow when allocating large
14588 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
14590 * culture-info-tables.h: reflecting locale-builder updates.
14592 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
14594 * culture-info-tables.h: reflecting locale-builder updates.
14596 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
14598 * culture-info-tables.h: reflecting locale-builder updates.
14600 2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
14602 * threads.c: Made Thread.Sleep abortable.
14604 2004-06-02 Martin Baulig <martin@ximian.com>
14606 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
14608 * debug-mono-symfile.h: Bumped symbol file version number to 37.
14610 2004-05-31 Zoltan Varga <vargaz@freemail.hu>
14612 * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
14614 2004-05-30 Jackson Harper <jackson@ximian.com>
14616 * reflection.c: Do not hardcode assembly versions or public key
14617 tokens anymore. All of this except the corlib section was dead
14620 2004-05-29 Zoltan Varga <vargaz@freemail.hu>
14622 * object.c (mono_runtime_invoke_array): Automatically create boxed
14623 objects for byref valuetypes if needed. Fixes #59300.
14625 * object.c (mono_method_return_message_restore): Handle
14626 MONO_TYPE_OBJECT as well.
14628 2004-05-28 Jackson Harper <jackson@ximian.com>
14630 * reflection.c: The modified type encoding was causing build
14631 problems. Reverted for now.
14633 2004-05-28 Jackson Harper <jackson@ximian.com>
14635 * reflection.c/h: Take an assembly ref so that we dont create
14636 fully qualified names when encoding types in the same assembly as
14637 the custom attribute being emitted.
14638 * appdomain.c: Increment version number.
14640 2004-05-26 Duncan Mak <duncan@ximian.com>
14643 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14644 Set the full version number (major, minor, build, revision).
14646 2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
14648 * marshal.c (emit_struct_conv): increment src/dst after blit
14649 (mono_marshal_get_managed_wrapper,
14650 mono_marshal_get_native_wrapper): make sure we have marshalling
14651 info before marshalling params (info computation affects
14654 * class.c (class_compute_field_layout): correctly deal with
14656 (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
14657 value types (as per what windows dows by default)
14658 (mono_class_setup_mono_type): System.ValueType is blittable
14659 (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
14662 * marshal.c (mono_marshal_load_type_info): flag types as
14663 non-blittable if the native layout doesn't match the managed
14666 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14668 * appdomain.c: don't add stuff in the private search path that is
14669 above the application base. If application base is not set, there's
14670 no private search path.
14672 2004-05-28 Zoltan Varga <vargaz@freemail.hu>
14674 * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
14675 byref struct arguments in native->managed marshalling.
14677 2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com>
14679 * marshal.c (mono_marshal_get_runtime_invoke): correctly
14680 cache methods using signature (special case for methods
14681 that are value type or string class)
14683 * image.c (mono_image_close): clean up allocated GSList's
14684 in runtime_invoke_cache.
14686 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14688 * mono-config.c: set the correct path for mono_cfg_dir on windows when
14689 there's no MONO_CFG_DIR environment variable defined.
14691 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14693 * threads.c: windows version must be >= 0x0500 to include OpenThread.
14695 2004-05-28 Lluis Sanchez Gual <lluis@ximian.com>
14697 * threadpool.c: Really wait for 500ms after the async call, even if the wait
14699 * threads.c: In mono_thread_manage, call OpenThread to ref each handle
14700 before waiting for it, and call CloseHandle after the wait to unref it.
14701 This will make sure that handles are not disposed too early.
14703 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14708 ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
14711 * object.c: se the application_base only for the domain that runs
14712 Main. Fixes bug #59216,
14714 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14717 * object.c: only the domain in which Main is run have
14718 SetupInformation.ConfigurationFile set, so moved a few lines from
14719 appdomain.c to object.c.
14721 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14723 * appdomain.c: we tried to load [name].(dll|exe), but according
14724 to bug #57710, we must also try [culture]/[name].(dll|exe) and
14725 [culture]/[name]/[name](dll|exe). This patch fixes the bug.
14726 There's a test case attached to bug #58922.
14728 2004-05-27 Dick Porter <dick@ximian.com>
14731 * file-io.c: Implemented icalls for locking and unlocking regions
14733 (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
14734 FALSE on error (fixes both compiler warning and real bug.)
14736 2004-05-27 Atsushi Enomoto <atsushi@ximian.com>
14738 * culture-info-tables.h: reflecting locale-builder updates.
14740 (Added missing ChangeLog entry for 05/26)
14742 2004-05-27 Jackson Harper <jackson@ximian.com>
14744 * locales.c: Fix some cut and paste errors.
14746 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14748 * mono-config.c: set the correct path for config. directory on windows.
14750 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
14752 * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
14755 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
14757 * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
14758 from pinvoke functions.
14760 * marshal.c (mono_ftnptr_to_delegate): Implement this.
14762 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
14764 * culture-info-tables.h: reflecting locale-builder updates.
14766 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
14768 * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
14771 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
14773 * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
14774 * icall.c: Modified icalls for RNG.
14775 * rand.c|h: Changed RNG interface to allow thread-safe usage under
14776 Windows (CryptoAPI).
14778 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
14780 * locales.c: Fix build.
14782 2004-05-25 Atsushi Enomoto <atsushi@ximian.com>
14784 * culture-info-tables.h: reflecting locale-builder updates.
14786 2004-05-25 Jackson Harper <jackson@ximian.com>
14788 * locales.c: When creating the current culture use the $LANGs
14789 specific culture. So DateTimeFormat and NumberFormat entries are created.
14791 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
14793 * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
14794 a char array as parameter.
14796 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
14798 * image.c: In mono_image_open(), always use an absolute path name to
14799 look for already loaded images.
14801 2004-05-24 Sebastien Pouliot <sebastien@ximian.com>
14803 * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
14804 missing in the windows build (like older cygwin include files).
14806 2004-05-23 Sebastien Pouliot <sebastien@ximian.com>
14808 * icall.c: Fixed check for possible integer overflow in Buffer_
14809 BlockCopy icall. Replaced comments style // by /* */.
14811 2004-05-22 Zoltan Varga <vargaz@freemail.hu>
14813 * marshal.c (mono_ftnptr_to_delegate): Fix warning.
14815 * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
14816 check after MONO_VTADDR. Fixes pinvoke2.exe.
14818 * marshal.h marshal.c metadata.h: Add beginnings of support for
14819 ftnptr -> delegate marshalling.
14821 2004-05-21 Zoltan Varga <vargaz@freemail.hu>
14823 * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
14824 * threads.c: Fix warnings.
14826 2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
14828 * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
14829 * icall.c: Registered icalls for Suspend and Resume.
14830 * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
14832 * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
14833 * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
14834 * process.c: Use WaitForSingleObjectEx.
14835 * threadpool.c: Use WaitForSingleObjectEx. Added some interruption
14837 * threads.c, threads.h: Make use of new Ex wait methods. Improved
14838 implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
14839 for Suspend and Resume. Added new mono_thread_stop, used for stoping
14840 background threads. Added basic support for Abort in Windows.
14841 Start new threads using a managed delegate invoke wrapper. This wrapper
14842 has an interruption checkpoint that is needed since an interruption
14843 can be requested before the thread leaves the unmanaged code that starts
14845 * marshal.c: Added interruption checkpoint after every native call, and
14846 also before managed calls for wrappers called from unmanaged code to
14847 go into managed code.
14848 * object.h: Added new field in MonoThread to keep track of interruption
14851 2004-05-20 Zoltan Varga <vargaz@freemail.hu>
14853 * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
14856 2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14863 * rand.c: getenv -> g_getenv (windows!)
14865 * process.c: complete_path is also used on non-windows platforms.
14867 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14869 * icall.c: new signature for Process_Start.
14871 * process.[ch]: new signature for Process_Start. If we're on windows
14872 and UseShellExecute is false, we have to search for the program by
14873 ourselves if we don't get a full path.
14875 2004-05-18 Zoltan Varga <vargaz@freemail.hu>
14877 * marshal.c (mono_marshal_get_native_wrapper): Fix up custom
14878 marshalling and call CleanUpNativeData if needed. Fixes #58646.
14880 2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14882 * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
14885 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14887 * process.c: use double quotes to quote program name and arguments on
14888 windows. Fixes bug #58575.
14890 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14892 * file-io.c: don't return "." and ".." when using windows Find*File.
14894 2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com>
14896 * marshal.c: Don't pass wrappers to message init because method
14897 addressed used to lookup metadata. part of remoting[2|3] fix.
14899 2004-05-15 Jackson Harper <jackson@ximian.com>
14901 * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
14902 path is essentially the same as MONO_PATH except that it points to
14903 GACs instead of lib directories.
14904 * loader.h: The user gac is gone so we dont need function to
14906 * mono-config.c: user gac option is now gone.
14908 2004-05-15 Jackson Harper <jackson@ximian.com>
14910 * culture-info.h: Make defines more consistent, add calendar data
14911 to the culture info table.
14912 * culture-info-tables.h: Add basic calendar data. Basically
14913 everyone gets default gregorian until all the data is
14915 * locales.c: Use the new consistent defines. Set calendar data for
14916 culture info objects.
14917 * object.h: add a field for calendar data to CultureInfo
14919 2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net>
14921 * image.c: image->runtime_invoke_cache is keyed on signatures now.
14922 * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
14924 (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
14925 (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
14926 an extra param that is the pointer of the method to invoke. The IL for
14927 the invoke method is no longer specific to the method, but to the
14928 signature of the method. Thus, we can share the same code for multiple
14929 methods. This reduces the number of methods that have to be compiled.
14931 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
14933 * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
14935 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14937 * icall.c: Optimize Buffer.BlockCopy.
14939 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14941 * culture-info-tables.h: seems like Spanish and Portuguese cultures had
14942 DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
14943 quote). Changed them to "MMMM yyyy".
14945 2004-05-12 Miguel de Icaza <miguel@ximian.com>
14948 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file.
14950 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
14952 * reflection.h: Updated after changes to managed structures.
14954 * appdomain.c: Bump corlib version.
14956 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14958 * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
14961 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14963 * Makefile.am: link to ../os/libmonoos.la on windows.
14966 -If MONO_DEBUG, warn about non-existing directories in
14968 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
14969 compile time variable.
14970 -Removed init_default_path and call mono_set_rootdir from
14971 libmonoos.a instead (windows only).
14973 * assembly.h: declare mono_assembly_getrootdir().
14976 * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
14978 * loader.c: s/getenv/g_getenv/
14980 2004-05-11 Zoltan Varga <vargaz@freemail.hu>
14982 * marshal.{h,c}: Add support for UnmanagedType.AsAny.
14984 * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
14986 * metadata.h: Add new marshalling conversions.
14988 * metadata.h metadata.c (mono_metadata_signature_dup): New helper
14991 * reflection.c (mono_reflection_get_type): Lookup the type in all
14992 modules of a multi-module assembly. Fixes #58291.
14994 2004-05-11 Lluis Sanchez Gual <lluis@ximian.com>
14996 * threads.c: Before aborting a background, set the StopRequested
14997 state. This avoids throwing the Abort exception.
14998 In mono_thread_manage, don't continue with the shutdown until all
14999 aborted threads have actually stopped.
15001 2004-05-10 Jackson Harper <jackson@ximian.com>
15003 * locales.c: Remove the modifier from culture names.
15005 2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15007 * Makefile.am: monosn is not installed any more. It has been deprecated
15010 2004-05-07 Jackson Harper <jackson@ximian.com>
15013 (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15014 Fix array construction, add bailout if the length is 0.
15016 2004-05-07 Dick Porter <dick@ximian.com>
15018 * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15019 machine doesn't have a DNS entry. Patch by Urs Muff
15020 (umuff@quark.com), fixes bug 57928.
15022 2004-05-06 Jackson Harper <jackson@ximian.com>
15024 * reflection.c: Handle null PublicTokens properly. alloc mem for
15025 assembly names culture so we dont crash when freeing it.
15027 2004-05-06 Jackson Harper <jackson@ximian.com>
15029 * assembly.c: Check the usergac when loading with partial names.
15031 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
15033 * rand.c|h: Added new icall for (optionally) seeding the PRNG. This
15034 does nothing for now (not required for Linux/Windows) but the class
15035 library can call it (and a newer or modified runtime could need it).
15036 * icall.c: Registred icall.
15038 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15040 * loader.c: prints a message on module loading error we set MONO_DEBUG
15041 environment variable.
15043 2004-05-05 Jackson Harper <jackson@ximian.com>
15045 * appdomain.c: Handle PublicKeyToken=null properly.
15047 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
15049 * environment.c|h: Added icall ves_icall_System_Environment_
15050 GetOSVersionString to get the current OS version as a string.
15051 * icall.c: Registred icall.
15053 2004-05-05 Lluis Sanchez Gual <lluis@ximian.com>
15055 * object.c: in mono_object_get_virtual_method(), take into account that
15056 non-virtual methods don't have a slot in the vtable. Check needed when
15057 the object is a proxy.
15059 2004-05-05 Zoltan Varga <vargaz@freemail.hu>
15061 * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15062 (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15064 * object.c (mono_class_compute_gc_descriptor): Fix warning.
15066 * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15067 passed when a valuetype is expected.
15069 * object.c (mono_unhandled_exception): Only set the exit code if the
15070 exception happens in the main thread. Fixes thread5.exe.
15072 * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15073 invalid names. Fixes #58047.
15075 2004-05-03 Jackson Harper <jackson@ximian.com>
15077 * assembly.c: This line was committed accidently and is unneeded.
15079 2004-05-03 Jackson Harper <jackson@ximian.com>
15081 * icall.c: Add new icall for Assembly::LoadWithPartialName
15082 * assembly.c/.h: new function that probes the GAC to load partial
15083 assembly names by Paolo Molaro.
15085 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15087 * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15088 * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15089 (type_get_fully_qualified_name): Added PublicKeyToken when building a
15092 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15094 * appdomain.c: fixed check for 'neutral' culture and removed warning.
15095 * reflection.c: fix bug when parsing a full type name and Version is not
15096 the last thing in the string.
15098 2004-05-03 Zoltan Varga <vargaz@freemail.hu>
15100 * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15101 crashes when it is freed.
15103 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15105 * assembly.c: print the compat warning to stderr.
15107 2004-05-01 Miguel de Icaza <miguel@ximian.com>
15109 * assembly.c (mono_assembly_load_references): Add a compatibility
15110 hack to run old applications that might be still referencing the
15111 3300-based assemblies, only do this for System.xxx.
15113 2004-05-01 Jackson Harper <jackson@ximian.com>
15115 * appdomain.c: If the culture is neutral we set it to "".
15117 2004-04-29 Jackson Harper <jackson@ximian.com>
15119 * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15121 2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15123 * string-icalls.c: added low overhead function for copying chars
15124 * icall.c: added needed icall for the above function
15126 2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15128 * icall.c: fix return value of get_global_assembly_cache. Implemented
15129 Environment.GetLogicalDrives.
15131 2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
15133 * rand.c: try and talk to egd or prngd
15134 for random bytes if opening devices fail.
15136 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
15138 * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15139 alignment for the type using the native alignment of its members
15140 instead of using klass->min_align.
15142 * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15144 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15147 * socket-io.c: added check for sys/aio.h.
15149 2004-04-28 Dick Porter <dick@ximian.com>
15151 * threads.c: Don't abort a thread thats already aborting, when
15152 terminating everything.
15154 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15156 * icall.c: added 2 new async calls for Socket.
15158 * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15159 IO on *nix systems.
15161 * threadpool.c: removed unused variable.
15163 2004-04-27 Zoltan Varga <vargaz@freemail.hu>
15165 * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15167 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15169 * locales.c: put back string_invariant_tolower () and
15170 string_invariant_toupper ().
15172 2004-04-26 David Waite <mass@akuma.org>
15177 * unicode.h: remove comma from end of enumeration declarations
15179 2004-04-26 David Waite <mass@akuma.org>
15181 * debug-mono-symfile.h:
15184 * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15187 2004-04-26 Jackson Harper <jackson@ximian.com>
15189 * appdomain.c: Increment version number.
15191 2004-04-26 Jackson Harper <jackson@ximian.com>
15193 * appdomain.c: Set assembly references public token value when
15194 PublicKeyToken is specified, not the hash_value. Free public token
15195 values when free assembly name data. Previously the public key
15196 token was hex decoded, however we are using hex encoded public key
15197 tokens, so this is not neccasary.
15198 * assembly.c: Lookup assemblies in the gac if their public token
15199 value is set. Add function to allow enabling user gac
15200 lookups. Specify whether or not the assembly was loaded from the
15201 GAC. Compare full assembly names when checking the cache for
15202 assemblies (Temporarily disabled see comment in code). Remove
15203 mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15204 specifies trace-loader they get extra info to stdout on the
15205 loading of assemblies.
15206 * image.h: Add a field for an assembly references public token
15207 value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15208 whether an assembly has been loaded from the GAC.
15209 * image.c: Remove a corlib -> mscorlib name mapping.
15210 * loader.h: Add function to enable/disable the user gac.
15211 * mono-config.c: Check if the usergac is enabled in the config
15213 * icall.c: New icall to determine whether or not an assembly has
15214 been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15215 * tabldefs.h: Add constant for assemblyref flag that specifies a
15216 full public key is used instead of a public token.
15217 * reflection.c: Remove mscorlib -> corlib mappings. Set
15218 PublicTokenValue instead of hash value. This value is a hex
15219 string so it does not need to be expanded.
15221 2004-04-26 Martin Baulig <martin@ximian.com>
15223 * mono-debug-debugger.c (mono_debugger_initialize): Set
15224 `mono_debugger_initialized' before calling mono_debug_lock().
15226 2004-04-42 Robert Shade <rshade@dvsconsulting.com>
15228 * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15229 InternalToUpper/InternalToLower.
15230 * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15231 removed invariant culture shortcut. This is now done in managed code.
15232 * locales.c: (string_invariant_toupper/tolower) removed.
15234 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15236 * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15237 Added Poll internal call.
15239 * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15240 call for Poll. Select was too heavy for polling a single socket.
15242 * threadpool.[ch]: added mono_threadpool_cleanup.
15243 * threads.c: use it. Don't use Thread_Abort on windows.
15245 2004-04-23 Martin Baulig <martin@ximian.com>
15247 * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15249 2004-04-23 Sebastien Pouliot <sebastien@ximian.com>
15251 * icall.c: Registred new icalls for key pair protection and added an
15252 icall for Environment.GetFolderPath on Windows.
15253 * security.c|h: Added new icalls for key pair protection.
15255 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15257 * socket-io.c: don't display the non-supported family warning for known
15258 families. Now this is not displayed on windows when checking support
15261 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15263 * class.c: don't display the layout warning for static fields.
15265 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
15267 * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
15268 * locales.c, locales.h: Added new icalls for culture-specific
15269 Char.ToLower and Char.ToUpper.
15271 2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15273 * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
15276 2004-04-20 Martin Baulig <martin@ximian.com>
15278 * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
15279 of the type name before passing it to mono_reflection_type_from_name().
15281 2004-04-19 Zoltan Varga <vargaz@freemail.hu>
15283 * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
15284 encodings here. Fixes #56965.
15286 2004-04-18 Bernie Solomon <bernard@ugsolutions.com>
15288 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15289 fix test on strstr result not that I can see anything that
15290 relies on the result.
15292 2004-04-18 Zoltan Varga <vargaz@freemail.hu>
15294 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
15297 * marshal.c (mono_marshal_get_string_encoding): New helper function.
15299 * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
15300 function to determine which marshalling to use for strings. Fixes
15303 * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
15305 * reflection.c (encode_marshal_blob): Add support for LPARRAY.
15307 2004-04-15 Bernie Solomon <bernard@ugsolutions.com>
15309 * icall.c: #include mono-config.h
15311 2004-04-15 Jackson Harper <jackson@ximian.com>
15313 * culture-info-tables.h: Fix date formats for en-US culture.
15315 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
15317 * icall.c: Registered icalls for ThreadPool.GetMinThreads and
15318 ThreadPool.SetMinThreads.
15319 * threadpool.c: Implemented ThreadPool.GetMinThreads and
15320 ThreadPool.SetMinThreads.
15322 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15324 * mono-config.c: also load the .config file in the directory
15325 where the assembly was found.
15327 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
15329 * assembly.c: load per-assembly config files.
15330 * icall.c: decrapified code to get the config dir and moved to
15332 * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
15333 per-assembly config files. When doing a dll map lookup give precedence
15334 to the per-assembly data.
15336 2004-04-14 Martin Baulig <martin@ximian.com>
15338 * mono-debug-debugger.h (MonoDebuggerEvent): Removed
15339 MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
15340 and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
15342 * mono-debugger-debugger.c: While the debugger is locked, remember
15343 whether the symbol tables have changes and send one single
15344 MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
15346 2004-04-14 Zoltan Varga <vargaz@freemail.hu>
15348 * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
15350 * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New
15353 * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
15354 account when marshalling string arrays. Fixes #56965.
15356 2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
15358 * icall.c: Add new icalls mapping for security.
15359 * security.c|h: Add internal calls for WindowsIdentity,
15360 WindowsImpersonationContext and WindowsPrincipal.
15362 2004-04-13 Gert Driesen (drieseng@users.sourceforge.net)
15364 * class.c: Added comment to ensure the System.MonoDummy class
15365 is removed when no longer necessary
15367 2004-04-13 Miguel de Icaza <miguel@ximian.com>
15369 * appdomain.c: Pass arguments to the bootstraping exceptions to
15370 minimize JITed methods at boot
15372 * metadata.c (mono_exception_from_name_two_strings): Allow for the
15373 second string to be null.
15375 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15376 Change the protocol to minimize the JIT methods at startup. Now
15377 it Returns the internal codepage, if the value of "int_code_page"
15378 is 1 at entry, and we can not compute a suitable code page
15379 number, returns the code page as a string.
15381 2004-04-13 Jackson Harper <jackson@ximian.com>
15383 * culture-info-tables.h: Fix number of decimal digits for all
15386 2004-04-13 Jackson Harper <jackson@ximian.com>
15388 * icall.c: Clairfy out of sync error message. It is not always
15389 your corlib that is out of sync.
15391 2004-04-13 Zoltan Varga <vargaz@freemail.hu>
15393 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
15394 properties when only the set accessor is overriden. Fixes #55874.
15396 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
15398 * assembly.c (mono_assembly_load_references): Make this thread safe.
15401 2004-04-08 Zoltan Varga <vargaz@freemail.hu>
15403 * monosn.c: Add missing initialization calls.
15405 2004-04-08 Bernie Solomon <bernard@ugsolutions.com>
15408 ves_icall_System_Globalization_CultureInfo_construct_number_format
15409 Fix g_assert so it compiles on fussier compilers re int/ptr
15412 2004-04-08 Dick Porter <dick@ximian.com>
15415 * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug
15416 53992. Also rearrange the code so that the internal calls return
15417 an error value and exceptions are thrown from managed code.
15419 * icall.c: Add type info to the socket icalls.
15421 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15423 * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
15426 2004-04-07 Martin Baulig <martin@ximian.com>
15428 * class.c (mono_class_from_generic_parameter): Don't default
15429 `klass->parent' to `mono_defaults.object_type'.
15431 2004-04-07 Martin Baulig <martin@ximian.com>
15433 * reflection.c (mono_reflection_initialize_generic_parameter): Set
15434 `param->pklass->reflection_info'.
15436 2004-04-07 Jackson Harper <jackson@ximian.com>
15438 * culture-info-tables.h: Fix date separator symbol.
15440 2004-04-07 Martin Baulig <martin@ximian.com>
15442 * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
15443 from System.Type to System.MonoType.
15445 2004-04-07 Martin Baulig <martin@ximian.com>
15448 (MonoReflectionGenericParam): Added `has_reference_type' and
15449 `has_value_type' fields.
15451 * reflection.c (mono_image_get_generic_param_info): Encode the
15452 correct flags if we have the `class' or `struct' constraint.
15454 2004-04-07 Martin Baulig <martin@ximian.com>
15457 (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
15459 2004-04-07 Jackson Harper <jackson@ximian.com>
15461 * appdomain.c: Revert extra patches, just wanted to bump the
15464 2004-04-07 Jackson Harper <jackson@ximian.com>
15466 * Makefile.am: Add culture-info private headers.
15467 * icall.c: Add new icalls for contructing locales.
15468 * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15469 * locales.h: Declare new culture info construction methods.
15470 * object.h: Add new fields used to avoid the CultureMap to
15472 * culture-info.h: Definition of structs used in the culture info
15474 * culture-info-tables.h: Autogenerated tables that contain culture
15475 info data. This file was generated with the locale-builder tool.
15476 * appdomain.c: Incement corlib version number.
15478 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
15480 * appdomain.c: (mono_runtime_init) move mono_thread_init
15481 to before mono_object_new calls so critical sections
15482 are initialized before use.
15484 2004-04-07 Martin Baulig <martin@ximian.com>
15487 (ves_icall_TypeBuilder_define_generic_parameter): Removed.
15488 (ves_icall_MethodBuilder_define_generic_parameter): Removed.
15489 (ves_icall_MonoGenericParam_initialize): Removed.
15490 (monogenericparam_icalls): Removed.
15491 (generictypeparambuilder_icalls): Added new table for
15492 System.Reflection.Emit.GenericTypeParameterBuilder.
15495 (mono_reflection_define_generic_parameter): Removed.
15496 (mono_reflection_initialize_generic_parameter): This is now called
15497 from GenericTypeParameterBuilder's .ctor.
15499 2004-04-06 Martin Baulig <martin@ximian.com>
15501 * class.c (mono_class_init): Don't inflate nested classes in a
15503 (mono_type_get_name_recurse): Include the generic arguments for
15504 generic instances and generic type declarations.
15505 (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
15506 (_mono_class_get_instantiation_name): Removed.
15507 (mono_class_create_generic): Always use `gklass->name' as our name.
15509 * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
15511 * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
15512 (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
15513 (ves_icall_MonoMethod_GetGenericParameters): Renamed to
15514 ves_icall_MonoMethod_GetGenericArguments() and correctly handle
15515 closed generic methods here.
15518 (mono_reflection_generic_inst_get_nested_types): Removed.
15519 (inflate_mono_method): Copy the generic parameters from the
15520 MonoMethodHeader into out MonoGenericMethod.
15522 2004-04-06 Martin Baulig <martin@ximian.com>
15525 (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
15527 * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
15529 * reflection.c (build_compressed_metadata): If we have any entries
15530 in the GenericParam, MethodSpec or GenericParamConstraint tables,
15531 set the header version to 1.1.
15533 2004-04-06 Martin Baulig <martin@ximian.com>
15535 * class.c (mono_class_init): If we're a generic instance,
15536 initialize our nested classes, too.
15537 (_mono_class_get_instantiation_name): Deal with the new `!%d'
15540 2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15542 * process.c: quote the argument passed to the shell on windows.
15544 2004-04-05 Zoltan Varga <vargaz@freemail.hu>
15546 * threads.c (mono_alloc_special_static_data): Allow this to be
15547 called during startup.
15549 2004-04-02 Martin Baulig <martin@ximian.com>
15552 (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
15554 2004-04-02 Zoltan Varga <vargaz@freemail.hu>
15556 * icall.c: Fix build.
15558 2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
15560 * Makefile.am: Added security.c|h.
15561 * icall.c: Added icall for get_UserName;
15562 * security.c: New file for security related icalls. Added function
15563 get_UserName for System.Environment (fix #56144).
15564 * security.h: New. Header file for security.c
15566 2004-04-02 Dick Porter <dick@ximian.com>
15568 * icall.c: Deleted the icalls that were obsoleted some time ago
15569 by the ICU string code, and which were mixed into the icall
15570 rearranging. Fixes bug 55969.
15573 * string-icalls.c: Deleted the code that those icalls reference.
15575 2004-04-01 Martin Baulig <martin@ximian.com>
15577 * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
15579 * class.c (mono_class_from_generic_parameter): Don't set
15580 TYPE_ATTRIBUTE_INTERFACE.
15581 (my_mono_class_from_generic_parameter): Likewise.
15583 2004-04-01 Martin Baulig <martin@ximian.com>
15585 * loader.c (find_method): Added an optional `MonoClass *ic'
15586 argument to search in a specific interface.
15587 (mono_get_method_constrained): New public function.
15589 2004-04-01 Martin Baulig <martin@ximian.com>
15591 * reflection.c (mono_image_get_generic_field_token): Use the
15592 `handleref' cache here.
15594 2004-04-01 Martin Baulig <martin@ximian.com>
15596 * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
15598 * reflection.c (create_generic_typespec): Use the `typespec' hash
15599 here, not the `typeref' one.
15601 2004-04-01 Martin Baulig <martin@ximian.com>
15603 * class.c (mono_class_inflate_generic_type): Moved the
15604 functionality into a new static inflate_generic_type() which
15605 returns NULL if it didn't do anything. Only increment the
15606 `mono_stats.inflated_type_count' if we actually inflated
15608 (mono_class_get_full): Check the classes type to see whether we
15609 need to inflate it; also inflate MONO_TYPE_(M)VAR.
15611 2004-04-01 Jackson Harper <jackson@ximian.com>
15613 * reflection.c: Set culture for assembly references.
15615 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
15617 * reflection.[ch], icall.[ch], Fix support for pinning variables.
15619 2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15622 (do_mono_assembly_open): the critical section also covers
15623 mono_image_open and mono_image_open_from_data. Fixes bug #56327.
15625 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15628 (mono_manage_threads): abort the background threads when finishing.
15631 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15633 * gc.c: only close the done_event handle if there was no timeout.
15636 2004-03-30 Martin Baulig <martin@ximian.com>
15638 * icall.c (icall_entries): It's called "System.Activator", not
15639 "System.Activation".
15641 2004-03-30 Martin Baulig <martin@ximian.com>
15643 * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
15644 (mono_class_create_from_typespec): Likewise.
15646 2004-03-30 Martin Baulig <martin@ximian.com>
15648 * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
15649 `has_ctor_constraint' and `initialized'.
15651 2004-03-30 Martin Baulig <martin@ximian.com>
15653 * reflection.c (encode_new_constraint): New static function to add
15654 the constructor constraint attribute to a type parameter.
15655 (encode_constraints): Call encode_new_constraint() if necessary.
15658 (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
15660 * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
15662 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
15664 * reflection.c, icall.c: add support for pinning variables.
15666 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
15668 * marshal.c (mono_marshal_get_managed_wrapper):
15669 init bool local with zero rather than null.
15671 2004-03-29 Martin Baulig <martin@ximian.com>
15673 * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
15674 the "official" behavior here.
15675 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
15677 2004-03-29 Martin Baulig <martin@ximian.com>
15679 * icall.c: Reflect latest API changes.
15681 2004-03-29 Martin Baulig <martin@ximian.com>
15683 * loader.c (mono_get_method_from_token): Also call
15684 mono_metadata_load_generic_params () for abstract and interface
15685 methods; replace the type arguments in the method signature with
15686 the ones which are loaded from the metadata.
15688 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
15690 * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
15691 of the lock is not the current thread. MS.NET don't do it, in spite of
15692 what the documentation says. See bug #56157.
15694 2004-03-28 Martin Baulig <martin@ximian.com>
15696 * class.c (mono_class_init): Don't call init_properties() and
15697 init_events() for generic instances; set `prop->parent' when
15698 inflating properties.
15700 * reflection.c (mono_generic_inst_get_object): Call
15701 `mono_class_init (ginst->klass)'.
15702 (mono_type_get_object): Only create a MonoGenericInst if your
15703 generic type is a TypeBuilder.
15704 (do_mono_reflection_bind_generic_parameters): Only set
15705 `ginst->is_dynamic' if our generic type is a TypeBuilder.
15707 2004-03-28 Zoltan Varga <vargaz@freemail.hu>
15709 * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
15712 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15714 * icall.c: added Kill_internal icall.
15715 * process.[ch]: added Kill_internal icall.
15717 2004-03-25 Martin Baulig <martin@ximian.com>
15719 * class.h (MonoStats): Added `generic_instance_count',
15720 `inflated_method_count', `inflated_type_count' and
15721 `generics_metadata_size'.
15723 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15725 * reflection.c: no warnings now.
15727 2004-03-25 Martin Baulig <martin@ximian.com>
15729 * class.c (mono_class_get_full): New public function; does a
15730 mono_class_get(), but also takes a `MonoGenericContext *'.
15732 * loader.c (mono_field_from_memberref): Renamed to
15733 `field_from_memberref', made static and added `MonoGenericContext *'
15735 (mono_field_from_token): Added `MonoGenericInst *' argument.
15736 (method_from_memberef): Likewise.
15737 (mono_get_method_from_token): Likewise.
15738 (mono_get_method_full): New public function; does a
15739 mono_get_method(), but also takes a `MonoGenericContext *'.
15741 * verify.c (mono_method_verify): Get the method's generic context
15742 and pass it to mono_field_from_token(), mono_get_method_full() and
15743 mono_class_get_full().
15745 2004-03-25 Martin Baulig <martin@ximian.com>
15747 * class.c (mono_class_inflate_generic_type): Take a
15748 `MonoGenericContext *' instead of a `MonoGenericInst *' and a
15749 `MonoGenericMethod *'.
15751 2004-03-25 Martin Baulig <martin@ximian.com>
15753 * loader.h (MonoMethodInflated): Store the MonoGenericContext
15754 instead of the MonoGenericMethod here.
15756 2004-03-25 Martin Baulig <martin@ximian.com>
15758 * class.h (MonoGenericInst): Added `MonoGenericContext *context';
15759 each time we create a new MonoGenericInst, we also create a new
15760 context which points back to us.
15762 * class.c (inflate_method): Use `ginst->context' instead of
15763 creating a new context.
15765 * loader.c (method_from_memberref): Use
15766 `klass->generic_inst->context' instead of creating a new context.
15768 2004-03-25 Martin Baulig <martin@ximian.com>
15770 * class.h (MonoGenericContext): New struct.
15771 (MonoGenericMethod): Removed `generic_inst'.
15773 * class.c (mono_class_inflate_generic_method): Take a
15774 `MonoGenericContext *' instead of a `MonoGenericMethod *'.
15776 2004-03-25 Martin Baulig <martin@ximian.com>
15778 * loader.h (MonoMethodInflated): New typedef.
15780 * metadata.h (MonoMethodSignature): Removed `gen_method', make
15781 `generic_param_count' consume just 30 bits, added `is_inflated'
15782 and `has_type_parameters' flags (one bit each).
15784 * class.c (mono_class_inflate_generic_method): Create a
15785 MonoMethodInflated instead of a MonoMethodNormal and set
15786 `is_inflated' in the method signature.
15788 * class.h (MonoGenericMethod): Removed `generic_method'.
15790 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
15792 * image.c: Make sure the name of a MonoImage is always an absolute path.
15793 This fixes bug #54415.
15795 2004-03-24 Martin Baulig <martin@ximian.com>
15797 * class.c (mono_class_setup_vtable): If we're a generic instance,
15798 use our generic type's vtable size.
15800 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
15802 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
15803 MONO_NO_UNLOAD env var as a temporary workaround for unloading
15806 2004-03-23 Martin Baulig <martin@ximian.com>
15808 * class.h (MonoDynamicGenericInst): Added `int count_events' and
15809 `MonoEvent *events'.
15811 * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
15812 (typebuilder_icalls): Added "get_event_info"; calls
15813 mono_reflection_event_builder_get_event_info().
15815 * reflection.c (mono_reflection_generic_inst_initialize): Added
15816 `MonoArray *events'.
15817 (mono_reflection_event_builder_get_event_info): New function.
15819 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
15821 * object.h: add mono_type_initialization_init
15823 * object.c (mono_runtime_class_init):
15824 implement class constructor synchronization rules
15825 to cope with threading issues.
15826 add mono_type_initialization_init
15828 * appdomain.c (mono_runtime_init): call
15829 mono_type_initialization_init
15831 * class.h: removing initializing field from MonoVTable
15833 2004-03-23 Martin Baulig <martin@ximian.com>
15835 * class.c (my_mono_class_from_generic_parameter): Use
15836 `param->name' if it's not NULL.
15838 2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
15840 * class.c: do not insert non-virtual methods in the vtable.
15841 * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
15842 that means the method is non-virtual. This never would have
15845 2004-03-22 Lluis Sanchez Gual <lluis@ximian.com>
15847 * profiler.c: Added lock for accessing coverage_hash.
15849 2004-03-22 Martin Baulig <martin@ximian.com>
15851 * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
15852 `method->method->signature->generic_param_count != 0' to make it
15853 work for interface methods.
15855 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15857 * process.c: quote the string passed to the shell using g_shell_quote.
15859 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15862 (mono_threads_manage): don't remove the finalizer thread and self
15863 from the threads hash table so that mono_thread_manage can be called
15866 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15868 * process.c: quote the arguments when UseShellExecute is true. Fixes
15871 2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15873 * threads.c: set mono_thread_detach as a cleanup routine for every
15874 thread. This way it's always executed upon thread termination, either
15875 aborted or finished normally. No more xsp hangs!
15877 2004-03-17 Martin Baulig <martin@ximian.com>
15879 * class.h (MonoGenericInst): Replaced the `GList *nested' with an
15880 `int count_nested' and a `MonoType **nested'.
15882 * reflection.c (mono_reflection_bind_generic_parameters): Moved
15883 most of the functionality into a new static
15884 do_mono_reflection_bind_generic_parameters() and don't take a
15885 `MonoType *nested_in' argument any more. Don't compute nested
15887 (mono_reflection_generic_inst_get_nested_types): New public method
15888 to get nested types.
15890 * class.c (mono_class_create_generic): Set `klass->nested_in' if
15891 we're a nested class.
15893 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
15894 mono_reflection_generic_inst_get_nested_types() to compute the
15897 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
15899 * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
15900 descriptive error message under windows.
15902 2004-03-17 Martin Baulig <martin@ximian.com>
15904 * class.c (dup_type): Added `const MonoType *original' argument;
15905 copy the attrs from the original type.
15907 2004-03-17 Martin Baulig <martin@ximian.com>
15909 * metadata.c (do_mono_metadata_parse_generic_inst): Use the
15910 `m->generic_inst_cache' here.
15912 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
15914 * exception.h exception.c: Add stack_overflow_exception.
15916 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15919 (overlapped_callback): call SetEvent *after* invoking the callback.
15920 No need to call CloseHandle.
15922 2004-03-16 Martin Baulig <martin@ximian.com>
15924 * reflection.c (mono_image_get_fieldref_token): Take a
15925 `MonoReflectionField *' instead of a `MonoClassField *' and a
15926 `MonoClass *'; store the `MonoReflectionField *' in the hash.
15928 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15930 * appdomain.c: don't add the culture to the filename we're looking for
15931 if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
15933 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15935 * locales.c: don't ignore symbols when doing case insensitive compares.
15936 Thanks Dick! Fixes bug #54046.
15938 * threads.c: surround 'threads' usage with enter/leave in
15939 mono_thread_manage.
15941 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
15943 * marshal.c (mono_marshal_get_native_wrapper): Char arrays are
15944 implicitly marshalled as [Out]. Fixes #55450.
15946 (mono_marshal_get_runtime_invoke): Zero out the result if there is
15949 2004-03-16 Martin Baulig <martin@ximian.com>
15951 * class.c (mono_class_from_generic_parameter): Use the actual
15954 2004-03-16 Martin Baulig <martin@ximian.com>
15956 * reflection.c (type_get_signature_size): New static function.
15957 Compues the size of the type in a method signature.
15958 (method_get_signature_size): New static function; calls
15959 type_get_signature_size() to compute the actual size of the
15960 method's signature.
15961 (method_encode_signature): Use method_get_signature_size() to get
15962 the signature's size rather than using `nparams * 10'.
15964 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15966 * file-io.h: define here WapiOverlapped on windows. I don't want the
15967 regular OVERLAPPED one.
15970 * threadpool.c: somehow, BindIoCompletionCallback is not found.
15971 Disabling AIO on windows.
15973 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15975 * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
15978 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15980 * appdomain.c: upgraded corlib version.
15982 * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
15983 and BeginWrite. Allow opening files for asynchrnous operations.
15985 * file-io.h: new struct that maps FileStreamAsyncResult.
15986 * icall.c: added new icalls.
15987 * process.[ch]: support setting child process environment variables
15988 and use the SHELL or COMSPEC when UseShellExecute is true.
15990 * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
15991 callback for async. IO is here and also BindHandle.
15993 * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
15996 2004-03-14 Zoltan Varga <vargaz@freemail.hu>
15998 * reflection.c (create_custom_attr): Allow len == 0.
16000 * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16001 computation on big-endian machines.
16003 2004-03-13 Martin Baulig <martin@ximian.com>
16005 * class.h (MonoGenericInst): Added `int count_ifaces'.
16007 * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16008 `ginst->count_ifaces' instead `klass->interface_count' since we
16009 may get called before the vtable is created.
16011 * loader.c (mono_method_get_param_names): If we're a generic
16012 instance, return and don't initialize the class.
16014 * reflection.c (mono_reflection_setup_generic_class): Don't call
16015 ensure_runtime_vtable().
16016 (mono_reflection_bind_generic_parameters): Set
16017 `ginst->count_ifaces'.
16019 2004-03-11 Jackson Harper <jackson@ximian.com>
16023 * unicode.h: Remove unused System.Char icalls.
16025 2004-03-11 Miguel de Icaza <miguel@ximian.com>
16027 * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16028 code when we P/Invoke the first library in Windows.Forms, instead
16029 of when we first open the assembly.
16031 * assembly.c: Drop the lookup from here.
16033 2004-03-10 Martin Baulig <martin@ximian.com>
16035 * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16036 class for properties, fields and events. Finally fixes #54945.
16038 2004-03-10 Martin Baulig <martin@ximian.com>
16040 * metadata.c (mono_metadata_class_equal): New static function;
16041 checks whether two generic instances or two generic parameters are
16043 (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16046 2004-03-10 Martin Baulig <martin@ximian.com>
16048 * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16050 * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16051 argument and write it into the `reflection_info' field.
16054 (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16055 (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16057 2004-03-09 Jackson Harper <jackson@ximian.com>
16059 * char-conversions.h: use 8 bits for numeric data its all we need
16060 * icall.c: numeric data is only 8 bits now.
16062 2004-03-09 Martin Baulig <martin@ximian.com>
16064 * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16066 * class.c (init_properties, init_events): Initialize the new
16069 * reflection.c (typebuilder_setup_properties): Likewise.
16070 (typebuilder_setup_events): Likewise.
16072 * reflection.h (MonoEventInfo): Replaced `parent with
16073 `declaring_type' and `reflected_type'.
16075 * icall.c (ves_icall_get_property_info): Distinguish between
16076 declaring and reflected type.
16077 (ves_icall_get_event_info): Likewise.
16079 2004-03-09 Martin Baulig <martin@ximian.com>
16081 * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16082 (ves_icall_Type_GetField): Correctly set field->klass.
16084 2004-03-09 Zoltan Varga <vargaz@freemail.hu>
16086 * loader.h: Fix warning.
16088 2004-03-08 Miguel de Icaza <miguel@ximian.com>
16090 * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16091 library routine if present. Notice that it will still continue
16092 executing even if its missing, for those working on the Gtk#
16093 edition of Windows.Forms.
16095 * assembly.c (do_mono_assembly_open): If loading the
16096 System.Windows.Forms call mono_loader_wini_init.
16098 2004-03-04 Lluis Sanchez Gual <lluis@ximian.com>
16100 * class.h: Added MonoRemoteClass struct.
16101 * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16102 function for MonoStrings.
16103 * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16104 Added internal call for getting the proxy type.
16105 * marshal.c: Get the type of transparent proxies from its remote_class.
16106 Added methods that generate the IL for type checks and casts:
16107 mono_marshal_get_isinst, mono_marshal_get_castclass,
16108 mono_marshal_get_proxy_cancast.
16109 * marshal.h: Declaration of the previous new methods.
16110 * object.c: Added new moethods for creating and updating MonoRemoteClass
16111 instances: mono_remote_class, mono_upgrade_remote_class,
16112 * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16113 * verify.c: FIx transparent_proxy_fields layout.
16114 * appdomain.c: Bump corlib version.
16116 2004-03-04 Jackson Harper <jackson@ximian.com>
16118 * icall.c: Add icall to access char conversion tables.
16119 * char-conversions.h: Character conversion tables.
16120 * Makefile.am: Add char-conversions.h private header file.
16122 2004-03-04 Zoltan Varga <vargaz@freemail.hu>
16124 * appdomain.c (unload_thread_main): Increase unloading timeout to
16125 10 sec as a temporary workaround for Nant problems.
16127 2004-02-29 Zoltan Varga <vargaz@freemail.hu>
16129 * gc.c: Add checks for GC_enable and GC_disable.
16131 * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16132 (jaak@zd.com.pl). Fix memory corruption in String.Replace
16135 2004-02-27 Martin Baulig <martin@ximian.com>
16137 * reflection.c (mono_reflection_bind_generic_parameters): Take a
16138 `MonoReflectionType *' instead of a `MonoType *'.
16140 2004-02-26 Zoltan Varga <vargaz@freemail.hu>
16142 * gc.c (run_finalize): Avoid finalizing the object representing the
16144 (finalizer_thread): Fix warning.
16146 2004-02-25 Martin Baulig <martin@ximian.com>
16148 * class.c (_mono_class_get_instantiation_name): Added `int offset'
16149 argument for nested types.
16150 (mono_class_create_generic): Added support for nested generictypes.
16152 * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16155 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16157 * reflection.c (method_encode_signature): Increase the minimum
16158 value of `size' from 10 to 11.
16159 (mono_reflection_bind_generic_parameters): Take `int type_argc'
16160 and `MonoType **types' arguments instead of the `MonoArray
16161 *types'; added `MonoType *nested_in'. Recursively instantiate
16164 2004-02-23 Zoltan Varga <vargaz@freemail.hu>
16166 * appdomain.h (MonoDomain): Add preallocated null_reference_ex and
16167 stack_overflow_ex members which are used by exception handling.
16169 * appdomain.c (mono_runtime_init): Initialize the new members.
16171 * gc.c (mono_gc_enable): New helper function.
16172 * gc.c (mono_gc_disable): New helper function.
16174 2004-02-23 Martin Baulig <martin@ximian.com>
16176 * icall.c: I must have been really stupid - make it actually work
16179 2004-02-23 Martin Baulig <martin@ximian.com>
16181 * loader.c (method_from_memberref): Only inflate the method if
16182 it's in another klass.
16184 2004-02-23 Martin Baulig <martin@ximian.com>
16186 * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16187 (mono_class_init): If we're a generic instance and an interface,
16188 compute `class->interface_id'; also create `class->interfaces'
16189 here and inflate them.
16191 * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16193 (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16195 * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16197 2004-02-15 Miguel de Icaza <miguel@ximian.com>
16199 * reflection.c (method_encode_code): Improved the error message
16200 generated by the exception.
16202 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16204 * icall.c: Martin did not do what he said in the ChangeLog for
16205 2004-02-18, but put back the changes for properties and events.
16206 Commenting those changes out again and adding comment to bug #54518.
16208 * process.c: removed warning.
16210 2004-02-20 Zoltan Varga <vargaz@freemail.hu>
16212 * marshal.c (emit_struct_conv): Print an error message instead of
16213 asserting when a type does not have the StructLayout attribute.
16215 2004-02-20 Martin Baulig <martin@ximian.com>
16217 * reflection.c (mono_type_get_object): Also use the cache for
16219 (mono_reflection_bind_generic_parameters): Always compute
16222 2004-02-20 Martin Baulig <martin@ximian.com>
16224 * class.h (MonoGenericMethod): Removed `klass'.
16226 * class.c (mono_class_inflate_generic_method): Added `MonoClass
16229 2004-02-20 Martin Baulig <martin@ximian.com>
16231 * reflection.c (method_encode_methodspec): Actually use the
16232 uninflated signature for the memberref.
16234 2004-02-20 Martin Baulig <martin@ximian.com>
16236 * class.h (MonoGenericMethod): Removed `declaring'.
16238 * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16239 is NULL, compute it here.
16241 2004-02-20 Martin Baulig <martin@ximian.com>
16243 * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16245 * metadata.c (mono_metadata_generic_inst_hash): New method.
16246 (mono_metadata_generic_inst_equal): New method.
16248 * reflection.c (mono_reflection_bind_generic_parameters): Use the
16249 `klass->image->generic_inst_cache' cache to avoid creating
16250 duplicate MonoGenericInst's.
16252 * class.c (mono_class_inflate_generic_type): Use the cache.
16254 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16256 * object.c: fixed gc descriptor calculation for embedded valuetypes.
16258 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16260 * icall.c: added Socket.WSAIoctl icall.
16262 * socket-io.[ch]: implemented
16263 ves_icall_System_Net_Sockets_Socket_WSAIoctl.
16265 2004-02-19 Atsushi Enomoto <atsushi@ximian.com>
16267 * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
16269 2004-02-18 Urs C Muff <umuff@quark.com>
16271 * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
16272 this work on PPC and other big-endian architectures.
16274 * debug-mono-symfile.h: Prepended the names of all the `guint32'
16275 fields with an underscore to make sure they're only accessed by
16276 the read32() macro.
16278 2004-02-18 Martin Baulig <martin@ximian.com>
16280 * icall.c: Put the klass->refclass changes back for methods and
16281 fields, but not for properties and events. We're currently not
16282 distinguishing between DeclaringType and ReflectedType for
16283 properties and events, that's what caused the regressions.
16285 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16288 (mono_async_result_new): the handle can be NULL.
16290 * threadpool.c: Use an event instead of a semaphore, don't initialize
16291 it until needed. This saves quite a few semaphores from being created
16292 when using the threadpool.
16294 2004-02-18 Zoltan Varga <vargaz@freemail.hu>
16296 * object.c (mono_string_is_interned_lookup): Fix interning of long
16297 strings. Fixes #54473.
16299 * domain.c (ldstr_equal): Optimize if the two strings are equal.
16301 * icall.c: Revert the klass->refclass changes since they introduce
16302 regressions (bug #54518).
16304 2004-02-18 Martin Baulig <martin@ximian.com>
16306 * class.c (mono_class_init): If we're a generic instance and don't
16307 come from a TypeBuilder, inflate our members here.
16308 (mono_class_from_generic): Removed; just use `ginst->klass' instead.
16309 (mono_class_create_generic): New public method.
16310 (mono_class_initialize_generic): Removed.
16311 (get_instantiation_name): Renamed to
16312 _mono_class_get_instantiation_name() and made it public.
16314 2004-02-18 Martin Baulig <martin@ximian.com>
16316 * class.c (mono_class_inflate_generic_type): Clear the new
16317 instance's `nginst->klass' when inflating a generic instance.
16318 (mono_class_is_subclass_of): Added (basic) support for generic
16321 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
16323 * appdomain.h, domain.c: use a MonoCodeManager instead of a
16324 MonoMempool to hold compiled native code.
16326 2004-02-17 Martin Baulig <martin@ximian.com>
16328 * class.h (MonoDynamicGenericInst): Added `count_properties' and
16331 * reflection.c (mono_reflection_generic_inst_initialize): Added
16332 `MonoArray *properties' argument.
16334 * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.
16336 2004-02-17 Martin Baulig <martin@ximian.com>
16338 * icall.c (ves_icall_Type_GetFields): Renamed to
16339 ves_icall_Type_GetFields_internal() and added a
16340 `MonoReflectionType *rtype' argument; pass it to
16341 mono_field_get_object() to set the field's "reflected" type.
16342 (ves_icall_Type_GetConstructors): Likewise.
16343 (ves_icall_Type_GetEvents): Likewise.
16344 (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
16345 argument; pass it to mono_method_get_object() to set the method's
16348 2004-02-17 Martin Baulig <martin@ximian.com>
16350 * class.h (MonoDynamicGenericInst): New type.
16351 (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
16353 * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
16354 (ves_icall_MonoGenericInst_GetConstructors): New interncall.
16355 (ves_icall_MonoGenericInst_GetFields): New interncall.
16357 * class.c (mono_class_from_generic): Don't call
16358 mono_class_initialize_generic() if this is a dynamic instance;
16359 ie. it's being created from a TypeBuilder.
16360 Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
16361 `class->byval_arg.type'.
16363 * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
16364 to `inflate_method' and made static.
16365 (mono_reflection_inflate_field): Removed.
16366 (mono_reflection_generic_inst_initialize): New public method.
16368 * reflection.h (MonoReflectionGenericInst): Removed `methods',
16369 `ctors' and `fields'; added `initialized'.
16371 2004-02-14 Zoltan Varga <vargaz@freemail.hu>
16373 * debug-helpers.c (mono_method_full_name): Fix output for empty
16376 2004-02-12 Martin Baulig <martin@ximian.com>
16378 * class.h (MonoClassField): Added `MonoType *generic_type'.
16380 * reflection.c (mono_image_get_fieldref_token): Added support for
16381 instantiated generic types.
16382 (field_encode_inflated_field): Removed.
16383 (mono_image_get_inflated_field_token): Removed.
16384 (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
16386 * reflection.h (MonoReflectionInflatedField): Removed.
16388 2004-02-12 Martin Baulig <martin@ximian.com>
16390 * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
16391 `gen_method' field from MonoMethodHeader to MonoMethodSignature.
16393 * reflection.c (mono_image_get_methodspec_token): Take a
16394 `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
16395 (mono_image_create_token): Check whether we have a
16396 `method->signature->gen_method' and call
16397 mono_image_get_methodspec_token() if appropriate.
16398 (inflated_method_get_object): Removed.
16399 (mono_reflection_bind_generic_method_parameters): Return a
16400 `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
16401 (mono_reflection_inflate_method_or_ctor): Likewise.
16403 * reflection.h (MonoReflectionInflatedMethod): Removed.
16405 2004-02-12 Zoltan Varga <vargaz@freemail.hu>
16407 * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
16408 for custom valuetype marshalling.
16410 * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
16412 2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16414 * icall.c: fixed WSAGetLastError_internal name.
16416 2004-02-11 Zoltan Varga <vargaz@freemail.hu>
16418 * threads.c (mono_thread_attach): Allow this to be called multiple
16419 times for a thread.
16421 * threads.c (build_wait_tids): Do not wait for ourselves.
16423 * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the
16424 appdomain list is empty.
16426 * marshal.c (mono_marshal_get_native_wrapper): Do not free the
16427 memory returned by mono_string_builder_to_utf16, since it points into
16428 managed memory. Thanks to Bernie Solomon for noticing this.
16430 * icall.c: Add AppDomainSetup icalls.
16432 * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
16434 * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
16437 * reflection.c (reflection_methodbuilder_to_mono_method): Save
16438 custom attributes to the method_aux struct. Also fix array indexes etc.
16440 * loader.c (mono_method_get_param_names): Make dynamic case work again.
16442 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
16444 * icall.c, loader.c: icall cleanup: we save quite a bit of memory
16445 (both static and runtime) and reduce startup time.
16447 2004-02-10 Zoltan Varga <vargaz@freemail.hu>
16449 * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
16450 AsAny marshalling conversion instead of crashing.
16452 * marshal.c: Fix warnings.
16454 2004-02-09 Martin Baulig <martin@ximian.com>
16456 * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
16458 * reflection.h (MonoReflectionInflatedMethod): Removed the
16459 `declaring' field, it's now in the unmanaged MonoGenericMethod.
16461 * reflection.c (method_encode_methodspec): Removed the `method'
16462 argument; we get it from `gmethod->declaring'.
16463 (inflated_method_get_object): Removed the `declaring' argument.
16465 2004-02-09 Martin Baulig <martin@ximian.com>
16467 * class.h (MonoGenericMethod): New type.
16468 (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16471 * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16472 a `MonoGenericMethod *gen_method' one.
16474 * class.c (mono_class_inflate_generic_type): Take an additional
16475 `MonoGenericMethod * argument. This is only non-NULL if we're
16476 inflating types for a generic method.
16477 (mono_class_inflate_generic_signature): Renamed to
16478 inflate_generic_signature() and made static; take a
16479 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16480 (inflate_generic_header): Take a `MonoGenericMethod *' argument
16481 instead of a `MonoGenericInst *' one.
16482 (mono_class_inflate_generic_method): Likewise.
16484 * reflection.c (encode_generic_method_sig): Take a
16485 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16486 (method_encode_methodspec): Likewise.
16487 (inflated_method_get_object): Likewise.
16489 * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
16490 field with a `MonoGenericMethod *gmethod' one.
16492 2004-02-08 Bernie Solomon <bernard@ugsolutions.com>
16494 * class.h (mono_class_has_parent): add parens to expansion
16497 2004-02-08 Martin Baulig <martin@ximian.com>
16499 * image.h (MonoImage): Removed `generics_cache'.
16501 * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
16502 instead of a `MonoType *' argument; removed the `inflate_methods'
16503 argument. Don't inflate methods here.
16505 * loader.c (find_method): If it's a generic instance, call
16506 mono_class_init() on the `sclass->generic_inst->generic_type'.
16508 * metadata.c (mono_type_size): Make this work on uninitialized
16509 generic instances; call it on the `ginst->generic_type's class.
16511 * reflection.c (mono_reflection_bind_generic_parameters): Call
16512 mono_class_from_generic() to create the `ginst->klass'.
16514 2004-02-08 Martin Baulig <martin@ximian.com>
16516 * class.h (MonoClass): Changed type of `generic_inst' from
16517 `MonoType *' to `MonoGenericInst *'.
16519 2004-02-08 Martin Baulig <martin@ximian.com>
16521 * icall.c (ves_icall_Type_BindGenericParameters): Just call
16522 mono_type_get_object(), this is now creating a `MonoGenericInst'
16523 for MONO_TYPE_GENERICINST.
16524 (ves_icall_MonoGenericInst_GetParentType): Likewise.
16525 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16527 * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
16528 instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
16529 (inflated_method_get_object): Added `MonoClass *refclass' argument.
16530 (mono_reflection_inflate_method_or_ctor): Correctly set declaring
16531 and reflected type.
16533 * reflection.h (MonoReflectionInflatedMethod): Removed
16534 `declaring_type' and `reflected_type'.
16536 2004-02-08 Martin Baulig <martin@ximian.com>
16538 * class.h (MonoGenericInst): Added `MonoType *parent' and
16539 `MonoType **ifaces'.
16541 * reflection.h (MonoReflectionGenericInst): Removed `klass',
16542 `parent' and `interfaces'.
16544 * reflection.c (mono_reflection_bind_generic_parameters): Take a
16545 `MonoType *' argument and return a `MonoType *'.
16548 (ves_icall_MonoGenericInst_GetParentType): New interncall.
16549 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
16551 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
16553 * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
16554 valuetype marshalling.
16556 2004-02-06 Martin Baulig <martin@ximian.com>
16559 (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
16560 (my_mono_class_from_generic_parameter): Likewise.
16562 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
16564 * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
16565 contents of the symbol files lazily.
16567 * object.h (MonoThread): Add 'name' and 'name_len' fields.
16569 * threads.h threads.c icall.c: New icalls for getting and setting the
16572 2004-02-05 Zoltan Varga <vargaz@freemail.hu>
16574 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID):
16575 Raise an exception when the domain is not found.
16577 2004-02-03 Martin Baulig <martin@ximian.com>
16579 * reflection.c (mono_image_get_methodspec_token): Use the
16580 uninflated signature; fixes gen-33.
16582 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
16584 * gc.c threads.c: Make the finalizer thread a normal managed thread so
16585 the finalizer code can use thread functionality.
16587 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for
16588 the finalizer thread.
16590 * threads.c: Make some functions more robust.
16592 * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
16594 * metadata.h: Add new marshalling conventions.
16596 * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
16597 stringbuilder marshalling. Fixes #53700.
16599 * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
16601 * reflection.c (mono_image_get_type_info): Save declarative security
16604 * reflection.c (mono_image_get_field_info): Handle uninitialized
16605 unmanaged fields as well.
16607 * appdomain.c: Bump corlib version.
16609 2004-02-01 Martin Baulig <martin@ximian.com>
16611 * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
16612 method type arguments.
16614 2004-01-30 Duncan Mak <duncan@ximian.com>
16616 * marshal.h: Add prototype for
16617 "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
16619 "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
16622 2004-01-30 Zoltan Varga <vargaz@freemail.hu>
16624 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
16625 (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
16627 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
16629 * marshal.c (mono_marshal_get_native_wrapper): Add support for
16630 custom marshalling of valuetypes.
16632 * marshal.c: Fix some warnings.
16634 2004-01-29 Martin Baulig <martin@ximian.com>
16636 * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
16637 for generic method parameters.
16639 * reflection.c (method_encode_methodspec): Write the uninflated
16640 signature into the methodspec table.
16641 (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
16642 is always the uninflated method.
16643 (reflection_methodbuilder_to_mono_method): Copy the generic
16644 parameters from the MethodBuilder into `header->gen_params'.
16646 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
16648 * class.c (mono_class_from_generic_parameter): Fix warning.
16650 2004-01-27 Martin Baulig <martin@ximian.com>
16652 * class.c (mono_class_from_generic_parameter): Don't create
16653 `klass->methods' here.
16655 2004-01-26 Zoltan Varga <vargaz@freemail.hu>
16657 * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
16658 extension since it does not work with libraries named lib<FOO>.dll.so.
16660 2004-01-25 Martin Baulig <martin@ximian.com>
16662 * class.c (mono_class_inflate_generic_type): Added support for
16663 MONO_TYPE_GENERICINST.
16665 * reflection.c (mono_reflection_inflate_method_or_ctor): Also
16666 inflate methods on open constructed types.
16668 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16670 * object.c: fire ProcessExit event in the root AppDomain after running
16671 Main. Fixes bug #53299.
16673 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
16675 * socket-io.c: include the new socket-wrappers.h header.
16676 Use the wrappers instead of the unix socket functions to make the code
16679 2004-01-23 Zoltan Varga <vargaz@freemail.hu>
16681 * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
16683 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16686 2004-01-22 Zoltan Varga <vargaz@freemail.hu>
16688 * reflection.c (mono_image_create_pefile): Handle the case when the
16689 entry point is not a MethodBuilder.
16691 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16692 field to ReflectionMethod since it is not allways a builder.
16694 * reflection.c (type_get_fully_qualified_name): New helper function to
16695 return the fully qualified name of a type.
16697 * reflection.c (encode_marshal_blob): Always emit the fully qualified
16698 type name for custom marshallers.
16700 * reflection.c (mono_marshal_spec_from_builder): Ditto.
16702 * class.c (mono_class_setup_vtable): If a parent class already
16703 implements an interface, use the implementing methods from that class.
16706 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16708 * threadpool.c: just return instead of ExitThread to allow for thread
16711 2004-01-21 Zoltan Varga <vargaz@freemail.hu>
16713 * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
16714 when closing resource modules.
16716 * reflection.c (mono_image_create_pefile): Handle the case when the
16717 entry point is not a MethodBuilder.
16719 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
16720 field to ReflectionMethod since it is not allways a builder.
16722 2004-01-20 Bernie Solomon <bernard@ugsolutions.com>
16724 * marshal.c (mono_marshal_get_managed_wrapper):
16725 mono_marshal_alloc takes native int so CONV_I
16726 the arg for 64bits.
16728 2004-01-20 Zoltan Varga <vargaz@freemail.hu>
16730 * reflection.c (fixup_cattrs): New function to fixup the methoddef
16731 tokens in the cattr table. Fixes #53108.
16733 2004-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16735 * loader.c: don't trim ".dll" before looking up in the config file.
16736 Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
16738 2004-01-19 Zoltan Varga <vargaz@freemail.hu>
16740 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16741 Return the module which contains the resource as well.
16742 (ves_icall_System_Reflection_Module_Close): New icall.
16744 * appdomain.c: Bump corlib version number.
16746 * image.c (mono_image_addref): New public function.
16748 * assembly.c: Call mono_image_addref.
16750 * reflection.c (mono_module_get_object): Increase reference count of
16753 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
16756 * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
16757 Applied patch from Bernie Solomon <bernard@ugsolutions.com>. Throw
16758 proper exceptions on DllImport problems.
16760 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
16762 * class.c, metadata.c: eliminate CSIZE macro.
16764 2004-01-19 Lluis Sanchez Gual <lluis@ximian.com>
16766 * icall.c: Added ves_icall_type_IsInstanceOf internal call.
16767 * object.h: Added async_callback field in MonoAsyncResult.
16768 * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
16769 * verify.c: Added async_callback in MonoAsyncResult layout.
16771 2004-01-17 Zoltan Varga <vargaz@freemail.hu>
16773 * reflection.c (mono_reflection_get_custom_attrs): Add support
16776 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
16778 * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder
16780 (mono_marshal_method_from_wrapper): Add null pointer check.
16782 2004-01-16 Martin Baulig <martin@ximian.com>
16784 * debug-mono-symfile.h: Set version number to 36 and reflect
16785 latest symbol writer changes.
16787 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
16789 * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
16790 multi-dimensional arrays.
16791 (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
16792 (mono_class_from_mono_type): Use bounded_array_class_get.
16794 * class.c (mono_bounded_array_class_get): New function which takes
16795 a 'bounded' bool argument to distinguish vectors from one dimensional
16798 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call
16799 bounded_array_class_get if the array has bounds.
16801 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
16802 Search modules loaded using AssemblyBuilder:AddModule as well.
16804 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16806 * appdomain.c: increased corlib version.
16807 * filewatcher.c: removed g_print.
16809 (get_property_info): only allocate what is actually requested.
16810 (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
16812 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16814 * Makefile.am: added filewatcher.[ch]
16815 * filewatcher.[ch]: FileSystemWatcher runtime support.
16816 * icall.c: added new FSW icalls.
16818 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
16820 * string-icalls.c: fix stringbuilder regression as suggested by
16821 Iain McCoy <iain@mccoy.id.au>.
16823 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
16825 * process.c (process_read_stringtable_block): Recognize '007f' as
16826 a language neutral stringtable block.
16828 2004-01-12 Patrik Torstensson
16830 * object.h (MonoStringBuilder) : Changed layout to support our
16831 new stringbuilder class.
16832 * marshal.c: Change marshalling to support the new layout of
16834 * appdomain.c: increased version number because new layout of
16837 2004-01-12 Zoltan Varga <vargaz@freemail.hu>
16839 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
16840 assembly name as an string instead of an AssemblyName, since it is
16841 easier to extract info from it.
16843 * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
16844 the culture subdirectories too. Fixes #52231.
16846 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16848 * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
16849 It takes 2 new parameters with an optional name for the method to look
16850 for and case ignoring info.
16852 * threadpool.c: removed unused variable.
16854 2004-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16856 * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
16857 It takes 2 new parameters with an optional name for the property to look
16858 for and case ignoring info.
16861 2004-01-09 Zoltan Varga <vargaz@freemail.hu>
16863 * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
16866 2004-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16869 * assembly.c: escape the uri before passing it to g_filename_from_uri.
16872 2004-01-07 Zoltan Varga <vargaz@freemail.hu>
16874 * reflection.c: Add support for more than one unmanaged resource.
16876 * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
16877 in field->def_value, as done in all other cases.
16879 * reflection.c (mono_reflection_get_custom_attrs): Add support for
16882 * reflection.c (mono_reflection_create_runtime_class): Remove
16883 errorneous assignment to klass->element_class, since it is already
16884 done in mono_reflection_setup_internal_class.
16886 2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16888 * gc.c: added missing LeaveCriticalSection.
16889 * icall.c: indented a couple of lines.
16890 * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
16891 if we call EndInvoke inside a callback. Fixes bug #52601.
16893 2004-01-07 Martin Baulig <martin@ximian.com>
16895 * mono-debug-debugger.h
16896 (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
16898 2004-01-06 Miguel de Icaza <miguel@ximian.com>
16900 * appdomain.c: Use messages in NotImplementedException.
16902 * exception.c (mono_get_exception_not_implemented): Now this takes
16903 a message argument.
16905 * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
16906 exception instead of g_asserting an aborting when something is not
16909 Add some inline docs.
16911 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
16913 * reflection.h: Update after changes to object layout.
16915 * reflection.c: Implement saving of unmanaged aka win32 resources.
16917 * appdomain.c: Bump version number.
16919 * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID):
16920 Handle missing domains gracefully.
16922 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
16924 * file-io.c : On Windows, there are much more invalid_path_chars.
16926 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
16928 * class.h, object.c: prepare for GetType () speedup.
16930 2003-12-24 Atsushi Enomoto <atsushi@ximian.com>
16932 * profiler.c: workaround for --profile null reference exception on
16933 cygwin. Patch by Patrik Torstensson.
16935 2003-12-22 Bernie Solomon <bernard@ugsolutions.com>
16937 * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
16938 make work for unaligned access.
16940 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
16942 * class.c: small cleanup (class->fields [i] -> field).
16943 * image.c: check address of metadata is valid.
16945 2003-12-22 Zoltan Varga <vargaz@freemail.hu>
16947 * assembly.h assembly.c (mono_assembly_loaded): New public function to
16948 search the list of loaded assemblies.
16950 * reflection.c (mono_reflection_type_from_name): Use
16951 mono_assembly_loaded instead of mono_image_loaded.
16953 * reflection.c: Fix warnings.
16955 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
16957 * image.h (MonoImage): Add a new 'dynamic' field to denote that the image
16958 is dynamic. This is needed since an assembly can contain both dynamic and
16959 non-dynamic images.
16961 * class.c loader.c metadata.c object.c: Use image->dynamic instead of
16964 * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
16966 * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
16967 to store modules loaded using AddModule.
16969 * reflection.c (mono_image_fill_file_table): Generalize this so it works
16972 * reflection.c (mono_image_fill_export_table_from_class): New helper function.
16974 * reflection.c (mono_image_fill_export_table_from_module): New function to
16975 fill out the EXPORTEDTYPES table from a module.
16977 * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
16978 into a separate function. Also handle loaded non-dynamic modules.
16980 * reflection.c (mono_image_basic_init): Fix memory allocation.
16982 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16984 * assembly.c (mono_assembly_load_references): Make this public.
16986 2003-12-19 Martin Baulig <martin@ximian.com>
16988 * class.c (mono_class_initialize_generic): Made this static, take
16989 a `MonoGenericInst *' instead of a `MonoClass *'.
16990 (mono_class_from_generic): Call mono_class_initialize_generic()
16991 unless we're already initialized or being called from
16992 do_mono_metadata_parse_generic_inst().
16994 * class.h (MonoGenericInst): Added `initialized' and
16995 `init_pending' flags.
16997 * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
16998 `mono_class_init (gklass)' or mono_class_initialize_generic()
16999 here; set `generic_inst->init_pending' while parsing the
17002 2003-12-19 Bernie Solomon <bernard@ugsolutions.com>
17004 * locales.c: include string.h for memxxx prototypes
17006 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
17008 * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17009 constructor when accessing literal fields.
17011 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
17013 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17015 * reflection.c (assembly_add_resource_manifest): New function to fill
17016 the MANIFESTRESOURCE table.
17018 * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17020 * reflection.h: Update to changes in class layout.
17022 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted):
17023 Reenable call to mono_runtime_is_shutting_down ().
17025 * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17026 determine if the runtime is shutting down.
17028 2003-12-16 Jackson Harper <jackson@ximian.com>
17030 * icall.c: comment out call to mono_runtime_is_shutting_down to
17033 2003-12-16 Zoltan Varga <vargaz@freemail.hu>
17035 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17036 (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17038 2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
17040 * reflection.c: move definition of swap_with_size
17041 to before its first call
17043 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
17045 * appdomain.c (mono_runtime_is_shutting_down): New public function.
17047 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17050 * object.c: Fix warnings.
17052 * icall.c (ves_icall_Type_Get...): Only consider inherited static
17053 members if FlattenHierarchy is set.
17055 * reflection.c (mono_image_add_decl_security): New function to emit
17056 declarative security.
17058 * reflection.h reflection.c: Add support for declarative security.
17060 * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17062 2003-12-13 Zoltan Varga <vargaz@freemail.hu>
17064 appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17066 * appdomain.c verify.c: Moved corlib version checking into its own
17067 function in appdomain.c since it needs to create vtables etc.
17069 2003-12-13 Patrik Torstensson <p@rxc.se>
17071 * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
17072 instead of unwrapped server.
17074 2003-12-12 Zoltan Varga <vargaz@freemail.hu>
17076 * verify.c (check_corlib): Fix field index.
17078 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
17080 * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17083 2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
17085 * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17086 ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17087 cope with sizeof(size_t) != sizeof(guint32).
17089 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17091 * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17092 in case of failure.
17094 2003-12-10 Mark Crichton <crichton@gimp.org>
17096 * icall.c: removed the GetNonZeroBytes. We now handle this case
17099 * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
17101 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17103 * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17106 2003-12-09 Zoltan Varga <vargaz@freemail.hu>
17108 * verify.c (check_corlib): Handle the case when the version field is
17109 initialized by a static constructor.
17111 2003-12-08 Patrik Torstensson <p@rxc.se>
17113 * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17115 2003-12-08 Martin Baulig <martin@ximian.com>
17117 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17118 a MonoReflectionGenericParameter, also take the parameter index
17119 and name as arguments.
17120 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17121 (ves_icall_MonoGenericParam_initialize): New interncall.
17122 (ves_icall_Type_make_byref_type): New interncall.
17124 * reflection.h (MonoReflectionGenericParam): Derive from
17125 MonoReflectionType, not just from MonoObject. Added `refobj' and
17128 * reflection.c (mono_reflection_define_generic_parameter): Create
17129 and return a new MonoReflectionGenericParam; don't initialize the
17131 (mono_reflection_initialize_generic_parameter): New public method;
17132 initializes the constraints and creates the `param->pklass'.
17134 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
17136 * reflection.h reflection.c: Use the new fields 'num_types',
17137 'num_fields' and 'num_methods' to track the number of types etc.
17139 * verify.c (check_corlib): Check corlib version number.
17141 2003-12-07 Zoltan Varga <vargaz@freemail.hu>
17143 * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17144 function works on all methods.
17146 2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
17148 * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17149 * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17150 the custom_type_info flag of the transparent proxy.
17151 * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17152 objects that supports IRemotingTypeInfo.
17153 * object.h: Added custom_type_info field in transparent proxy.
17155 2003-12-06 Martin Baulig <martin@ximian.com>
17157 * class.c (mono_class_create_from_generic): Removed.
17158 (mono_class_from_generic): Check `ginst->klass' before doing
17159 anything else. This is important to fully support "recursive"
17162 * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17163 empty `generic_inst->klass' before doing anything else.
17165 2003-12-06 Dick Porter <dick@ximian.com>
17170 * locales.c: Use C structs to access class fields. Don't do a
17171 conversion between MonoString and UChar because both are
17172 platform-endian UTF-16. Compare now takes startindex and count
17173 parameters. Add a char overload for IndexOf. Speed up the
17174 invariant string IndexOf.
17176 2003-12-05 Zoltan Varga <vargaz@freemail.hu>
17178 * Makefile.am (monosn_LDADD): Fix parallel build.
17180 2003-12-04 Martin Baulig <martin@ximian.com>
17183 (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17184 (ves_icall_Type_make_array_type): New interncall.
17186 2003-12-04 Martin Baulig <martin@ximian.com>
17188 * locales.c: also change it in the !HAVE_ICU case.
17190 2003-12-04 Dick Porter <dick@ximian.com>
17193 * locales.c: construct_compareinfo is now in CompareInfo, not
17196 2003-12-04 Zoltan Varga <vargaz@freemail.hu>
17198 * image.c (mono_image_load_file_for_image): Cache loaded images in the
17199 image->files array.
17201 * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17204 * assembly.c (mono_assembly_load_references): Only load references
17207 * class.c (mono_class_from_name): Avoid linear search of the
17208 EXPORTEDTYPE table.
17210 * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17212 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
17214 * image.h (MonoImage): Add 'field_cache' field.
17216 * loader.c (mono_field_from_token): Cache field lookups.
17218 * reflection.c (mono_module_get_object): Fix name property.
17220 * icall.c (ves_icall_get_enum_info): Update after changes to
17221 mono_metadata_get_constant_index ().
17223 * icall.c: Get rid of get_type_info icall, use a separate icall for
17224 each type property to avoid needless memory allocations. Fixes #51514.
17226 * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17227 to avoid needless binary searches.
17229 * class.c (class_compute_field_layout): Move the initialization of
17230 field->def_value to mono_class_vtable ().
17232 * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17235 * object.c (mono_object_allocate): Make it inline.
17237 * object.c (mono_object_allocate_spec): Make it inline.
17239 2003-12-02 Dick Porter <dick@ximian.com>
17241 * locales.c (create_NumberFormat): NumberFormatInfo construction.
17242 Patch by Mohammad DAMT (mdamt@cdl2000.com).
17244 2003-12-01 Dick Porter <dick@ximian.com>
17246 * threads.c: Fix signature and call in CreateMutex and
17249 2003-12-01 Dick Porter <dick@ximian.com>
17252 * locales.c: Implement string compares and searching
17254 * object.h: Add extra Thread field
17256 2003-11-30 Zoltan Varga <vargaz@freemail.hu>
17258 * reflection.c (fixup_method): Add support for MonoCMethod.
17260 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
17262 * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
17264 * reflection.c (assembly_name_to_aname): Allow extra characters in
17265 assembly names. Fixes #51468.
17267 2003-11-26 Zoltan Varga <vargaz@freemail.hu>
17269 * exception.c (mono_exception_from_name_domain): New helper function.
17271 * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
17272 exception object in the correct domain.
17274 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
17275 formatting + make a copy a the input data.
17277 * loader.c (mono_get_method_from_token): Methods which contain
17278 native code do not have entries in the ImplMap.
17280 (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
17281 Thanks to Gonzalo for spotting this.
17283 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
17284 patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
17286 * assembly.h (mono_assembly_load_from): Split the second part of
17287 assembly loading into a new public function.
17289 * exception.h (mono_get_exception_bad_image_format): New function.
17291 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
17293 icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
17294 Enumerate all modules inside a dynamic assembly. Fixes #51293.
17296 * icall.c: Add new icall for creating dynamic methods.
17298 * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
17300 * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
17302 * reflection.c (mono_reflection_create_dynamic_method): New icall to
17303 create a dynamic method.
17305 * reflection.c (resolve_object): New helper function.
17307 * reflection.c: Generalize ReflectionMethodBuilder and the functions
17308 which manipulate it so they can also work on dynamic methods.
17310 * reflection.c (reflection_method_builder_to_mono_method): Avoid
17311 creating the MonoReflectionMethodAux structure if it is not needed.
17313 * reflection.h verify.c: Update after changes to object layout.
17315 * reflection.c (method_builder_encode_signature): Fix compilation on
17318 2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
17320 * appdomain.h: Added support for context static fields. Added static_data
17321 field to MonoAppContext and renamed thread_static_fields to a more
17322 generic special_static_fields in MonoAppDomain, since it can now contain
17323 context static fields.
17324 * domain.c: Updated hashtable name.
17325 * object.c: Replaced field_is_thread_static() for a more generic
17326 field_is_special_static() which also checks for context static attribute.
17327 In mono_class_vtable(), added support for static context fields.
17328 * threads.c: Changed methods that manage thread static fields to more
17329 generic methods so they can be reused both for thread and context static
17331 * threads.h: Declared some new methods.
17333 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
17335 * reflection.h: Update after changes to the managed types.
17337 * reflection.c (encode_custom_modifiers): New helper function.
17339 * reflection.c (method_encode_signature): Emit custom modifiers.
17341 * reflection.c (field_encode_signature): Emit custom modifiers.
17343 2003-11-18 Zoltan Varga <vargaz@freemail.hu>
17345 * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
17347 * icall.c (ves_icall_System_ValueType_Equals): New optimized
17350 * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
17353 * object.c (mono_field_get_value_object): New function.
17355 * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
17358 2003-11-17 Zoltan Varga <vargaz@freemail.hu>
17360 * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
17361 return a preallocated out-of-memory exception instance.
17363 * object.c (out_of_memory): Use the new function.
17365 * metadata.c (mono_metadata_parse_type): Handle the case when the byref
17366 flag is before the custom modifiers. Fixes #49802.
17368 2003-11-16 Martin Baulig <martin@ximian.com>
17370 * class.c (mono_class_is_open_constructed_type): Implemented the
17371 MONO_TYPE_GENERICINST case.
17373 2003-11-16 Zoltan Varga <vargaz@freemail.hu>
17375 * assembly.c (mono_assembly_fill_assembly_name): New function to
17376 fill out the MonoAssemblyName structure.
17377 (mono_assembly_open): Use the new function.
17379 * icall.c (fill_reflection_assembly_name): New helper function.
17381 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
17384 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
17386 2003-11-15 Martin Baulig <martin@ximian.com>
17388 * class.c (mono_class_is_open_constructed_type): New public
17389 function; checks whether a type is an open constructed type,
17390 ie. whether it still contains type parameters.
17391 (mono_class_inflate_generic_type): If we're a type parameter and
17392 the inflated type is also a MONO_TYPE_(M)VAR, return the original
17395 * class.h (MonoGenericInst): Added `guint32 is_open'.
17397 * loader.c (method_from_methodspec): Check whether we're an open
17398 or closed constructed type and set `ginst->is_open'.
17400 * reflection.c (mono_reflection_bind_generic_parameters): Check
17401 whether we're an open or closed constructed type and set
17403 (mono_reflection_inflate_method_or_ctor): Don't inflate methods
17404 from open constructed types.
17406 2003-11-15 Martin Baulig <martin@ximian.com>
17408 * reflection.c (mono_reflection_bind_generic_parameters): If we're
17409 a generic instance (instead of a generic type declaration) with
17410 unbound generic parameters, bind them to our actual types.
17412 2003-11-14 Martin Baulig <martin@ximian.com>
17414 * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
17416 * reflection.c (mono_reflection_bind_generic_parameters): If we're
17417 an interface type, populate `res->interfaces' with instantiated
17418 versions of all the interfaces we inherit.
17420 2003-11-13 Aleksey Demakov <avd@openlinksw.com>
17422 * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
17423 when MONO_PATH is set but doesn't contain the install dir.
17425 2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17428 (ves_icall_Type_GetInterfaces): don't return an interface twice when
17429 it's also implemented in base classes. Fixes bug #50927.
17431 2003-11-13 Zoltan Varga <vargaz@freemail.hu>
17433 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
17434 if this method is called from a finalizer. Fixes #50913.
17436 2003-11-12 Miguel de Icaza <miguel@ximian.com>
17438 * threads.c: Implement VolatileRead/VolatileWrite
17440 * icall.c: Add new icalls for VolatileRead/VolatileWrite
17442 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
17444 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
17445 patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
17448 * assembly.c (mono_assembly_open): Fix windows build. Applied patch
17449 from Peter Ross (pro@missioncriticalit.com).
17451 2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
17453 * icall.c: Added internal call for System.Environment::GetMachineConfigPath
17455 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
17457 * assembly.c (mono_assembly_load_references): Disable check because it
17458 triggers on older corlibs which lots of people have.
17460 2003-11-12 Jackson Harper <jackson@ximian.com>
17462 * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17463 load corlib.dll if mscorlib.dll is not found.
17464 * assembly.h: Remove corlib name define.
17467 * image.c: Change corlib name to mscorlib.
17469 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
17471 * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17473 2003-11-11 Miguel de Icaza <miguel@ximian.com>
17475 * appdomain.h: Added loader_optimization here to sync with the C#
17476 code, and add disallow_binding_redirects field.
17478 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
17480 * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17482 * reflection.c (mono_image_build_metadata): Fix crash on modules
17485 * reflection.h (MonoMethodInfo): Track changes to the managed structure.
17487 * icall.c (ves_icall_get_method_info): Return callingConvention as
17490 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
17491 namespaces from the EXPORTEDTYPE table as well.
17493 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
17494 from all modules inside the assembly.
17496 2003-11-11 Martin Baulig <martin@ximian.com>
17498 * reflection.c (mono_reflection_bind_generic_parameters): Make
17499 this work for interfaces.
17501 2003-11-11 Martin Baulig <martin@ximian.com>
17503 * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
17505 2003-11-11 Martin Baulig <martin@ximian.com>
17507 * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
17508 "MonoInflatedMethod" and "MonoInflatedCtor".
17510 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
17512 * reflection.c (resolution_scope_from_image): Use the assembly table
17513 from the manifest module, since other modules don't have it.
17515 * debug-helpers.c (mono_type_full_name): New helper function.
17517 * image.h (MonoAssembly): Change 'dynamic' to a boolean.
17519 * image.c (mono_image_load_file_for_image): New public function which
17520 is a replacement for the load_file_for_image in class.c.
17522 * assembly.c (mono_assembly_load_module): A wrapper for the function
17523 above which does assembly association and reference loading too.
17525 * class.c (mono_class_from_name): Call mono_assembly_load_module.
17527 2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17529 * appdomain.c: not all of the attributes for the full assembly name
17530 are required and the order doesn't matter. Fixes bug #50787.
17532 2003-11-10 Dick Porter <dick@ximian.com>
17534 * locales.c: Use platform-endian UTF16
17536 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
17538 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17540 2003-11-10 Martin Baulig <martin@ximian.com>
17543 (mono_metadata_load_generic_params): Make this actually work.
17545 * reflection.c (mono_reflection_bind_generic_parameters): If our
17546 parent is a generic instance, pass all the `types' to it, no
17547 matter whether it has the same number of type parameters or not.
17549 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
17551 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
17553 * assembly.c (mono_assembly_load_references): Move the image<->assembly
17554 assignment code to this function so it gets called recursively for all
17557 * image.c (load_modules): Remove the assembly assignment since it is
17558 now done by mono_assembly_load_references.
17560 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
17561 Add 'module' argument.
17562 (mono_module_get_types): New helper function.
17563 (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
17565 2003-11-08 Martin Baulig <martin@ximian.com>
17567 * class.c (mono_class_inflate_generic_method): Interface method
17568 don't have a header.
17570 * reflection.c (mono_image_get_methodspec_token): Take an
17571 additional `MonoGenericInst *' argument instead of reading it from
17572 the header; this is necessary to support interfaces.
17573 (mono_image_create_token): Pass the `MonoGenericInst *' from the
17574 MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
17575 (inflated_method_get_object): Take an additional `MonoGenericInst *'
17578 * reflection.h (MonoReflectionInflatedMethod): Added
17579 `MonoGenericInst *ginst'.
17581 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
17583 * gc.c (mono_domain_finalize): Fix compilation for no GC case.
17585 2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
17587 * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
17589 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
17592 (reflection_methodbuilder_from_method_builder):
17593 (reflection_methodbuilder_from_ctor_builder): New helper functions to
17594 initialize a ReflectionMethodBuilder structure.
17595 (mono_image_get_methodbuilder_token):
17596 (mono_image_get_ctorbuilder_token): New functions to emit memberref
17597 tokens which point to types in another module inside the same assembly.
17599 * reflection.c: Use the new helper functions.
17601 * reflection.c (mono_image_basic_init): Initialize basedir and culture.
17603 * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
17604 instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
17606 * reflection.c (resolution_scope_from_image): Emit a moduleref if
17609 * reflection.c (mono_image_build_metadata): Emit metadata only for the
17610 current module. Emit the manifest only for the main module.
17612 * reflection.c (mono_image_create_token): Add assertion when a
17613 memberref needs to be created.
17615 * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
17617 * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
17618 larger buffer for the custom attribute blob. Fixes #50637.
17620 2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17622 * threadpool.c: notify listener on async processing handles after
17623 invoking the async callback. Thanks to Zoltan.
17625 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
17627 * reflection.c (create_dynamic_mono_image): Call mono_image_init to
17628 avoid code duplication.
17630 * reflection.h (MonoDynamicImage): New type which is currently unused,
17631 but will be used through the ref.emit code in place of
17632 MonoDynamicAssembly.
17634 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17637 * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
17638 a MonoDynamicImage instead of just a MonoImage.
17640 * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
17641 icalls to ModuleBuilder but keep their semantics, so they will work
17642 with moduleb->assemblyb. This will change later.
17644 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
17646 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
17649 * reflection.c (mono_image_build_metadata): Avoid creation of a default
17650 main module, since it is now done by the managed code.
17652 2003-11-03 Martin Baulig <martin@ximian.com>
17654 * reflection.c (mono_reflection_inflate_method_or_ctor): Set
17655 `ginst->klass' here.
17656 (method_encode_methodspec): Don't use the `ginst->generic_method's
17657 klass if it's a generic instance, use `ginst->klass' in this case.
17659 2003-11-03 Martin Baulig <martin@ximian.com>
17661 * reflection.c (mono_image_get_generic_method_param_info):
17662 Removed, use mono_image_get_generic_param_info() instead.
17663 (mono_image_get_type_info): Write the GenericParam table before
17664 the Method table. This is neccessary because in the GenericParam
17665 table, type parameters of the class (ie. '!0' etc.) must come
17666 before the ones from its generic methods (ie. '!!0' etc).
17668 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
17670 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
17672 2003-11-02 Martin Baulig <martin@ximian.com>
17674 * reflection.c (create_generic_typespec): Take a
17675 `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
17676 the generic parameters from it.
17678 2003-11-02 Martin Baulig <martin@ximian.com>
17680 * reflection.c (fieldref_encode_signature): Take a `MonoType *'
17681 instead of a `MonoClassField *' since we just need the type.
17682 (create_generic_typespec): New static function. Creates a
17683 TypeSpec token for a generic type declaration.
17684 (mono_image_get_generic_field_token): New static function.
17685 (mono_image_create_token): If we're a FieldBuilder in a generic
17686 type declaration, call mono_image_get_generic_field_token() to get
17689 2003-11-02 Martin Baulig <martin@ximian.com>
17692 (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
17693 `MonoReflectionGenericInst *declaring_type' and
17694 `MonoReflectionGenericInst *reflected_type' fields.
17696 * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
17697 `MonoReflectionGenericInst *declaring_type' and a
17698 `MonoReflectionGenericInst *reflected_type' argument instead of a
17699 single `MonoReflectionGenericInst *type' one. Set
17700 `res->declaring_type' and `res->reflected_type' from them.
17701 (mono_reflection_inflate_field): Likewise.
17703 2003-11-02 Martin Baulig <martin@ximian.com>
17705 * class.c (mono_class_setup_vtable): Don't store generic methods
17708 2003-11-02 Martin Baulig <martin@ximian.com>
17710 * reflection.h (MonoReflectionGenericInst): Added
17711 `MonoReflectionType *declaring_type'.
17713 * reflection.c (mono_reflection_bind_generic_parameters): Use
17714 `if (tb->parent)' instead of `klass->parent'.
17716 2003-11-01 Zoltan Varga <vargaz@freemail.hu>
17718 * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
17719 with an empty ASSEMBLY table.
17721 * reflection.c (mono_image_build_metadata): Avoid using the same loop
17722 variable in the inner and outer loops.
17724 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
17726 * metadata.h (mono_metadata_make_token): Put parentheses around macro
17729 * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
17731 * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
17732 icalls. Instead, do everything in managed code. This is needed since
17733 it is hard to restore the original domain etc. in unmanaged code in the
17734 presence of undeniable exceptions.
17736 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
17737 New icalls to push and pop appdomain refs.
17739 2003-10-31 Martin Baulig <martin@ximian.com>
17741 * class.c (inflate_generic_type): Renamed to
17742 mono_class_inflate_generic_type() and made it public.
17744 * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
17747 * loader.c (mono_field_from_memberref): Also set the retklass for
17750 * fielder.c (mono_image_get_inflated_field_token): New static
17751 method; creates a metadata token for an inflated field.
17752 (mono_image_create_token, fixup_method): Added support for
17753 "MonoInflatedField".
17754 (fieldbuilder_to_mono_class_field): New static function.
17755 (mono_reflection_inflate_field): New public function.
17758 (MonoReflectionGenericInst): Added `MonoArray *fields'.
17759 (MonoReflectionInflatedField): New typedef.
17761 2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
17763 * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
17764 for Solaris and other platforms without s6_addr16
17766 2003-10-30 Martin Baulig <martin@ximian.com>
17768 * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
17769 argument instead of two.
17770 (mono_class_inflate_generic_signature): Likewise.
17771 (inflate_generic_header): Likewise.
17772 (mono_class_inflate_generic_method): Likewise. In addition, if
17773 `ginst->klass' is set, it becomes the new `method->klass'.
17775 * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
17778 * reflection.c (encode_generic_method_sig): Write a 0xa as the
17779 first byte. [FIXME]
17780 (method_encode_methodspec): If we have generic parameters, create
17781 a MethodSpec instead of a MethodRef.
17782 (fixup_method): Added support for "MonoInflatedMethod" and
17783 "MonoInflatedCtor".
17784 (mono_image_create_token): Added support for "MonoInflatedMethod"
17785 and "MonoInflatedCtor".
17786 (inflated_method_get_object): New static function; returns a
17787 managed "System.Reflection.MonoInflatedMethod" object.
17788 (mono_reflection_bind_generic_method_parameters): Return a
17789 `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
17790 (mono_reflection_inflate_method_or_ctor): Likewise.
17791 (mono_image_get_generic_method_param_info): Initialize unused
17793 (mono_image_get_generic_param_info): Likewise.
17795 * reflection.h (MonoReflectionInflatedMethod): New public
17796 typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
17797 "S.R.MonoInflatedCtor" classes.
17799 * loader.c (method_from_memberref): If we're a TypeSpec and it
17800 resolves to a generic instance, inflate the method.
17802 2003-10-28 Dick Porter <dick@ximian.com>
17804 * object.c (mono_runtime_run_main): Convert command-line arguments
17805 into utf8, falling back to the user's locale encoding to do so.
17807 2003-10-27 Zoltan Varga <vargaz@freemail.hu>
17809 * loader.c (mono_get_method_from_token): Avoid looking up the icalls
17812 * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
17814 * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
17815 up icalls at method definition time. Partially fixes #33569.
17817 2003-10-25 Zoltan Varga <vargaz@freemail.hu>
17819 * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
17820 marshalling of arrays. Fixes #50116.
17822 * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
17824 * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
17825 points to a vtable in the dying appdomain.
17827 * appdomain.c (mono_domain_unload): Move the notification of OnUnload
17828 listeners into unmanaged code inside the lock.
17830 * object.c (mono_class_vtable): Turn off typed allocation in non-root
17831 domains and add some comments.
17833 2003-10-25 Martin Baulig <martin@ximian.com>
17835 * class.h (MonoGenericInst): Added `MonoClass *klass' field.
17837 * image.h (MonoImage): Added `GHashTable *typespec_cache'.
17839 * metadata.c (mono_metadata_parse_generic_inst): Renamed to
17840 `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
17841 currently parsing. Create the generic class and store it in
17842 `generic_inst->klass' before parsing the type arguments. This is
17843 required to support "recursive" definitions; see mcs/tests/gen-23.cs
17845 (mono_type_create_from_typespec): Use a new `image->typespec_cache'
17846 to support recursive typespec entries.
17848 * class.c (mono_class_setup_parent): If our parent is a generic
17849 instance, we may get called before it has its name set.
17850 (mono_class_from_generic): Splitted into
17851 mono_class_create_from_generic() and mono_class_initialize_generic().
17853 2003-10-25 Martin Baulig <martin@ximian.com>
17855 * icall.c (ves_icall_Type_BindGenericParameters): Return a
17856 `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
17857 ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
17858 ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
17860 * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
17861 (create_typespec): Likewise.
17862 (mono_reflection_bind_generic_parameters): Return a
17863 `MonoReflectionGenericInst *' instead of a `MonoClass *'.
17864 (mono_reflection_inflate_method_or_ctor): New public function.
17866 * reflection.h (MonoReflectionGenericInst): New typedef.
17868 2003-10-24 Zoltan Varga <vargaz@freemail.hu>
17870 * object.c (mono_class_proxy_vtable): Run the whole vtable construction
17871 inside the domain lock. Fixes #49993.
17873 * object.c (mono_class_vtable): When typed allocation is used,
17874 allocate vtables in the GC heap instead of in the mempool, since the
17875 vtables contain GC descriptors which are used by the collector even
17876 after the domain owning the mempool is unloaded.
17878 * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
17880 * domain.c (mono_domain_unload): Rename to mono_domain_free to better
17881 reflect what it does. Also invalidate mempools instead of freeing
17882 them if a define is set.
17884 * appdomain.h (MonoAppDomainState): New enumeration to hold the state
17887 * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
17888 hold the finalizable objects in this domain.
17890 * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
17893 * appdomain.c (mono_domain_set): New function to set the current
17894 appdomain, but only if it is not being unloaded.
17896 * appdomain.c threads.c threadpool.c object.c: Avoid entering an
17897 appdomain which is being unloaded.
17899 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
17900 unloading of the root appdomain.
17902 * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
17903 icall to execute a method in another appdomain. Intended as a
17904 replacement for InternalSetDomain, which can confuse the code
17905 generation in the JIT.
17907 * appdomain.c (mono_domain_is_unloading): New function to determine
17908 whenever an appdomain is unloading.
17910 * appdomain.c (mono_domain_unload): New function to correctly unload
17913 * assembly.c (mono_assembly_load_references): Check that an assembly
17914 does not references itself.
17916 * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
17917 domain manually, it asks the finalizer thread to do it, then waits for
17918 the result. Also added a timeout.
17920 * icall.c: Register the new icalls.
17922 * threads.h threads.c: Export the mono_gc_stop_world and
17923 mono_gc_start_world functions.
17925 * mempool.h mempool.c (mono_mempool_invalidate): New debugging
17926 function to fill out the mempool with 0x2a.
17928 2003-10-22 Zoltan Varga <vargaz@freemail.hu>
17930 * reflection.h (MonoReflectionMethodAux): New structure to store
17931 information which is rarely used, thus is not in the MonoMethod
17934 * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
17935 store the aux info.
17937 * reflection.c (mono_methodbuilder_to_mono_method): Store param names
17938 and marshalling info into the aux structure.
17940 * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
17941 from the aux structure.
17943 * loader.c (mono_method_get_param_names): Retrieve the param names from
17946 2003-10-21 Zoltan Varga <vargaz@freemail.hu>
17948 * exception.h exception.c: Add AppDomainUnloadedException && fix
17951 2003-10-21 Dick Porter <dick@ximian.com>
17954 (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
17955 patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
17957 2003-10-21 Martin Baulig <martin@ximian.com>
17959 * reflection.c (mono_reflection_bind_generic_parameters):
17960 `klass->parent' is NULL for interfaces.
17962 2003-10-21 Martin Baulig <martin@ximian.com>
17964 * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17966 2003-10-20 Zoltan Varga <vargaz@freemail.hu>
17968 * exception.c (mono_exception_from_name_msg): New helper function for
17969 creating exceptions and initializing their message field.
17971 * exception.c: Simplify functions using the new helper.
17973 * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
17976 * object.h object.c: Remove G_GNUC_NORETURN from the signature of
17977 mono_raise_exception, since otherwise gcc doesn't generate the function
17978 epilog for raise_exception, confusing the stack unwinding in the JIT.
17981 * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
17982 PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
17985 2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17987 * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
17990 2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
17992 * icall.c: Removed GetUninitializedObject method because
17993 AllocateUninitializedClassInstance does the same.
17995 2003-10-18 Martin Baulig <martin@ximian.com>
17997 * class.c (inflate_generic_signature): Renamed to
17998 mono_class_inflate_generic_signature() and made it public.
17999 (my_mono_class_from_generic_parameter): New static function; if we
18000 don't already have the generic parameter's MonoClass, create a
18001 very simple one which is just used internally in the runtime and
18002 not passed back to managed code.
18004 * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18006 * metadata.h (MonoMethodSignature): Moved the
18007 `MonoGenericParam *gen_params' to the MonoMethodHeader.
18008 (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18010 * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18011 ves_icall_MonoMethod_GetGenericArguments(); this is now an
18012 interncall on the MonoMethod class, not on MethodInfo.
18013 (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18014 calling mono_reflection_bind_generic_method_parameters() directly.
18016 * loader.c (mono_method_get_signature): If this is a MethodSpec;
18017 return the already computed `method->signature'.
18018 (method_from_methodspec): New static function to load a method
18019 from a MethodSpec entry.
18020 (mono_get_method_from_token): Call the new method_from_methodspec()
18021 for MethodSpec tokens.
18022 (mono_get_method_from_token): If we're a generic method, load the
18025 * reflection.c (mono_image_get_memberref_token): Allow
18026 MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18028 (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18029 (mono_image_create_token): First check whether it's a generic
18030 method (so we'd need to create a MethodSpec), then do the other
18032 (mono_reflection_bind_generic_method_parameters): Return a
18033 `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18034 called directly from the interncall.
18036 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
18038 * reflection.c (load_public_key): Move loading of the public key
18041 * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18043 * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18046 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18047 culture, hash_alg and public_key. Fixes #49555.
18049 2003-10-17 Martin Baulig <martin@ximian.com>
18051 * class.h (MonoGenericInst): Moved this declaration here and added
18052 `MonoMethod *generic_method'.
18055 (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18056 (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18058 * metadata.c (mono_metadata_type_equal): Two types of
18059 MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18060 index; ie. don't compare the address of the `MonoGenericParam'
18062 (mono_metadata_load_generic_params): Removed the `MonoMethod
18065 * metadata.h (MonoGenericInst): Moved declaration to class.h.
18066 (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18068 * reflection.c (method_encode_signature): Encode the number of
18069 generic parameters.
18070 (encode_generic_method_sig): New static function.
18071 (method_encode_methodspec): New static function; creates an entry
18072 in the MethodSpec table for a generic method.
18073 (mono_image_get_methodspec_token): New static function.
18074 (mono_image_create_token): Call mono_image_get_methodspec_token()
18075 for generic methods.
18076 (mono_reflection_bind_generic_method_parameters): New public
18077 function. Instantiates a generic method.
18079 2003-10-16 Martin Baulig <martin@ximian.com>
18081 * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18082 *gen_params' here from MonoMethodHeader.
18084 * metadata.c (mono_metadata_parse_method_signature): If we have
18085 generic parameters, initialize `method->gen_params' and then set
18086 the correct `type->data.generic_param' in all the parameters.
18088 2003-10-16 Zoltan Varga <vargaz@freemail.hu>
18090 * threads.c (mono_threads_get_default_stacksize): New function to
18091 return the default stacksize.
18093 * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18094 termination of the finalizer thread, since the previous method had
18095 race conditions. Fixes #49628.
18097 * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18098 as for the other managed threads.
18100 2003-10-16 Martin Baulig <martin@ximian.com>
18102 * class.c (inflate_generic_signature): Copy `generic_param_count'
18105 * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18108 * metadata.c (mono_metadata_parse_method_signature): Actually set
18109 the `method->generic_param_count' here.
18110 (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18112 2003-10-15 Zoltan Varga <vargaz@freemail.hu>
18114 * object.h: Add a new field to TypedRef to simplify the implementation
18115 of the REFANY opcodes in the JIT.
18117 * icall.c: Make use of the new field.
18119 * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18122 2003-10-15 Martin Baulig <martin@ximian.com>
18124 * class.c (mono_class_from_gen_param): Renamed to
18125 mono_class_from_generic_parameter() and moved most of the
18126 functionality from mono_reflection_define_generic_parameter()
18127 here; ie. we create a "real" class here.
18128 (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18129 MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18130 previously been called.
18132 * class.h (MonoGenericParam): Moved the declaration of this struct
18133 here from metadata.h and added `MonoMethod *method'.
18135 * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18138 * loader.c (mono_get_method_from_token): If we have any generic
18139 parameters, call mono_metadata_load_generic_params() to read them
18140 from the MONO_TABLE_GENERICPAR.
18142 * metadata.c (mono_metadata_load_generic_params): Added
18143 `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18145 * metadata.h (MonoMethodSignature): Replaced
18146 `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18147 (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18149 * reflection.c (mono_reflection_define_generic_parameter): Moved
18150 most of the functionality into the new
18151 mono_class_from_generic_parameter(); set the `method' field if
18152 we're a method parameter.
18154 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
18156 * marshal.c (emit_struct_conv): if native size is 0
18159 2003-10-14 Martin Baulig <martin@ximian.com>
18161 * icall.c: The generics API has changed in the spec since it was
18162 added to System.Type; these modifications make it match the spec
18164 (ves_icall_Type_GetGenericParameters): Renamed to
18165 `ves_icall_Type_GetGenericArguments'.
18166 (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18167 (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18168 `ves_icall_MonoType_get_HasGenericArguments'.
18169 (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18170 `ves_icall_MonoType_get_IsGenericParameter'.
18171 (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18172 this is no interncall anymore.
18173 (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18174 `ves_icall_TypeBuilder_get_IsGenericParameter'.
18176 2003-10-14 Martin Baulig <martin@ximian.com>
18178 * reflection.c (mono_reflection_bind_generic_parameters): Also
18179 inflate generic methods if we're reading the class from IL.
18181 2003-10-13 Martin Baulig <martin@ximian.com>
18183 * reflection.c (mono_reflection_define_generic_parameter): This
18184 method isn't called directly from the icall anymore; take a
18185 `MonoReflectionAssemblyBuilder *' so we can use this for type and
18186 method generic parameters.
18187 (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18188 (method_builder_encode_signature): Encode generic parameters.
18189 (mono_image_get_method_info): Write generic params to the
18190 MONO_TABLE_GENERICPARAM table.
18192 * reflection.h (MonoReflectionMethodBuilder): Added
18193 `MonoArray *generic_params'.
18195 * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18197 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18198 wrapper for mono_reflection_define_generic_parameter().
18199 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
18201 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
18203 * marshal.h: Add missing function to fix build.
18205 * marshal.c (mono_marshal_get_native_wrapper): Add support for
18206 the SetLastError pinvoke attribute.
18208 * marshal.c (mono_marshal_set_last_error): New helper function called
18209 by the generated code.
18211 * marshal.c (mono_mb_emit_branch): New helper function.
18213 * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18215 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18216 classes as parameters and return values of delegates. Fixes #29256.
18218 2003-10-12 Bernie Solomon <bernard@ugsolutions.com>
18220 * locales.c: use gint32 in non HAVE_ICU case
18222 2003-10-11 Martin Baulig <martin@ximian.com>
18224 * mono-debug.c (mono_debug_add_method): Added a workaround for
18227 2003-10-10 Zoltan Varga <vargaz@freemail.hu>
18229 * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18230 delegates passed to native code must use the STDCALL calling
18231 convention. Fixes #35987.
18233 2003-10-10 Martin Baulig <martin@ximian.com>
18235 * class.c (inflate_generic_type): If we're inflating for a generic
18236 type instance (and not for a generic method), return
18237 MONO_TYPE_MVAR unchanged.
18239 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18241 * string-icalls.c: Join ignores null strings in the source array.
18242 * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18243 * threads.c: GetAvailableTheads is slightly more accurate.
18245 2003-10-09 Bernie Solomon <bernard@ugsolutions.com>
18247 * threads.h threads.c : add mono_threads_set_default_stacksize
18248 and pass default to CreateThread calls.
18250 2003-10-09 Dick Porter <dick@ximian.com>
18254 * locales.c: Internal calls for constructing CultureInfo and
18255 related objects from libicu (if its available.)
18257 2003-10-09 Zoltan Varga <vargaz@freemail.hu>
18259 * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
18261 2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18263 * threadpool.c: added an argument to async_invoke_thread that is the
18264 item to process, pass the MonoAsyncResult to the thread start function
18265 when creating a new thread. This way we don't need to acquire any lock
18266 when we're creating a new thread. Readded a semaphore for faster
18267 response times (instead of that Sleep i added).
18269 2003-10-08 Bernie Solomon <bernard@ugsolutions.com>
18271 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18272 get daylight change dates better on Windows, fix handling
18273 of platforms without tm_gmtoff.
18275 2003-10-06 Martin Baulig <martin@ximian.com>
18277 * class.c (inflate_generic_method): Renamed to
18278 mono_class_inflate_generic_method() and made public.
18279 (mono_class_init): Don't inflate the generic methods here.
18280 (mono_class_from_generic): Added `gboolean inflate_methods'
18281 argument. Inflate the methods here.
18283 * loader.c (mono_method_get_param_names): Ignore instances of
18284 generic types for the moment.
18286 * reflection.c (fixup_method): Added support for inflated methods.
18287 (mono_image_create_token): Use mono_image_get_methodref_token()
18288 for inflated methods.
18289 (mono_custom_attrs_from_param): Ignore instances of generic types
18291 (mono_reflection_bind_generic_parameters): New public function.
18292 Moved all the functionality from
18293 ves_icall_Type_BindGenericParameters() here and added support for
18295 (mono_reflection_define_generic_parameter): Initialize
18296 `klass->methods' here.
18298 * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
18299 functionality into mono_reflection_define_generic_parameter().
18300 (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
18301 TypeBuilder, return that TypeBuilder.
18303 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18305 * appdomain.c: removed mono_delegate_semaphore.
18308 (mono_thread_pool_add): moved hash table creation inside and the thread
18309 creation outside of the critical region.
18310 (mono_thread_pool_finish): removed obsolete code.
18311 (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
18312 continue or exit the thread depending on the queue.
18314 2003-10-07 Bernie Solomon <bernard@ugsolutions.com>
18316 * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
18317 marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
18318 handle more bool marshalling options
18320 2003-10-07 Zoltan Varga <vargaz@freemail.hu>
18322 * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
18323 arrays of structs. Also add a more descriptive error message when
18324 a structure member is marshalled as LPArray.
18326 2003-10-06 Zoltan Varga <vargaz@freemail.hu>
18328 * marshal.c (mono_marshal_get_native_wrapper): Add support for
18329 marshalling arrays of complex types. Fixes #29098. Also remove an
18330 usused and incomplete function.
18332 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18334 * gc.c: report heap_size - free_bytes as total memory allocated
18337 2003-10-05 Zoltan Varga <vargaz@freemail.hu>
18339 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally
18340 fix timezone handling problems on Windows.
18342 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
18343 asserts when the year is outside the range handled by ms the functions.
18345 * class.c (setup_interface_offsets): If the class is an interface,
18346 fill out its interface_offsets slot.
18348 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18350 * threadpool.c: mark threadpool threads as background.
18352 2003-10-03 Bernie Solomon <bernard@ugsolutions.com>
18354 * decimal.c - define DECINLINE to nothing if not using GCC
18356 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
18358 * assembly.c: More refcount fixes.
18360 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18362 * string-icalls.c: if we're not trimming, return the same string.
18363 When not splitting, don't create a new string.
18365 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18368 (mono_image_open): increment the ref_count inside the critical section.
18370 2003-10-02 Zoltan Varga <vargaz@freemail.hu>
18372 * image.c (mono_image_open): Fix reference counting bug.
18374 2003-09-30 Bernie Solomon <bernard@ugsolutions.com>
18376 * marshal.c (mono_marshal_type_size) struct alignment changed for
18377 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for
18378 64bits. Avoid leak in mono_marshal_get_native_wrapper when
18379 mono_lookup_pinvoke_call throws.
18381 2003-09-30 Zoltan Varga <vargaz@freemail.hu>
18383 * reflection.c (mono_reflection_parse_type): Fix #49114.
18385 * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
18386 temporary workaround for cygwin header problem.
18388 * object.c (mono_object_isinst): Synchronize this with the code
18389 generated by the JIT for casts.
18391 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
18393 * reflection.c (encode_type): Fix #38332.
18395 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
18397 * marshal.c (mono_marshal_method_from_wrapper): New function to return
18398 the original method from the wrapper method.
18400 2003-09-25 Martin Baulig <martin@ximian.com>
18402 * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
18403 interncall since it was identical to `Type.GetGenericTypeDefinition()'.
18404 (ves_icall_Type_get_IsGenericInstance): New interncall.
18406 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
18408 * object.c: fix cast warning in big endian code.
18410 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
18412 * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
18414 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18416 * assembly.c: don't call check_env from mono_assembly_load. It's
18417 already done once in mono_assemblies_init and may cause headaches when
18418 multiple threads are loading assemblies.
18420 2003-09-19 Martin Baulig <martin@ximian.com>
18422 * reflection.c (mono_reflection_define_generic_parameter): Don't
18423 allocate `klass->methods', set `klass->flags' to
18424 TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
18426 2003-09-18 Martin Baulig <martin@ximian.com>
18428 * class.c (mono_class_init): Don't create `class->methods' if it's
18429 already initialized.
18431 * metadata.c (mono_metadata_load_generic_params): Make this
18434 * reflection.c (mono_reflection_define_generic_parameter): Set
18435 parent class and interfaces from the constraints.
18437 * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
18438 to keep this struct in sync with the declaration in TypeBuilder.cs.
18440 2003-09-17 Martin Baulig <martin@ximian.com>
18442 * metadata.h (MonoType): Replaced the data's `int type_param'
18443 field with `MonoGenericParam *generic_param'.
18444 (MonoGenericParam): Added `MonoClass *klass'.
18446 * class.c (mono_class_from_gen_param): Removed the
18447 `MonoImage *image' and `int type_num' arguments.
18449 * metadata.c (mono_metadata_parse_generic_param): New static
18450 method; creates a MonoGenericParam which just contains the index.
18451 (do_mono_metadata_parse_type): Call
18452 mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
18455 * reflection.c (mono_image_typedef_or_ref): Generic type
18456 parameters may be in the same assembly, but never use a typedef
18458 (mono_reflection_define_generic_parameter): We're now creating a
18459 "real" class for the type parameter; it's now safe to call
18460 mono_class_from_mono_type() on the class'es type, it'll do the
18463 2003-09-16 Martin Baulig <martin@ximian.com>
18465 * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18466 `symfile->range_entry_size' and `symfile->class_entry_size' here;
18467 the `symfile' data structure must be fully initialized before it
18468 gets added to the table.
18470 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
18472 * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18474 * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18475 class init trampolines.
18477 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
18479 * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18480 to the built-in profiler to turn off time and allocation profiling
18483 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
18485 * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
18488 * debug-helpers.c (mono_method_full_name): Print the wrapper type
18489 in human readable form.
18491 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
18493 * reflection.c icall.c: Fixed warnings.
18495 * image.c (load_class_names): Use a temporary hash table to hold the
18496 namespaces in order to avoid doing many string comparisons.
18498 * image.h: Fix typo.
18500 * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
18501 Pass NULL instead of g_direct_equal to the GHashTable constructor
18502 since the NULL case is short-circuited inside g_hash_table_lookup,
18503 leading to better performance.
18505 * metadata.c (mono_metadata_custom_attrs_from_index): New function to
18506 obtain the first custom attribute for a given index. Depends on the
18507 CustomAttribute table being sorted by the parent field.
18509 * reflection.c (mono_custom_attrs_from_index): Use the new function
18510 for better performance.
18512 2003-09-07 Martin Baulig <martin@ximian.com>
18514 * class.c (mono_class_init): If we're a generic instance, inflate
18515 all our methods instead of loading them from the image.
18516 (mono_class_from_generic): Set `class->methods = gklass->methods'.
18518 2003-09-07 Martin Baulig <martin@ximian.com>
18520 * mono-debug-debugger.c: Added support for constructors.
18522 2003-09-06 Martin Baulig <martin@ximian.com>
18524 * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
18527 * reflection.c (mono_reflection_setup_generic_class): Call
18528 ensure_runtime_vtable() to create the vtable.
18530 2003-09-05 Martin Baulig <martin@ximian.com>
18532 * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
18535 2003-09-04 Martin Baulig <martin@ximian.com>
18537 * reflection.c (mono_reflection_define_generic_parameter): Generic
18538 parameters start with zero.
18540 2003-09-04 Martin Baulig <martin@ximian.com>
18542 * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18544 * reflection.h (MonoReflectionGenericParam): New typedef.
18545 (MonoReflectionTypeBuilder): Added `generic_params' fields to get
18546 the generic parameters from the managed TypeBuilder.
18548 * reflection.c (mono_reflection_define_generic_parameter): New function.
18549 (mono_reflection_create_runtime_class): Encode generic parameters.
18550 (mono_reflection_setup_generic_class): New function; this is
18551 called after adding adding all generic params to the TypeBuilder.
18552 (encode_type): Added MONO_TYPE_VAR.
18554 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
18556 * class.h class.c (mono_class_needs_cctor_run): Moved this method
18559 * assembly.h assembly.c: Moved the AOT loading code into an assembly
18562 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
18564 * reflection.h reflection.c class.h class.c: Delete duplicate
18565 definition of mono_type_get_name () from reflection.c and export the
18568 * class.c: Class loading fixes from Bernie Solomon
18569 (bernard@ugsolutions.com).
18571 * reflection.c: Endianness fixes from Bernie Solomon
18572 (bernard@ugsolutions.com).
18574 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
18576 * assembly.h assembly.c: Define a file format version for AOT
18579 * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
18581 * appdomain.h (MonoJitInfo): New field to determine whenever the
18582 code is domain neutral.
18584 2003-08-31 Miguel de Icaza <miguel@ximian.com>
18586 * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
18588 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
18590 * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir):
18591 (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
18592 Avoid caching the result since strings must be domain specific. Fixes
18595 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
18597 * marshal.c (mono_marshal_init): Make this callable multiple times
18598 since it is hard to find a correct place to call it.
18600 * object.c (mono_runtime_class_init): Execute static constructors in
18601 the correct appdomain.
18603 * image.c (build_guid_table): Handle the case when multiple images have
18606 2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18608 * icall.c: added a couple of icalls for System.Web.
18610 2003-08-28 Martin Baulig <martin@ximian.com>
18612 * icall.c (ves_icall_Type_BindGenericParameters): Use
18613 `klass->generic_inst' instead of `&klass->byval_arg' in the
18614 mono_type_get_object() call. The returned type must be
18615 MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
18617 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
18621 * object.c (mono_class_proxy_vtable): Make it thread safe.
18623 * pedump.c: Fix warning.
18625 * object.c appdomain.h: Get rid of metadata_section.
18626 It is no longer needed and it was causing deadlocks with domain->lock.
18628 * appdomain.c (add_assemblies_to_domain): Make it thread safe.
18630 2003-08-26 Martin Baulig <martin@ximian.com>
18632 * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
18634 2003-08-26 Martin Baulig <martin@ximian.com>
18636 * pedump.c (main): Call mono_metadata_init(),
18637 mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
18638 and mono_loader_init().
18640 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
18642 * loader.h: Add missing include to fix build.
18644 * image.h: mono_image_load_references is no more.
18646 * assembly.c: Reworked assembly loading to make it really thread safe.
18647 After these changes, the assembly returned by mono_assembly_open is
18648 fully initialized, i.e. all its references assemblies are loaded.
18650 * assembly.c (mono_image_load_references): Renamed to
18651 mono_assembly_load_references, and made private, since clients no
18652 longer need to call it.
18654 * class.c: Removed calls to mono_assembly_load_references, since it was
18655 a source of deadlocks.
18657 * loader.h loader.c class.h class.c: Protect data structures using a
18658 new lock, the loader lock.
18660 * class.c (mono_class_setup_vtable): Create temporary hash tables and
18661 GPtrArrays only when needed.
18663 * class.c (mono_class_layout_fields): Ignore the dummy field inserted
18664 into empty structures by mcs. Fixes pinvoke7.cs.
18666 * domain.c (mono_init): Call a new initialization function.
18668 * appdomain.c (mono_runtime_init): Call the new initializer function
18669 of the marshal module.
18671 * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
18672 inserted into empty structures by mcs. Fixes pinvoke7.cs.
18674 * marshal.h marshal.c: Added locks around the wrapper caches to make
18675 this module thread safe.
18677 * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
18678 this argument. Fixes pinvoke1.exe.
18680 2003-08-25 Lluis Sanchez <lluis@ximian.com>
18682 * object.h: Added call_type field to MonoMethodMessage and the corresponding
18683 enumeration of values. Removed fields to store remote call output values in
18684 MonoAsyncResult. Not needed any more.
18685 * object.c: Initialize call_type and async_result fields in mono_message_init.
18686 * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
18687 dispatching the message.
18688 mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
18689 async call to finish. To do it use a message with EndInvoke call type.
18691 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
18693 * loader.h loader.c (mono_method_hash_marhal_info): New function which
18694 determines whenever a method has marshalling info.
18696 2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18698 * assembly.c: fix the build on windows.
18700 2003-08-22 Lluis Sanchez <lluis@ximian.com>
18702 * object.cs: Fixed bug #47785.
18704 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
18706 * string-icalls.c (StringReplace): If their are no occurances of
18707 the old string found return a reference to the supplied
18708 string. This saves some memory and matches MS behavoir.
18710 2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18712 * socket-io.c: fixed compilation for systems that define AF_INET6
18713 and don't define SOL_IP/SOL_IPV6.
18715 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
18717 * object.c (mono_object_isinst): Fix casts to TransparentProxy in
18718 the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
18720 * rawbuffer.c rawbuffer.h: Make this module thread safe.
18722 * domain.c: Make this module thread safe.
18724 * domain.c (mono_init): Call new initialization function.
18726 * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
18727 reference types too. Fixes #38812.
18729 * image.c (mono_image_init): Fixed warnings.
18731 * class.c (mono_class_from_typeref): Handle assembly load failure
18734 * appdomain.c (add_assemblies_to_domain): Handle the case when
18735 the references of an assembly are not yet loaded.
18737 * metadata.c image.c assembly.c: Moved initialization of global
18738 variables to a separate function called at startup since lazy
18739 initialization of these variables is not thread safe.
18741 * image.c assembly.c: Made this module thread safe by adding locks in
18742 the appropriate places.
18744 * domain.c (mono_init): Call the new initialization functions of the
18747 2003-08-20 Lluis Sanchez Gual <lluis@ximian.com>
18749 * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
18750 make a direct call. It is proxy's work to make the call asynchronous.
18751 mono_delegate_end_invoke(): If the targe is a proxy, just collect
18753 * object.cs: mono_method_call_message_new(): read AsyncResult and
18754 state object from parameters list, if this info is requested.
18755 * object.h: Added fields to store remote call output values in
18756 MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
18758 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18760 * object.h: add needed fields to MonoThread.
18761 * threads.c, threads.h: allow registering a function to cleanup data
18762 allocated per thread by the JIT.
18764 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18766 * loader.h: portability fix by Bernie Solomon
18767 * <bernard@ugsolutions.com>.
18769 2003-08-16 Zoltan Varga <vargaz@freemail.hu>
18771 * reflection.h reflection.c (mono_param_get_objects): Changed this to
18772 return a MonoArray. This simplifies the code and also ensures that
18773 the cache allways contains an object reference as a value.
18775 * icall.c (ves_icall_get_parameter_info): Simplified using the new
18778 2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18780 * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
18781 fixes a problem with byte ordering when getting the address family for
18784 2003-08-15 Zoltan Varga <vargaz@freemail.hu>
18786 * .cvsignore: Added monosn.
18788 * reflection.h reflection.c loader.c: Added support for parameter
18789 marshalling to dynamically created types. Fixes #47295.
18791 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
18793 * rand.c: remove useless warnings.
18795 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18797 * class.c: implemented ldtoken for methods and fieldrefs.
18799 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18801 * threadpool.c: when mono_async_invoke was called, no one took care of
18802 monitoring the queue. So if the method invoked took some time and we
18803 got new async invoke requests after 500 ms (the thread created waited
18804 that long in WaitForSingleObject), the new async invoke was not called
18805 until the previous one finished.
18807 This is fixed now. Thanks to Totte for helping with it.
18809 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18811 * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
18813 2003-08-11 Martin Baulig <martin@ximian.com>
18815 * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
18817 2003-08-06 Martin Baulig <martin@ximian.com>
18819 * mono-debug-debugger.c: Added support for static fields,
18820 properties and methods.
18822 2003-08-06 Martin Baulig <martin@ximian.com>
18824 * mono-debug-debugger.c: Don't store the MonoString's vtable to
18825 make this work for applications with multiple application domains.
18827 2003-08-04 Martin Baulig <martin@ximian.com>
18829 * mono-debug-debugger.c: Completely reworked the type support; the
18830 most important thing is that we're now just using one single
18831 `MonoType' instance per type.
18833 Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
18835 * mono-endian.h, mono-endian.c, icall.c: Added icall
18836 ves_icall_System_Double_AssertEndianity to assert double word endianity
18837 on ARM (FPA). The icall uses a macro defined in mono-endian.h.
18839 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18841 * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
18842 support, icalls and fixes.
18844 2003-07-31 Miguel de Icaza <miguel@ximian.com>
18846 * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
18847 classes that are a punctuation character in .NET is not the same a
18850 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18852 * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
18854 2003-07-29 Miguel de Icaza <miguel@ximian.com>
18856 * icall.c: Add new MemCopy internalcall.
18857 (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
18858 Simplified code; It is not necessary to handle all the cases here,
18859 as the C# code takes care of it. Only handle the case of the name
18860 resource embedded into the assembly.
18862 Changed signature to return the data pointer and the size of the
18865 2003-07-26 Miguel de Icaza <miguel@ximian.com>
18867 * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
18868 encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
18870 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
18872 * socket-io.c: ignore EINTR error in select.
18874 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18876 * class.h, class.c: removed unused subclasses field in MonoClass.
18878 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
18880 * icall.c: improve fix of get_base_definition(). If the parent class
18881 doesn't have the mehod, look at the parent of the parent.
18882 * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
18883 to check if a parameter is an in or out parameter
18884 (PARAM_ATTRIBUTE_IN is not set by default).
18885 mono_method_return_message_restore(): Use mono_class_value_size to
18886 get the size of a value type. mono_type_stack_size (parameterType)
18887 does not return the correct value if parameterType is byRef.
18888 mono_load_remote_field(), mono_load_remote_field_new(),
18889 mono_store_remote_field(), mono_store_remote_field_new():
18890 raise exception if the remote call returns an exception.
18892 2003-07-28 Martin Baulig <martin@ximian.com>
18894 * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
18895 method. This is a wrapper around mono_runtime_invoke() which
18896 boxes the instance object if neccessary.
18898 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18900 * class.c, class.h, image.c, image.h, loader.c, metadata.c,
18901 metadata.h, row-indexes.h, verify.c: first cut of generics support.
18903 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18905 * icall.c: disable mcs bug workaround.
18907 2003-07-21 Miguel de Icaza <miguel@ximian.com>
18909 * object.c (mono_runtime_class_init): Take the metadata_section
18910 mutex before obtaining the domain mutex.
18912 * appdomain.h: Added definition of metadata_section mutex here.
18914 * object.c: define metadata_mutex here.
18916 2003-07-24 Ravi Pratap <ravi@ximian.com>
18918 * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
18921 2003-07-24 Lluis Sanchez Gual <lluis@ximian.com>
18923 * reflection.c: Fix bug #46669
18925 2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18930 * object.h: fill in the type name for TypeLoadException.
18932 2003-07-23 Ravi Pratap <ravi@ximian.com>
18934 * class.c: Fixes from Paolo in response to bug #45415 (Subclass
18935 relationship between TypeBuilders while compiling corlib) and bug
18936 45993 (Array types returned from the runtime while compiling
18937 corlib were from the loaded corlib).
18939 2003-07-22 Martin Baulig <martin@ximian.com>
18941 * mono-debug-debugger.c: Reworked the type support a bit more;
18942 distinguish between types and classes.
18944 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
18946 * icall.c: add IsArrayImpl icall.
18948 2003-07-22 Zoltan Varga <vargaz@freemail.hu>
18950 * class.c (mono_class_layout_fields): Fix gc aware auto layout by
18951 initializing real_size only once. Also fix bug #46602.
18953 2003-07-21 Jerome Laban <jlaban@wanadoo.fr>
18955 * object.c: Renamed mono_metadata_section to metadata_section.
18957 2003-07-21 Lluis Sanchez Gual <lluis@ximian.com>
18959 * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
18960 empty array if the type is an array. Fixed.
18961 ves_icall_MonoMethod_get_base_definition: if the base method
18962 is abstract, get the MethodInfo from the list of methods of
18964 * reflection.c: ParameterInfo.PositionImpl should be zero-based
18965 and it was 1-based. Fixed in mono_param_get_objects.
18967 2003-07-20 Martin Baulig <martin@ximian.com>
18969 * mono-debug.h: Set version number to 31.
18970 (mono_debug_init): Added `MonoDomain *' argument.
18972 * mono-debug-debugger.c: Reworked the type support; explicitly
18973 tell the debugger about builtin types; pass the `klass' address to
18976 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
18978 * image.c: Allow new metadata tables to be loaded without a
18979 warning. Also update the warning message to give the new constant value.
18981 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
18983 * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
18984 metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c:
18985 array type representation changes.
18987 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18989 * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
18990 on Environment.Exit () call.
18992 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18994 * icall.c, reflection.h, reflection.c, verify.c: cleanups,
18995 requires a matching corlib.
18997 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
18999 * Changelog: My editor decided to add a CR to each line. Sorry about that.
19000 Committed again without the CRs.
19002 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
19004 * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19005 getting it from the "this" socket instance. Did not work
19006 if the socket is a subclass of Socket.
19007 Also fixed bug #35371.
19009 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19011 * metadata.c: fixed size for TypedByRef.
19012 * loader.c: when searching for a method, consider the vararg amrker.
19013 * unicode.c, decimal.c: constify some arrays.
19015 2003-07-15 Dick Porter <dick@ximian.com>
19017 * socket-io.c: Fixed compilation for gcc < 3.2.
19019 Fixed compilation for machines that don't have AF_INET6 (thanks to
19020 Bernie Solomon <bernard@ugsolutions.com> for that part.)
19022 Fixed compile warnings.
19024 Fixed formatting and line endings.
19026 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
19029 * socket-io.c: Added IPv6 support.
19031 2003-07-13 Zoltan Varga <vargaz@freemail.hu>
19033 * class.c (mono_class_is_assignable_from): New function to implement
19034 the is_assignable_from logic. Used by mono_object_isinst,
19035 Type::IsAssignableFrom () and the interpreter.
19037 * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19038 Object, even interfaces.
19040 * object.c (mono_object_isinst): Implement in terms of
19041 is_assignable_from.
19043 * icall.c (ves_icall_type_is_assignable_from): New icall.
19045 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
19047 * domain.c (foreach_domain): fix compiler warning.
19049 2003-07-11 Dietmar Maurer <dietmar@ximian.com>
19051 * image.c (load_metadata_ptrs): use g_strndup because strndup is
19052 not available on all plattforms
19054 2003-07-10 Zoltan Varga <vargaz@freemail.hu>
19056 * image.h image.c: Store the metadata version string in MonoImage.
19057 * icall.c: New icall to retrieve the image version.
19058 * reflection.c (create_dynamic_image): Fill in the image version field
19059 * reflection.c (build_compressed_metadata): Use the image version
19060 from the image structure.
19062 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19064 * appdomain.c: modified comment.
19065 * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19066 That will be its last iteration when mono_gc_cleanup is called from
19067 mono_runtime_cleanup and before the domain is unloaded.
19071 2003-07-04 Dietmar Maurer <dietmar@ximian.com>
19073 * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19076 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19078 * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19079 rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19080 Bernie Solomon <bernard@ugsolutions.com>.
19082 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19084 * object.c, object.h: provide mono_object_new_fast() for faster
19085 allocation in some special cases.
19087 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19089 * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19090 mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19092 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19094 * threadpool.c: fix leaks.
19096 2003-07-01 Dick Porter <dick@ximian.com>
19098 * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19099 using MonoGHashTables. Fixes threadpool bug posted to list.
19101 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19103 * image.h, image.c: added support to load an assembly from a byte array.
19104 * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added
19105 assembly bundle support.
19107 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
19109 * threadpool.c (mono_thread_pool_add): keep a reference to the
19110 AsyncResult to prevent GC
19112 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19114 * class.c: leak fix.
19116 2003-06-25 Dick Porter <dick@ximian.com>
19118 * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19119 for the async object, the WaitHandle object will close the handle.
19122 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19124 * class.c: in mono_array_class_get (), lookup from the hash with the
19125 same type we insert: this works around a bug in
19126 mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19127 lluis. The real fix will have to wait for after the release.
19129 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19131 * icall.c: fix memory leak when getting type members.
19133 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19135 * reflection.c: added more pubtoken special cases.
19137 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19139 * class.c: handle field offset correctly when class size
19140 is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19142 2003-06-20 Martin Baulig <martin@ximian.com>
19144 * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19147 2003-06-20 Martin Baulig <martin@ximian.com>
19149 * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19151 2003-06-20 Martin Baulig <martin@ximian.com>
19153 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We
19154 just distinguish between variables in registers and variables at
19155 an offset relative to a register.
19157 2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19159 * icall.c: #ifdef out latest changes until mcs is fixed.
19161 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19163 * icall.c: return members in metadata order.
19165 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19167 * icall.c: avoid infinite loop in GetTimeZoneData.
19169 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19171 * icall.c: added Marshal.Prelink/All icalls.
19173 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19175 * object.c, object.h: fix warnings and do some overflow checking
19176 when creating arrays.
19178 2003-06-17 Dick Porter <dick@ximian.com>
19181 * file-io.c: File attributes need to be tweaked slightly when
19182 passed from the managed to the w32 world.
19184 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
19185 * profiler.h profiler-private.h profiler.c: Rework last patch
19186 based on suggestion by Paolo.
19188 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
19190 * profiler.h profiler-private.h profiler.c: Added infrastructure for
19191 instruction level coverage data collection.
19192 * profiler.h profiler.c (: Added new callback function which can be
19193 used by the profiler to limit which functions should have coverage
19195 * profiler.c (mono_profiler_load): Call g_module_build_path to
19196 generate the file name of the profiler library.
19198 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19200 * profiler.c, profiler.h, profiler-private.h: added basic block
19201 coverage profiling API.
19203 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
19205 * reflection.c (mono_reflection_create_runtime_class): Add support
19206 for events in dynamically generated code.
19208 * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19211 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19213 * icall.c: when getting timezone info, return reasonable values if we
19214 can't get the actual data.
19216 2003-06-14 Dick Porter <dick@ximian.com>
19218 * threads.c (start_wrapper): Remove the reference to the thread
19219 object in the TLS data, so the thread object can be finalized.
19220 This won't be reached if the thread threw an uncaught exception,
19221 so those thread handles will stay referenced :-( (This is due to
19222 missing support for scanning thread-specific data in the Boehm GC
19223 - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19225 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19227 * reflection.c: ensure streams and tables are first allocated with
19228 ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19230 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19232 * icall.c: fixed GetElementType for byrefs (bug# 44792).
19234 2003-06-13 Zoltan Varga <vargaz@freemail.hu>
19236 * reflection.c (mono_reflection_create_runtime_class): Add support for
19237 properties to dynamically created classes.
19238 * reflection.c: Fix a few places where non-MonoObjects were inserted
19239 into the tokens hashtable.
19241 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19243 * object.c: some support to handle out of memory exceptions.
19245 2003-06-12 Dietmar Maurer <dietmar@ximian.com>
19247 * marshal.c (mono_marshal_get_native_wrapper): support reference
19250 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19252 * object.h, object.c: more portability stuff from Bernie Solomon.
19253 Unexport mono_object_allocate(). Added mono_object_unbox ().
19254 Set exitcode when an unhandled exception is thrown.
19256 2003-06-11 Dietmar Maurer <dietmar@ximian.com>
19258 * marshal.c (mono_marshal_get_native_wrapper): use custom
19259 marshaler for return types.
19261 2003-06-10 Dick Porter <dick@ximian.com>
19263 * socket-io.c: Don't assume that one of struct ip_mreqn or struct
19264 ip_mreq is available
19266 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
19268 * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
19269 mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
19270 by Bernie Solomon <bernard@ugsolutions.com>.
19272 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
19274 * gc.c (mono_gc_init): Avoid error message on shutdown when
19275 GC_DONT_GC=1 is used.
19277 * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal):
19278 New icall to return the GUID of a module.
19280 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19282 * class.c: ensure instance size always includes the parent's size
19283 even whem class size is set explicitly (fixes bug#44294).
19285 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19287 * profiler.h, profiler.c: made the simple profiler thread-safe,
19288 get more accurate timing info. Allow the loading of an
19289 externally-developed profiler module.
19291 2003-06-05 Dietmar Maurer <dietmar@ximian.com>
19293 * marshal.c (mono_marshal_get_native_wrapper): improved
19294 class/byref arguments.
19295 (mono_marshal_get_native_wrapper): better string marshaling support.
19297 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
19299 * class.c: ensure .pack and .size are handled correctly and
19300 simplified layout of static fields.
19302 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
19305 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
19307 * loader.c (mono_lookup_pinvoke_call): look for modules in the
19308 current directory (fix bug 44008)
19310 2003-06-03 Dietmar Maurer <dietmar@ximian.com>
19312 * marshal.c (mono_marshal_get_native_wrapper): started support for
19314 (mono_delegate_to_ftnptr): consider marshalling specifications
19316 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
19318 * reflection.c, reflection.h: emit custom marshal info.
19320 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19322 * object.c: free the GError.
19323 * icall.c: added CloseEvent_internal.
19325 (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
19328 2003-06-01 Zoltan Varga <vargaz@freemail.hu>
19330 * loader.c (mono_method_get_signature): Add support for dynamic
19333 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
19335 * reflection.c: fixed bug #43905.
19337 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19339 * class.c, domain.c, icall.c, metadata.h, object.h: support for
19340 handling TypedReference and ArgIterator.
19341 * loader.c, loader.h: added function to get signature at call site.
19343 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19345 * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more
19346 data readonly. Buglets and warning fixes. Some MethodSpec support.
19348 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19350 * class.h, class.c, object.c: remove relative numbering support.
19352 2003-05-26 Miguel de Icaza <miguel@ximian.com>
19354 * marshal.c (mono_marshal_get_native_wrapper): For now, do not
19355 free the string, until we get a chance to fix Gtk#
19357 2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19359 * marshal.c: revert last patch.
19361 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
19363 * icall.c: updates for new mono_class_vtable() not calling
19364 the type constructor anymore.
19366 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19368 * object.h, object.c: separate vtable creation from type
19369 initialization. Make running the .cctor thread safe.
19371 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
19373 * marshal.c (mono_marshal_get_native_wrapper): free string return values.
19375 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
19377 * loader.c (mono_get_method): consider calling convention
19379 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
19381 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
19382 to return the invisible global type for a module.
19384 * reflection.c (mono_image_build_metadata): Emit global fields too.
19386 2003-05-20 Peter Williams <peterw@ximian.com>
19388 * loader.c (mono_lookup_internal_call): Add a few newlines.
19390 2003-05-20 Zoltan Varga <vargaz@freemail.hu>
19392 * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
19395 * appdomain.c (set_domain_search_path): Recalculate search path when
19396 AppDomainSetup.PrivateBinPath changes.
19398 * object.c (mono_class_compute_gc_descriptor): It turns out some
19399 parts of the class libs (like System.Thread) holds pointers to
19400 GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
19401 to treat native int a pointer type here.
19403 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
19405 * appdomain.h, domain.c: add hashtable for jump target resolution.
19407 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
19409 * reflection.h reflection.c icall.c: Added new icalls
19410 GetManifestResourceInfoInternal, GetModulesInternal and support
19413 2003-05-16 Dick Porter <dick@ximian.com>
19417 * file-io.c: Implement System.IO.MonoIO::GetTempPath
19419 2003-05-14 Lluis Sanchez Gual <lluis@ideary.com>
19421 * object.c: mono_store_remote_field: little fix to previous patch.
19423 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19425 * class.c: add constructors to array classes.
19426 * icall.c: special case array construction for InternalInvoke (),
19428 2003-05-14 Zoltan Varga <vargaz@freemail.hu>
19430 * class.h class.c reflection.c object.c: Added support for field
19431 defaults in dynamically generated classes.
19433 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
19435 * reflection.c: properly encode charset for ddlimport.
19437 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
19439 * threads.c: allow compiling without GC.
19441 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19443 * appdomain.h, object.c, object.h, threads.c, threads.h: added
19444 handling of thread static data.
19446 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19448 * reflection.h, reflection.c: added mono_custom_attrs_free ().
19450 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
19452 * class.c (mono_array_class_get): always set the serializable flags
19453 (mono_array_class_get): always set the SEALED attribute for array types
19455 2003-05-12 Dietmar Maurer <dietmar@ximian.com>
19457 * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
19458 attributes (fix for bug 42021).
19460 2003-05-12 Dick Porter <dick@ximian.com>
19462 * gc.c: Don't run finalizers when the finalizer thread is
19463 finishing up, because the default domain has already been
19466 2003-05-11 Miguel de Icaza <miguel@ximian.com>
19468 * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19469 value is null, we should throw an exception. This is slightly
19470 different than the other conventions used for the constructor.
19472 2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19474 * socket-io.c: fixed windows build.
19476 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19478 * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19480 2003-05-10 Zoltan Varga <vargaz@freemail.hu>
19482 * object.c (mono_string_new_wrapper): Compatibility fix for MS
19485 2003-05-09 Zoltan Varga <vargaz@freemail.hu>
19487 * class.c (mono_class_layout_fields): Add experimental GC aware
19488 auto layout facility. Requires class library changes to work correctly.
19490 (mono_class_setup_vtable): Avoid overriding explicit interface
19491 method implementations. Fixes iface3.exe test.
19493 * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
19495 (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
19496 (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
19498 * metadata.h: Add new type classification macro which determines
19499 whenever the type holds an object reference.
19501 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
19503 * marshal.c (mono_marshal_get_native_wrapper): cleanups
19505 2003-05-07 Zoltan Varga <vargaz@freemail.hu>
19507 * gc.c (finalizer_thread): Work around a GC bug.
19509 2003-05-07 Dietmar Maurer <dietmar@ximian.com>
19511 * marshal.c (emit_struct_conv): allow unions
19513 * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
19515 2003-05-06 Dietmar Maurer <dietmar@ximian.com>
19517 * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
19519 2003-05-06 Martin Baulig <martin@ximian.com>
19521 * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
19523 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19526 (Select_internal): allow NULLs, don't create arrays if not needed.
19527 Coupled with Socket.cs changes.
19530 (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
19531 register a finalizer for it that will close the semaphore handle. This
19532 fixes the leak and make Lupus' test run with > 4080 loops.
19534 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
19536 * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
19537 Jerome Laban (bug #42287)
19539 2003-05-02 Martin Baulig <martin@ximian.com>
19541 * debug-mono-symfile.h
19542 (MonoSymbolFile): Moved declaration into mono-debug.h.
19543 (MonoDebugMethodJitInfo): Likewise.
19544 (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
19546 (_mono_debug_address_from_il_offset): Take a
19547 MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
19550 (MonoDebugDomainData): New struct.
19551 (mono_debug_get_domain_data): New function.
19552 (mono_debug_add_method): Take an additional `MonoDomain *'
19554 (mono_debug_source_location_from_address): Likewise.
19555 (mono_debug_il_offset_from_address): Likewise.
19556 (mono_debug_address_from_il_offset): Likewise.
19558 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
19560 * reflection.c: one more check for null type in custom attrs.
19562 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19564 * reflection.c: avoid warning (comparison is always false due to limited
19565 range of data type).
19567 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19569 * icall.c: throw an exception in Type.GetField if the argument 'name'
19572 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
19574 * reflection.c: fixed handling of enums in named arguments to custom
19575 attributes (bug #42123).
19577 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
19579 * reflection.c: use the right array element type and handle
19580 a null for a Type argument, too.
19582 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
19584 * reflection.c: handle arrays as arguments to custom attributes.
19586 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19588 * reflection.c: handle a string value in a custom attr
19589 ctor that takes an object.
19591 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
19593 * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
19596 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
19598 * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
19600 2003-04-27 Martin Baulig <martin@ximian.com>
19602 * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
19603 MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
19604 MONO_DEBUGGER_EVENT_BREAKPOINT.
19605 (mono_breakpoint_trampoline_code): Removed.
19606 (mono_debugger_event_handler): The last argument is now a
19608 (mono_debugger_insert_breakpoint_full): Removed the
19609 `use_trampoline' argument.
19610 (mono_debugger_method_has_breakpoint): Likewise.
19611 (mono_debugger_trampoline_breakpoint_callback): Renamed to
19612 mono_debugger_breakpoint_callback(); take the method and
19613 breakpoint number as arguments.
19615 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
19617 * metadata.c: fix off by one when loading parameters attributes.
19619 2003-04-24 Martin Baulig <martin@ximian.com>
19621 * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
19623 2003-04-24 Martin Baulig <martin@ximian.com>
19625 * mono-debug-debugger.c: Moved all code which interacts with the
19626 Mono Debugger here.
19628 * debug-mono-symfile.c: This code now just deals with the symbol
19629 file itself, the debugger code is now in mono-debug-debugger.c.
19631 2003-04-23 Martin Baulig <martin@ximian.com>
19633 * mono-debug.c (mono_debug_source_location_from_il_offset):
19634 New method; like mono_debug_source_location_from_address(), but
19635 takes an IL offset instead of a machine address.
19637 2003-04-23 Martin Baulig <martin@ximian.com>
19639 * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
19640 `line' field; this is now computed by the debugger.
19642 2003-04-23 Martin Baulig <martin@ximian.com>
19644 * mono-debug.[ch]: New files. This is the new debugging interface.
19646 * mono-debug-debugger.[ch]: New files. Moved all code which
19647 interacts with the Mono Debugger here.
19649 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
19651 * domain.c (mono_init): initialize mono_defaults.monitor_class
19653 2003-04-21 Miguel de Icaza <miguel@ximian.com>
19655 * reflection.c (method_encode_code): Add a spicy exception to help
19656 future compiler authors.
19658 2003-04-21 Martin Baulig <martin@ximian.com>
19661 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19662 Make this work with relative pathnames; g_filename_to_uri() needs
19663 an absolute filename.
19665 2003-04-18 Zoltan Varga <vargaz@freemail.hu>
19667 * icall.c: Track name changes in Object and ValueType.
19669 2003-04-18 Dietmar Maurer <dietmar@ximian.com>
19671 * metadata.c (mono_type_stack_size): size should be a multiple of
19674 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19677 (internal_domain_finalize): moved into mono_domain_finalize. No need
19678 to create another thread because the finalizers will be run in the
19681 (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
19682 (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
19683 to be run (MS does this too).
19685 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
19687 * object.c (mono_class_compute_gc_descriptor): Update comment.
19689 * loader.h marshal.h marshal.c: Added synchronized method wrappers.
19691 * image.h: Add synchronized wrapper cache.
19693 * image.c (do_mono_image_open): Initialize cache.
19695 * reflection.c (create_dynamic_mono_image): Initialize cache.
19697 2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19699 * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
19700 ves_icall_System_Buffer_ByteLengthInternal.
19702 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19704 * reflection.c: setup klass->nested_in earlier. Allow
19705 a dash in the assembly name.
19707 2003-04-15 Dietmar Maurer <dietmar@ximian.com>
19709 * metadata.c (mono_type_to_unmanaged): dont access
19710 type->data.klass for MONO_TYPE_OBJECT
19711 (mono_type_to_unmanaged): consider System.Delegate class
19713 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
19715 * class.c: just setup supertypes in the proper place instead of
19716 initializing the full element class for arrays.
19718 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19720 * class.c: ensure the element class of arrays is initialized.
19721 Setup the supertype info for array classes, too.
19723 2003-04-14 Miguel de Icaza <miguel@ximian.com>
19725 * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
19727 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19729 * Makefile.am: re-added -m option when running cygpath. This way,
19730 MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
19732 * mono-config.c: same codepath for locating mono config file for WIN32
19734 * assembly.c: if mono_assembly_setrootdir is called, don't override
19737 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19739 * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
19740 MONO_ASSEMBLIES variable.
19742 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
19744 * icall.c: added Assembly::GetNamespaces() icall.
19746 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19748 * reflection.c: fix from Jaak <jaak@zd.com.pl>.
19750 2003-04-10 Lluis Sanchez Gual <lluis@ideary.com>
19752 * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
19753 * object.c: fixed bug in the construction of vtable for proxies
19755 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
19757 * object.c (mono_array_new): Mark mono_array_new as an icall.
19759 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19761 * class.c: fixed test for public method when overriding interfaces.
19764 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19766 * appdomain.h, domain.c: added mono_domain_foreach() to
19767 be able to access the currently loaded appdomains.
19768 * object.c: make string interning work across sppdomains.
19769 Mark some functions for use as icalls.
19771 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
19773 * class.c reflection.c: Fix memory leaks reported by ccmalloc.
19775 * reflection.h reflection.c: Allocate long living data using
19776 GC_MALLOC_ATOMIC so the collector does not need to scan it.
19778 * reflection.c: Double the allocation size in streams instead of
19779 increasing it, to prevent unneccesary copying on large assemblies.
19781 * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
19782 creation if the assembly does not have the Run flag set.
19784 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
19786 * class.h: avoid the C++ keywords in header files (Jerome Laban
19787 spotted and fixed this).
19789 2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19792 (mono_unhandled_exception): fill in the arguments for the
19793 UnhandledException event. Only trigger that event for the default
19794 domain (as MS does).
19796 2003-04-04 Zoltan Varga <vargaz@freemail.hu>
19798 * object.c: Improve typed allocation stuff based on suggestions from
19799 Paolo. Also turn it on if the GC library supports it.
19801 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
19803 * object.c object.h class.h: Added experimental typed allocation
19804 facility using the interfaces in gc_gcj.h.
19806 * os/gc_wrapper.h: Added new include files.
19808 2003-04-03 Martin Baulig <martin@ximian.com>
19810 All the following changes are conditional to `WITH_INCLUDED_LIBGC'
19811 which is not yet enabled by default.
19813 * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
19815 (mono_gc_lock, mono_gc_unlock): New static functions.
19817 * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
19818 functions; stop/start the world for the garbage collector. This
19819 is using the windows API; we need to complete the SuspendThread()/
19820 ResumeThread() implementation in the io-layer to make this work on Unix.
19821 (mono_gc_push_all_stacks): New public function; tells the garbage
19822 collector about the stack pointers from all managed threads.
19824 2003-04-03 Martin Baulig <martin@ximian.com>
19826 * object.h (MonoThread): Added `gpointer stack_ptr'.
19828 * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
19830 2003-04-03 Martin Baulig <martin@ximian.com>
19832 * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
19834 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
19836 * reflection.c (typebuilder_setup_fields): Initialize field.first and
19839 2003-04-02 Miguel de Icaza <miguel@ximian.com>
19841 * loader.c (mono_lookup_internal_call): Report the corlib that is
19844 2003-03-05 Aleksey Demakov <avd@openlinksw.com>
19846 * icall.c (ves_icall_type_GetTypeCode): fixed check for
19847 System.DBNull (it's class not valuetype).
19849 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19851 * reflection.c: set table_idx in MonoReflectionArrayMethod object even
19852 if the array method was already assigned a token (fixes bug#40646).
19854 2003-04-02 Zoltan Varga <vargaz@freemail.hu>
19856 * reflection.c (mono_reflection_get_type): Attempt type resolve even
19857 if no assembly is given.
19859 2003-04-01 Miguel de Icaza <miguel@ximian.com>
19861 * metadata.h: Added the new tables.
19863 * row-indexes.h: Added definitions for new tables.
19865 * metadata.c: Add schemas for new tables, and add support for
19866 computing the sizes of them.
19868 * class.c: Update for handling the new type cases.
19870 2003-04-01 Dietmar Maurer <dietmar@ximian.com>
19872 * metadata.h (MONO_TYPE_IS_VOID): new macro
19874 2003-03-31 Martin Baulig <martin@ximian.com>
19876 * threads.h (MonoThreadCallbacks): Added `thread_created'.
19878 * threads.c (mono_thread_new_init): Call `thread_created' in the
19879 mono_thread_callbacks.
19881 2003-03-31 Lluis Sanchez Gual <lluis@ideary.com>
19883 * loader.h: added marshalbyrefobject_class to mono_defaults
19884 * domain.c: added initialization of mono_defaults.marshalbyrefobject_class
19885 * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
19886 generation of output parameters.
19887 ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
19888 * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
19889 contextbound and the target object belongs to the context of the caller.
19890 * object.h: added context and unwrapped_server variables in MonoRealProxy.
19891 * object.c: Implemented support for interfaces and abstract classes
19892 in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
19893 proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
19895 2003-03-30 Zoltan Varga <vargaz@freemail.hu>
19897 * class.h class.c (mono_class_is_subclass_of): New function.
19899 * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
19900 routines for most common case (calls from ArrayList::ToArray).
19902 * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown
19903 routine so programs which call Environment::Exit() can be profiled.
19905 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
19906 Added MONO_ARCH_SAVE_REGS.
19908 * icall.c (ves_icall_type_is_subtype_of): Use new function.
19910 2003-03-29 Miguel de Icaza <miguel@ximian.com>
19912 * blob.h: Add a couple of new MonoType types definitions.
19914 * tabledefs.h: Add a couple of new call convs.
19916 2003-03-27 Zoltan Varga <vargaz@freemail.h>
19918 * reflection.h (MonoReflectionDynamicAssembly): track changes in
19919 the layout of the class.
19921 * reflection.c (alloc_table): double the size on overflow to avoid
19922 unnecessary copying.
19924 * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
19925 avoid filling out metadata tables and blobs. Also set mb->ilgen to
19926 null so it can be garbage collected.
19928 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
19930 * reflection.c (mono_reflection_get_type): Return the resolved type
19931 only if it is in the assembly we searched.
19933 * reflection.c (ensure_runtime_vtable): Initialize method slots.
19935 * class.c (mono_class_setup_vtable): Set the slot of the overriding
19938 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19941 (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
19942 the right one is 'file:///blah', but MS allows it.
19944 (mono_assembly_open): allow 'file://blah'
19946 Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
19948 2003-03-26 Aleksey Demakov <avd@openlinksw.com>
19950 * socket-io.c: fixes bug #40310.
19952 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
19954 * reflection.c (mono_reflection_parse_type): handle deeply nested
19957 * reflection.c (mono_image_create_token): Use unique token values
19958 since they will be put into a hash table.
19960 * class.c (mono_class_setup_vtable): If a method occurs in more than
19961 one place in the vtable, and it gets overriden, then change the
19962 other occurances too.
19964 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
19965 object as return type.
19967 2003-03-22 Pedro Mart?nez Juli? <yoros@wanadoo.es>
19969 * icall.c: Deleted "ToString" implementation for double and float
19970 because they are full implemented in managed code.
19972 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19974 * reflection.c, reflection.h: implemented and exported functions
19975 to retrieve info about custom attributes.
19977 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19979 * appdomain.c: moved Uri handling to assembly.c
19980 * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
19981 work when using a file Uri in *nix and windows.
19983 * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
19984 GetReferencedAssemblies.
19986 2003-03-18 Dick Porter <dick@ximian.com>
19988 * icall.c: Rename a couple of internal calls
19990 * threads.c: Set the thread state to Stopped when a thread exits.
19993 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
19995 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
19998 * object.c (mono_class_vtable): fix warning.
20000 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
20002 * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20004 * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20006 (method_encode_clauses): Create exception info structures in the right
20008 (mono_reflection_setup_internal_class): Initialize supertypes field.
20010 * class.c object.c: Handle interfaces which implement other interfaces
20013 * class.h class.c: Move the supertypes array initialization code into
20014 a separate function so it can be used for dynamic types too. Also call
20015 it earlier, in mono_class_init(), since it can be used before the
20016 type is initialized.
20018 2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20022 * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20027 * object.c: remove warnings.
20029 2003-03-13 Martin Baulig <martin@ximian.com>
20031 * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20032 (MonoDebugLexicalBlockEntry): New types.
20034 * debug-mono-symfile.c
20035 (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20037 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20039 * process.c: ret can be any non-zero value accroding to MS doc.
20041 2003-03-07 Miguel de Icaza <miguel@ximian.com>
20043 * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when
20044 fixing a warning for a miss-used prototype, would have cause
20045 random memory corruption.
20047 2003-03-07 Martin Baulig <martin@ximian.com>
20049 * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20050 getting really annoying ....
20052 2003-03-07 Zoltan Varga <vargaz@freemail.hu>
20054 * reflection.c (fixup_method): added support for array methods.
20056 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20058 * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined
20059 (pointed out by Michael Adams).
20061 2003-03-04 Dick Porter <dick@ximian.com>
20063 * icall.c: Temporarily reverted the Double and Single ToString()
20064 change, because it broke nunit.
20066 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20068 * object.h, threads.h: make include files compatible with C++
20069 (patch by Jerome Laban <jlaban@wanadoo.fr>).
20071 2003-03-04 Pedro Mart?nez Juli? <yoros@wanadoo.es>
20073 * icall.c: Erased ToString helper functions for Double and Single.
20074 Now, that implementations ar all in managed code (Double and Single
20077 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
20079 * appdomain.c: Added method for initializing the default context of
20080 a domain. Added internal call for getting the default context.
20081 * appdomain.h: Added context variable in MonoDomain struct.
20082 * domain.c: mono_domain_set also sets the default context of the domain
20083 * icall.c: Mapped internal method InternalGetDefaultContext.
20084 * object.c: mono_object_get_virtual_method returns always a remoting
20085 wrapper if the object is a transparent proxy.
20086 mono_runtime_invoke_array: when creating an object by calling the
20087 constructor, if the created object is a proxy, then the constructor should
20088 be called using the a remoting wrapper.
20090 2003-03-03 Dick Porter <dick@ximian.com>
20092 * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20093 variable so it compiles on solaris. Problem spotted by
20094 Christopher Taylor <ct@cs.clemson.edu>
20096 2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20099 (get_info_from_assembly_name): don't leak value.
20102 (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20105 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20107 * assembly.c: export mono_image_load_references ().
20108 * class.c: handle function pointers. mono_class_from_name() now
20109 supports nested type names directly.
20111 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
20113 * reflection.h reflection.c: Encode already created dynamic methods
20114 and fields correctly as a DEF instead of a REF.
20116 * reflection.c: Get rid of the force_ref argument to
20117 mono_image_typedef_or_ref since it was wrong in the first place.
20119 * string-icalls.c: add error checking to string constructors according
20122 * reflection.c: Emit types in the order their TypeBuilders were
20123 created. Previously, a new table index was assigned to each type before
20124 the tables were emitted. This was wrong because the signature blob
20125 might already refer to a type by its original table index.
20127 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
20129 * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20132 2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20134 * Makefile.am: make assemblies dir have \ instead of / on windows.
20136 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
20138 * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20139 iterate over the NESTEDCLASS table using a linear search since the
20140 table is not guaranteed to be sorted by the secondary key.
20142 * class.c (mono_class_create_from_typedef): fixed up call to
20143 mono_metadata_nesting_typedef.
20145 2003-02-27 Dietmar Maurer <dietmar@ximian.com>
20147 * marshal.c (mono_string_to_byvalstr): clear the memory as
20148 suggested by Jerome Laban <jlaban@wanadoo.fr>
20150 2003-02-26 Dick Porter <dick@ximian.com>
20152 * process.c: Cope with padding in .rsrc blocks
20154 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
20156 * metadata.h: reverted the filter_len change, it breaks reflection
20158 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
20160 * metadata.h: added a new field to store the filter_len
20163 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20165 * reflection.c: handle custom attributes for types and members
20166 created with Reflection.Emit (bug#38422).
20168 2003-02-22 Zoltan Varga <vargaz@freemail.hu>
20170 * reflection.c: define RTSpecialName automatically for constructors for
20171 compatibility with MS.NET.
20173 * reflection.c (mono_reflection_create_runtime_class): initialize
20174 nested_in field of dynamically created classes.
20176 2003-02-22 Martin Baulig <martin@ximian.com>
20178 * debug-mono-symfile.h: Incremented version number.
20180 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
20182 * object.h icall.c process.c: fix warnings.
20184 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
20186 * appdomain.h appdomain.c:
20187 (mono_domain_try_type_resolve): split the
20188 name_or_tb argument into a name and a tb argument.
20189 (mono_domain_has_type_resolve): new function to check whenever the
20190 application has registered a TypeResolve event handler.
20192 * icall.c reflection.h reflection.c: move the type resolve logic into
20193 mono_reflection_get_type () so it will be invoked when
20194 Assembly::GetType () is called.
20197 (mono_reflection_get_type): renamed to get_type_internal.
20198 (mono_reflection_get_type): fixed type name generation so it works
20199 for nested types too.
20200 (mono_reflection_get_type): call has_type_resolve () to avoid the
20201 costly type name generation if there is no resolve event handler.
20203 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20205 * class.c, image.c: load exported types from file references.
20207 2003-02-19 Lluis Sanchez Gual <lluis@ideary.com>
20209 * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20210 used to cache the managed methods used to create proxies and make
20211 remote invocation of methods.
20212 * class.h: Added in MonoVTable a flag to indicate that a class needs
20213 to be remotely created.
20214 * object.c: Modified the method mono_class_vtable(). It now initializes
20215 the remote flag of the vtable. Modified mono_object_new_specific(),
20216 so now it checks the remote flag.
20217 * icall.c: Added a couple of internal methods, one for enabling instance
20218 creation interception for a type, and one for creating objects bypassing
20221 2003-02-18 Martin Baulig <martin@ximian.com>
20223 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20224 New interncall to get a method's metadata token.
20226 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20227 New interncall for the debugger.
20229 2003-02-18 Dietmar Maurer <dietmar@ximian.com>
20231 * class.c (mono_class_setup_vtable): allocate supertype array
20233 2003-02-18 Martin Baulig <martin@ximian.com>
20235 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20237 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20240 (assembly_name_to_aname): jump over unknown properties (i've found
20241 something like: 'type, assembly, version=xxx, custom=null, public...',
20242 so now will ignore custom=null and still get the rest of the values).
20244 2003-02-17 Dick Porter <dick@ximian.com>
20246 * threads.c: Have Thread.Start() wait for a semaphore to signal
20247 that the thread has set up all its local data. This fixes bug
20248 34323, where Abort() raced the new thread's TLS data.
20250 Also removes the handle_store() call from start_wrapper, because
20251 threads are now always created suspended and there is no longer a
20252 race between the parent and child threads to store the info.
20254 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20256 * image.c: explain the #- heap issue in a message, hopefully
20257 avoiding FAQs on mono-list.
20259 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20262 (GetEntryAssembly): if the domain has not invoked
20263 AppDomain.ExecuteAssembly yet, return the assembly of the default
20266 2003-02-16 Zoltan Varga <vargaz@freemail.hu>
20268 * class.c (mono_ldtoken): make it work in dynamic assemblies.
20270 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
20272 * metadata.c, reflection.c: simple speedup to type hash
20275 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
20277 * image.c, image.h, class.c, assembly.c: move module loading
20278 to MonoImage. When loading metadata, consider alignemnet from
20279 the start of metadata, not from the metadata address in memory.
20281 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
20283 * reflection.c (mono_reflection_get_custom_attrs): Added support for
20284 AssemblyBuilder objects. Factored out custom attribute creation into
20285 a separate function.
20286 (create_custom_attr): new function to create custom attributes.
20288 2003-02-12 Miguel de Icaza <miguel@ximian.com>
20290 * Makefile.am: Got tired of typing the full pathname to pedump.
20291 Until there is another option, am installing this.
20293 2003-02-12 Dietmar Maurer <dietmar@ximian.com>
20295 * class.c (class_compute_field_layout): always set field->parent
20296 (mono_ldtoken): use mono_defaults.fieldhandle_class;
20298 2003-02-11 Dick Porter <dick@ximian.com>
20301 * monitor.c: Rewrote Monitor, making lock much faster and
20302 Pulse/Wait work as specified. Also uses much fewer handles, and only
20303 creates them as needed.
20305 * exception.c: Added SynchronizationLockException
20307 * threads.c: Deleted old Monitor implementation. The new one is
20310 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
20312 * class.c: handled TypedReference type code. Set the correct size for
20313 class data. Setup interface_offsets for interface classes, too.
20315 2003-02-09 Martin Baulig <martin@ximian.com>
20317 * debug-mono-symfile.h: Reflect latest symbol writer changes.
20319 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
20321 * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
20322 * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
20323 * object.c: fixed mono_object_get_virtual_method () for interfaces.
20324 * verify.c: check for code that runs after the end of the method.
20326 2003-02-08 Pedro Mart?nez Juli? <yoros@wanadoo.es>
20328 * icall.c: Added "System.Math::Floor", "System.Math::Round" and
20329 "System.Math::Round2".
20330 * sysmath.h: Added Floor, Round and Round2 definitions.
20331 * sysmath.c: Modified certain functions that were not 100% compliant
20332 with MS.NET (math precision) and added the implementation of Floor,
20335 2003-02-07 Martin Baulig <martin@ximian.com>
20337 * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
20339 2003-02-07 Martin Baulig <martin@ximian.com>
20341 * debug-mono-symfile.c: Reflected latest symwriter changes.
20342 (mono_debug_create_mono_symbol_file): Removed.
20343 (mono_debug_open_mono_symbol_file): Take an argument which
20344 specifies whether to create a dynamic symbol file.
20346 2003-02-07 Dietmar Maurer <dietmar@ximian.com>
20348 * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
20350 2003-02-05 Martin Baulig <martin@ximian.com>
20352 * reflection.c (mono_image_build_metadata): Make this public,
20353 protect it against being called multiple times, don't create
20354 resources and don't build the compressed metadata here.
20355 (mono_image_create_pefile): Do this here.
20358 ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
20360 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20362 * socket-io.c: fixed bug #36322.
20364 2003-02-06 Piers Haken <piersh@friskit.com>
20368 * debug-mono-symfile.c:
20374 * socket-io.c: warning cleanups
20376 2003-02-06 Dietmar Maurer <dietmar@ximian.com>
20378 * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
20379 function. works like remoting invoke, but does a check for the Proxy first.
20381 2003-02-05 Miguel de Icaza <miguel@ximian.com>
20383 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
20385 2003-02-05 Dietmar Maurer <dietmar@ximian.com>
20387 * marshal.c (mono_marshal_get_native_wrapper): only allocate an
20389 (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
20390 (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
20392 * object.c (mono_store_remote_field_new): used by the new jit
20393 instead of mono_store_remote_field
20394 (mono_load_remote_field_new): used by the new jit
20395 instead of mono_load_remote_field
20397 2003-02-05 Patrik Torstensson
20399 * appdomain.c: changed unload to take the domain id instead
20402 * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
20405 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20407 * appdomain.c: don't look for assemblies in ApplicationBase if
20408 PrivateBinPathProbe is set.
20410 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20412 * object.c: make the first argument in main_args contain the absolute
20413 path to the assembly. Fixes bug #37511.
20415 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20417 * icall.c: get correct UTC offset for countries not using daylight
20418 time saving. Fixes bug #30030.
20420 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20422 * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
20423 and 1 are the family).
20425 2003-02-04 Dietmar Maurer <dietmar@ximian.com>
20427 * icall.c (ves_icall_InternalExecute): removed wrong assertion
20429 * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
20431 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
20433 * reflection.c: added support for SignatureHelper tokens, which is
20434 needed by the Calli opcode.
20436 * reflection.h: track changes to SignatureHelper class.
20438 * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
20440 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20442 * appdomain.c: fixed loading assemblies from PrivateBinPath.
20444 2003-02-03 Patrik Torstensson
20445 * appdomain.[c|h], domain.c :
20446 - Added support for getting a domain via domain id
20447 - Support for setting and getting domain from System.AppDomain
20448 (used in cross appdomain channel)
20449 - Added support for get/set for a MonoAppContext on a thread
20450 (Context class in System.Runtime.Remoting.Contexts),
20451 - Removed hack in Get/SetData and ExecuteAssembly.
20453 * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
20454 the managed world to get control when a proxy is created.
20456 * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
20458 2003-02-03 Miguel de Icaza <miguel@ximian.com>
20461 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20462 Populate the codebase field as well.
20464 2003-02-02 Martin Baulig <martin@ximian.com>
20466 * debug-mono-symfile.c
20467 (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20468 (mono_debug_symfile_add_method): Allow interncalls.
20470 2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20472 * icall.c: throw parse exception if strtod fails or the string is empty.
20474 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20476 * marshal.c: handle object type separately from defined
20479 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20481 * marshal.c: handle NATIVE_LPSTR for strings when it's
20482 explicitly specified.
20484 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
20486 * reflection.c, reflection.h, icall.c: setup the reflection
20487 handle cache for ModuleBuilders and AssemblyBuilders.
20489 2003-01-30 Dietmar Maurer <dietmar@ximian.com>
20491 * reflection.c (reflection_methodbuilder_to_mono_method): set
20494 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20496 * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
20498 2003-01-29 Dick Porter <dick@ximian.com>
20500 * threads.c: No need for the fake_thread kludge now that Thread
20501 doesn't run a class constructor
20503 2003-01-29 Dick Porter <dick@ximian.com>
20505 * threads.c: Use g_direct_hash instead of the rather bogus
20508 2003-01-29 Dietmar Maurer <dietmar@ximian.com>
20510 * marshal.c (mono_marshal_get_native_wrapper): add check for null
20511 (fix pinvoke12.exe)
20512 (mono_marshal_get_struct_to_ptr): generate valid IL code
20513 (mono_marshal_get_ptr_to_struct): generate valid IL code
20514 (*): correctly set sig->pinvoke, we need to memdup the signature
20517 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20519 * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
20520 to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
20522 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20524 * profiler.c: provide more callers information.
20526 2003-01-28 Dietmar Maurer <dietmar@ximian.com>
20528 * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
20530 * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
20532 * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
20534 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20536 * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
20537 exception instead of going into an infinite loop on dates which it
20540 * string-icalls.c (ves_icall_System_String_get_Chars): raise
20541 out-of-range exception if needed.
20543 * class.c (mono_class_setup_vtable): allow a virtual method to provide
20544 an implementation for an interface method and to override an inherited
20545 method at the same time.
20546 Imagine a scenario when a virtual method is used to override a
20547 virtual abstract method in a parent class, and this same method
20548 provides an implementation for an method inherited from an interface.
20549 In this case, the interface resolution code will set im->slot, which
20550 means that the virtual method override pass will skip this method
20551 which means a pointer to the abstract method inherited from the parent
20552 will remain in the vtable of this non-abstract class.
20554 * class.c: (mono_class_setup_vtable): continue search for a real
20555 method if only an abstract method is found.
20557 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
20559 * reflection.c: add size to encoding for ByValStr and ByValArray
20560 marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
20562 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20564 * class.c (mono_class_setup_vtable): pass the override info as an
20567 * class.c (mono_class_setup_vtable): set the slot of overriding methods
20570 * reflection.c (ensure_runtime_vtable); add support for method
20573 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20575 * reflection.c (resolution_scope_from_image): Hack to work to work with
20576 dynamic assemblies.
20578 * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and
20579 added a 'force_ref' argument to force this function to allways return
20580 a TypeRef. This is needed by mono_image_get_memberref_token ().
20582 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20584 * reflection.c (mono_image_get_type_info): interfaces really don't have
20587 * reflection.c (mono_image_basic_init): fill out missing fields of
20590 * reflection.c (mono_image_basic_init): Invoke assembly load hooks for
20591 dynamic assemblies. This is required so dynamic assemblies show up in
20592 AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
20593 Type::GetType() etc. This is consistent with MS behaviour.
20595 * image.c image.h reflection.c: add newly created classes to the name
20596 cache so mono_class_get () will find them.
20598 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
20600 First part of changes to get IKVM.NET running under mono.
20602 * appdomain.h, appdomain.c: added new function
20603 mono_domain_try_type_resolve() which will emit TypeResolve events.
20604 This function will call AppDomain::DoTypeResolve to do the actual work.
20606 * class.h, class.c, loader.c, object.c, reflection.h, reflection.c:
20607 moved existing code dealing with dynamic tokens to a new function
20608 called mono_reflection_lookup_dynamic_token (). This function will
20609 raise TypeResolve events when appropriate. Since reflection.c is not
20610 part of libmetadata, a new hook function called
20611 mono_lookup_dynamic_token() is added to class.c which will call this.
20613 * assembly.h assembly.c: make the invoke_load_hook function public,
20614 so it can be called for dynamic assemblies.
20616 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
20618 * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the
20621 * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a
20622 MonoGHashTable, since it contains pointers to objects which the GC
20625 * assembly.c (search_loaded): remove unused variable.
20627 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
20629 * object.c: fixed issue exposed by gcc-generated IL programs
20630 that use RVA data for pointers.
20632 2003-01-25 Martin Baulig <martin@ximian.com>
20634 * threads.c (start_wrapper): Moved the initialization of
20635 `start_func' above the mono_new_thread_init() call to which we
20636 pass it as argument.
20638 2003-01-24 Martin Baulig <martin@ximian.com>
20640 * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
20641 the MonoThread pointer.
20643 2003-01-21 Miguel de Icaza <miguel@ximian.com>
20645 * icall.c: Rename `PowImpl' to Pow.
20647 2003-01-23 Dick Porter <dick@ximian.com>
20649 * threads.c (start_wrapper): Create a Thread object if needed, so
20650 the Main() thread can do the class initialisation in a subthread
20651 that has been set up to allow managed code execution.
20653 Pass the thread ID instead of the MonoThread pointer to the thread
20654 start and attach callbacks. This change is required, because the
20655 jit thread start callback must be called _before_ the Thread
20656 object can be created.
20658 (mono_thread_init): Removed much object creation code that is no
20659 longer needed. No managed code is called from here now.
20661 * object.c (mono_runtime_exec_managed_code): Create a subthread
20662 for Main, and call back to the runtime to use it.
20663 Set the exit code when Main exits.
20665 * gc.c: Make sure domain finalisation happens in a subthread.
20666 Re-enable threaded GC, fixing bug 31333 (again).
20668 * environment.c: System.Environment internall calls (so far just
20669 ExitCode is here, the others are still in icall.c)
20671 * appdomain.c (mono_runtime_cleanup): All threads running managed
20672 code should have finished before mono_runtime_cleanup() is
20673 reached, so no need to clean up threads.
20675 2003-01-22 Martin Baulig <martin@ximian.com>
20677 * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
20678 `gpointer func' arguments.
20679 (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
20680 but added `MonoThread *thread' argument.
20681 (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
20683 * threads.c (mono_new_thread_init): Added `gpointer func' argument
20684 and pass it to the mono_thread_start_cb callback.
20685 (mono_install_thread_callbacks): New public function to install a
20686 set of callbacks which are set by the debugger.
20687 (mono_thread_init): The last argument is now a MonoThreadAttachCB.
20689 2003-01-22 Martin Baulig <martin@ximian.com>
20691 * Makefile.am: Install debug-mono-symfile.h.
20693 2003-01-21 Aleksey Demakov <avd@openlinksw.com>
20695 * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
20697 2003-01-21 Dietmar Maurer <dietmar@ximian.com>
20699 * added the following fix from Jackson Harper <jackson@latitudegeo.com>
20700 * class.c (mono_ptr_class_get): correctly set access levels of pointers
20701 (mono_array_class_get): correctly set access levels of arrays
20703 2003-01-20 Patrik Torstensson
20704 * image.h (MonoAssemblyName): changed major, minor, build, revision
20705 from signed to unsigned.
20707 2003-01-20 sean kasun <skasun@azstarnet.com>
20709 * reflection.c (load_cattr_value): Now this handles
20710 MONO_TYPE_SZARRAY. Fixes bug #35629
20712 2003-01-20 Miguel de Icaza <miguel@ximian.com>
20714 * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
20717 2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20719 * decimal.c: fixed bug #26056.
20721 2003-01-17 Martin Baulig <martin@ximian.com>
20723 * gc.c: Raise an ExecutionEngineException instead of using g_error().
20725 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20728 (mono_get_exception_type_initialization): new function.
20730 * object.c: throw a TypeInitializationException when an exception is
20731 thrown invoking the class constructor.
20733 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20735 * reflection.c: fixed attribute reading.
20737 2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20740 (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
20741 provided, look for the type in the calling assembly and then in
20742 mscorlib; if the assembly name is provided, only try that one.
20744 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
20746 * object.c: register the vtable before there is a chance it's
20747 queried again recursively.
20749 2003-01-13 Duncan Mak <duncan@ximian.com>
20751 * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
20754 2003-01-12 Patrik Torstensson <totte@race-x-change.com>
20756 * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
20758 2003-01-11 Martin Baulig <martin@ximian.com>
20760 * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
20761 this to 20 for the release.
20763 2003-01-10 Dietmar Maurer <dietmar@ximian.com>
20765 * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
20767 * loader.c (mono_method_get_marshal_info): bug fix
20769 * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
20770 structures with explicit layout
20772 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20774 * profiler.c: made the output more readable (and sorted).
20775 Added caller information for the allocation profiler.
20777 2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
20779 * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
20781 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20783 * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
20784 to get value types.
20786 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
20788 * object.c, profiler.h, profiler.c, profiler-private.h:
20789 Added object allocation profiler.
20791 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
20793 * reflection.h, reflection.c: handle global methods.
20794 Compress blob entries.
20796 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
20798 * marshal.c: fix compilation.
20800 2003-01-09 Dietmar Maurer <dietmar@ximian.com>
20802 * loader.c (mono_method_get_marshal_info): impl.
20804 * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
20806 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20808 * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
20809 for reference types.
20811 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
20813 * loader.c: fixed off by one error in loaded parameter names.
20815 2003-01-08 Dietmar Maurer <dietmar@ximian.com>
20817 * marshal.c (mono_marshal_get_icall_wrapper): like
20818 mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
20819 instead of a MonoMethod.
20821 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20823 * decimal.c: fixed bug #36537.
20825 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
20827 * marshal.c: throw a missing method exception if a
20828 P/Invoke method is not found.
20830 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
20832 * icall.c: allow a null this for constructors.
20834 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
20836 * icall.c: raise the proper exceptions if the arguments to the
20837 internal Invoke are incorrect.
20839 2003-01-03 Dietmar Maurer <dietmar@ximian.com>
20841 * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
20843 2003-01-03 Martin Baulig <martin@ximian.com>
20845 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20847 2002-12-31 Martin Baulig <martin@ximian.com>
20849 * debug-mono-symfile.c: Completely rewrote the type section.
20850 Instead of using individual malloc()ed fields, we use one big
20851 continuous memory area and offsets into this area.
20852 See the comments in the source code for details.
20854 2002-12-30 Martin Baulig <martin@ximian.com>
20856 * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
20858 2002-12-30 Martin Baulig <martin@ximian.com>
20860 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
20861 line number table in this data blob instead of using an external
20864 2002-12-28 Martin Baulig <martin@ximian.com>
20866 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20868 2002-12-22 Rachel Hestilow <hestilow@ximian.com>
20870 * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
20871 as a boxed return type.
20873 2002-12-21 Miguel de Icaza <miguel@ximian.com>
20876 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
20877 g_build_filename to properly get separators on the filename created.
20879 * object.h: Small change, introduce MonoMarshalByRefObject to
20880 track the layout of that structure in the C# universe as we make
20883 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
20885 * object.c: removed assert to allow static fields on interfaces.
20886 * loader.c: a TypeSpec may be used for any type, not just arrays.
20888 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20890 * class.c, class.h: added mono_class_array_element_size ().
20891 Ignore static methods in interfaces.
20893 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20895 * threads.c: fixed the build under cygwin.
20897 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20899 * reflection.c: handle nullref constants. Allocate keys for
20900 reflection handles with the GC.
20902 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20904 * threads.c, threads.h: added mono_thread_get_abort_signal()
20905 to get a suitable signal for thread abort.
20907 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20909 * metadata.c: fix handling of ExportedType table.
20911 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20913 * icall.c: added WriteWindowsDebugString internal call.
20915 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20917 * reflection.h: added fields to match C# implementation.
20919 2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20921 * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
20923 2002-12-12 Juli Mallett <jmallett@FreeBSD.org>
20925 * gc.h, gc-internal.h: Rename header for GC internal calls to
20926 gc-internal.h from gc.h as to not clash with Boehm GC having its
20927 header installed as <gc.h> in outside include paths.
20928 * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
20929 * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
20931 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20933 * icall.c: assign minor, build and revision in FillName.
20935 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
20937 * image.h reflection.h reflection.c class.h class.c loader.c object.c:
20938 Added support for running code generated by Reflection.Emit.
20940 2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20942 * appdomain.c: check for NULL argument in LoadFrom.
20944 2002-12-10 Dick Porter <dick@ximian.com>
20946 * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
20948 2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20950 * appdomain.c: fix buglet when building exe file name. Handle full
20951 assembly name (needed after latest changes to AssemblyName).
20953 (mono_image_close): free some hashtables.
20955 2002-12-05 Dietmar Maurer <dietmar@ximian.com>
20957 * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN
20958 instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation
20959 on some systems (redhat 7.3)
20961 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
20963 * threads.c: delete the critical section of a sync block,
20964 spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
20966 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
20968 * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
20970 2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20972 * appdomain.[ch]: handle the assembly preload event to try loading the
20973 assemblies using the paths we have in the current domain.
20975 * assembly.[ch]: created an assembly preload hook that is called to try
20976 loading the assembly by other means that the ones provided here.
20978 * domain.c: initialize the domain search path.
20980 From now on, assemblies (TODO: except corlib and System) are loaded
20981 according to these rules when using mono_assembly_load ():
20983 1. It tries to load the assembly from the ApplicationBase
20984 of the current domain appending .dll and .exe (TODO: have to
20985 try loading from name/name.dll and name/name.exe).
20987 2. It tries the search path specified in PrivateBinPath for the
20988 current domain (if any).
20990 3. Previous behavior.
20992 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
20994 * icall.c: implemented GetInterfaceMap() related icall.
20995 * domain.c, loader.h: load MethodInfo in mono_defaults.
20997 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20999 * gc.c: disable the finalizer thread for now, untill all the issues
21000 with it are resolved.
21002 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21004 * string-icalls.c: handle embedded nulls in string ctor when the
21005 length is specified.
21007 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21009 * class.c: look for explicit interface implementation in parent
21012 2002-12-03 Dietmar Maurer <dietmar@ximian.com>
21014 * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3)
21016 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21018 * gc.c: protect handles with a critical section.
21020 2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21023 (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21024 parameters. If no assembly specified, try getting the type from all
21025 the assemblies in the current domain, else, load the assembly and get
21028 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21030 * marshal.c: applied patch from Aleksey Demakov that fixes
21031 ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21033 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21035 * icall.c: fixed get_location.
21037 2002-11-28 Dietmar Maurer <dietmar@ximian.com>
21039 * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21040 declarations to make it work with older gcc.
21042 * loader.c (mono_get_method): set signature->pinvoke for native calls
21044 2002-11-20 Dick Porter <dick@ximian.com>
21046 * threads.c (mono_thread_init): Set the main thread's handle
21048 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21050 * gc.c: allow compilation without GC support. Changed to match the
21053 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21055 * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21057 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21059 * reflection.c: set a public key token on the core assemblies.
21061 2002-11-18 Dick Porter <dick@ximian.com>
21063 * threads.c: Split out some thread initialisation so that other
21064 files can set the start callback function.
21066 * gc.c: Run finalisers in a separate thread, to avoid stack
21067 overflow. Fixes bug 31333.
21069 * appdomain.c: Set up GC finalisation thread.
21073 * domain.c: Use gc.h macros for GC_malloc
21075 2002-11-15 Dick Porter <dick@ximian.com>
21079 * appdomain.c: Removed mono_runtime_init_with_attach(),
21080 mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21081 merging the extra parameter with the existing function. Removed
21082 unneeded code in mono_thread_attach().
21084 2002-11-14 Dietmar Maurer <dietmar@ximian.com>
21086 * image.c (mono_image_loaded_by_guid): a method to get loaded
21088 (load_metadata_ptrs): we store the guid as string.
21090 2002-11-11 Dietmar Maurer <dietmar@ximian.com>
21092 * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21094 * metadata.c (mono_guid_to_string): imported method form Zoltan
21095 Varga (slightly modified)
21097 * assembly.c (mono_assembly_open): load precompiled code
21099 * loader.h (MonoMethod): we store the method token for use in the
21102 2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21104 * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21105 the hook function called when an assembly is loaded.
21107 * domain.c: Modified file.
21108 (mono_domain_assembly_load): removed hash table insertion of assemblies.
21112 2002-11-07 Miguel de Icaza <miguel@ximian.com>
21114 * reflection.c: Map PEFileKind to the value expected by the WinNT
21117 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21119 * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21120 Read until the buffer is filled completely.
21122 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21124 * icall.c: implemented MonoType.InternalGetEvent ().
21126 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21128 * appdomain.c: implemented InitAppDomainSetup. Delayed
21129 AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21130 the entry_assembly.
21132 * assembly.c: base_dir is now an absolute path ending with
21135 * icall.c: modified get_location according to the above changes.
21137 * object.c: init AppDomain.SetupInformation for the default domain after
21138 we have the entry assembly.
21140 * domain.c: when unloading a domain, setup = NULL.
21142 2002-11-04 Dietmar Maurer <dietmar@ximian.com>
21144 * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21146 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21148 * object.h, object.c: introduced mono_object_get_virtual_method ()
21149 to lookup the method invoked on an object when a callvirt is done on
21151 * icall.c: make MethodInfo::Invoke() always do a virtual call.
21153 2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21155 * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21156 current domain when loaded an assembly and failed to load it.
21158 * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21160 2002-10-31 Dick Porter <dick@ximian.com>
21164 * file-io.c: Return the error status in a parameter, as the
21165 GetLastError() value has long since been blown away if we try and
21166 look it up in a subsequent internal call invocation. Delete the
21167 GetLastError() internal call, because it's useless.
21169 2002-10-31 Dietmar Maurer <dietmar@ximian.com>
21171 * class.[ch]: added cast_class to fix bug 29517
21173 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21175 * marshal.c: create valid IL code in the filter clause:
21176 the new JIT is less forgiving:-)
21178 2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21180 * icall.c: removed get_property internal call.
21182 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
21184 * appdomain.h domain.c: Added an ID to appdomains.
21186 * threads.c threads.h icall.c: Implement icall
21187 Thread:GetDomainID(), and remove unused icall
21188 CurrentThreadDomain_internal.
21190 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21192 * icall.c: Don't recurse through the base types in GetConstructor.
21195 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21197 * mempool.h, mempool.c: added mono_mempool_empty() and
21198 mono_mempool_stats().
21200 2002-10-23 Dick Porter <dick@ximian.com>
21204 * icall.c: Added MonoIO.GetFileType internal call
21206 2002-10-17 Dick Porter <dick@ximian.com>
21208 * appdomain.c (mono_runtime_cleanup): Don't signal the async
21209 delegate semaphore before waiting for all threads to finish,
21210 because new threads can also call async delegates. Fixes bug
21213 * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21214 of 3 seconds, in case another async job is queued. (This part is
21215 needed because the bug fix reintroduced the 3s exit lag.) This
21216 makes the mono_runtime_shutdown flag superfluous.
21218 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21220 * reflection.c: include ehader size in method section headers.
21221 Really check for suplicated modules entries.
21223 2002-10-17 Martin Baulig <martin@gnome.org>
21225 * debug-mono-symfile.c: Added back support for locals.
21227 2002-10-14 Martin Baulig <martin@gnome.org>
21229 * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21232 2002-10-14 Martin Baulig <martin@gnome.org>
21234 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21235 mono_class_get() instead of looking in the class cache.
21237 2002-10-13 Martin Baulig <martin@gnome.org>
21239 * debug-mono-symfile.c: Set version number to 28, include the
21240 signature in method names.
21242 2002-10-13 Martin Baulig <martin@gnome.org>
21244 * debug-mono-symfile.h: Set version number to 27.
21246 2002-10-11 Martin Baulig <martin@gnome.org>
21248 * gc.c: Don't register/unregister NULL pointers as disappearing links.
21250 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21252 * metadata.c, metadata.h: added helper function to allocate signatures.
21254 2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21256 * icall.c: added internal call to get the location of machine.config.
21258 2002-10-08 Martin Baulig <martin@gnome.org>
21260 * debug-mono-symfile.c: Ignore classes with a pending init for the
21263 2002-10-03 Dick Porter <dick@ximian.com>
21265 * threads.c: Freebsd pthread_t is a pointer
21267 2002-10-03 Dick Porter <dick@ximian.com>
21269 * socket-io.c: Implemented GetHostName_internal
21271 2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21274 (mono_config_parse_file): don't leak the text.
21276 2002-10-02 Martin Baulig <martin@gnome.org>
21278 * debug-mono-symfile.c: Added support for methods.
21280 2002-10-01 Martin Baulig <martin@gnome.org>
21282 * debug-mono-symfile.c: Don't emit methods and line numbers for
21283 the dynamic symbol file, just write the type table. We can easily
21284 have an external helper program which creates a symbol file for an
21287 2002-10-01 Dick Porter <dick@ximian.com>
21289 * threads.c (ves_icall_System_Threading_Thread_Start_internal):
21290 Only add the handle to the cleanup array when we're about to
21291 launch the thread. Bug 31425 deadlocked when the test was run on
21294 2002-10-01 Martin Baulig <martin@gnome.org>
21296 * debug-mono-symfile.c: Added support for properties.
21298 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21300 * reflection.c: unaligned store fix from Mark Crichton
21301 <crichton@gimp.org>.
21303 2002-09-27 Martin Baulig <martin@gnome.org>
21305 * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
21308 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21310 * assembly.h, assembly.c: use a sane API to hook into the assembly
21311 loading process instead of a useless special-purpouse hack
21312 (ngen needs a hook, too, for example).
21314 2002-09-27 Dick Porter <dick@ximian.com>
21316 * threads.c (mono_thread_init): Call GetCurrentProcess() so
21317 io-layer can set up some process handle info. Not needed on w32,
21318 but doesn't hurt either.
21320 * process.c: Pass the program name in the second parameter to
21321 CreateProcess, so the path is searched. Include the working
21322 directory. Implemented process name, process enumeration, and some
21323 process detail internal calls.
21325 * icall.c: Added internal calls for process lookup, and some
21328 2002-09-26 Martin Baulig <martin@gnome.org>
21330 * assembly.c (mono_install_open_assembly_hook): New global
21331 function to install a function to be invoked each time a new
21332 assembly is loaded.
21333 (mono_assembly_open): Run this callback function if set.
21335 * debug-mono-symfile.c: Put back line numbers for the dynamic
21336 symbol file and also record the .il file as source file. This
21337 allows us to install the temporary symbol file as `file.dbg' just
21338 like a compiler-generated one.
21340 2002-09-26 Nick Zigarovich <nick@chemlab.org>
21342 * Corrected typo in gc.c (BOHEM vs BOEHM).
21344 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21346 * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
21347 GetProperties. Also avoid calling g_slist_length in GetProperties and
21350 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21352 * reflection.c: avoid unaligned stores (bug spotted by
21353 Mark Crichton <crichton@gimp.org>).
21355 2002-09-25 Martin Baulig <martin@gnome.org>
21357 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
21358 instead of guint64 for addresses and added prologue/epilogue info.
21360 2002-09-25 Martin Baulig <martin@gnome.org>
21362 * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
21363 store line number info. For the dynamic symbol file, we only need
21364 to provide the JIT generated dynamic line number info for the dynamic
21367 2002-09-25 Martin Baulig <martin@gnome.org>
21369 * debug-mono-symfile.h: Incremented version number.
21371 2002-09-24 Martin Baulig <martin@gnome.org>
21373 * class.c (mono_debugger_class_init_func): New global function
21375 (mono_class_init): If mono_debugger_class_init_func is non-NULL,
21378 * debug-mono-symfile.c (mono_debug_symfile_add_type): New
21379 function. This is called via the mono_debugger_class_init_func
21380 hook to add all types to the dynamic type table.
21381 (ves_icall_MonoDebugger_GetType): New interncall to get a class
21382 from its metadata token.
21384 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
21385 New interncall for the debugger.
21387 2002-09-24 Nick Drochak <ndrochak@gol.com>
21389 * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
21390 before using it in case it is null.
21392 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21394 * metadata.c: allow custom modifiers in local var signatures
21395 (bug spotted by Zoltan Varga).
21397 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21399 * class.c: deal with the <Module> class that may have a NULL vtable.
21400 Eliminate warnings.
21402 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21404 * image.c, image.h: more strong name helpers.
21405 * monosn.c: more work: convert pem keys to cryptoapi format.
21407 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21409 * string-icalls.c: speedup IndexOf.
21411 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21413 * icall.c: updates from Zoltan.2.Varga@nokia.com.
21415 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21417 * icall.c: cleanup: use mono_object_domain ().
21419 2002-09-23 Martin Baulig <martin@gnome.org>
21421 * debug-mono-symfile.c: Improved type support.
21423 2002-09-22 Martin Baulig <martin@gnome.org>
21425 * debug-mono-symfile.c: Added support for reference types and strings.
21427 2002-09-22 Martin Baulig <martin@gnome.org>
21429 * debug-mono-symfile.c: Started to work on the type table.
21431 2002-09-21 Martin Baulig <martin@gnome.org>
21433 * debug-mono-symfile.c: Largely reworked the symbol table format.
21434 The symbol table is now incrementally updated each time a new
21435 method is added. We're now also using our own magic and version
21436 so that you don't need to recompile all your classes if the
21437 dynamic table changes.
21438 (mono_debug_update_mono_symbol_file): Removed.
21439 (mono_debug_symfile_add_method): New function to add a method.
21441 2002-09-21 Martin Baulig <martin@gnome.org>
21444 ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
21447 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
21448 New interncall to get a method from its metadata token.
21450 2002-09-21 Martin Baulig <martin@gnome.org>
21452 * debug-mono-symfile.c: Create type table.
21454 2002-09-20 Martin Baulig <martin@gnome.org>
21456 * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
21458 2002-09-20 Martin Baulig <martin@gnome.org>
21460 * debug-mono-symfile.c: Provide information about params and locals.
21462 2002-09-20 Martin Baulig <martin@gnome.org>
21464 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21467 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21468 interncall to get a method from its metadata token.
21470 2002-09-20 Martin Baulig <martin@gnome.org>
21472 * debug-mono-symfile.c: Added a few checks for method->header
21473 being non-NULL. This should never happen, but for the moment
21474 let's use a g_warning() rather than a g_assert().
21476 2002-09-19 Mark Crichton <crichton@gimp.org>
21478 * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21479 even if support for it isn't present. Added an #ifdef to fix this.
21481 * socket-io.c: Added checks back for Solaris support.
21483 2002-09-19 Martin Baulig <martin@gnome.org>
21485 * debug-mono-symfile.c (read_string, write_string): Reflect latest
21486 changes in the symbol file format.
21488 2002-09-18 Martin Baulig <martin@gnome.org>
21490 * debug-mono-symfile.c: Set version number to 21.
21492 2002-09-18 Dick Porter <dick@ximian.com>
21494 * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
21495 on netbsd. Fixes bug 30051.
21497 2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21500 (set_version_from_string): little fix.
21502 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21504 * monosn.c, Makefile.am: added strong name utility.
21505 * reflection.h, reflection.c: implemented delayed signing,
21506 locale, version and hash id assembly attributes.
21508 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21510 * loader.c, metadata.c: load param attributes in signatures.
21512 2002-09-16 Martin Baulig <martin@gnome.org>
21514 * debug-mono-symfile.c: Added string table with all method names.
21516 2002-09-14 Martin Baulig <martin@gnome.org>
21518 * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
21519 fast method lookup.
21521 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21523 * reflection.c: record the public key token of referenced assemblies.
21525 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21527 * image.c, image.h: added functions to get the strong name and the
21528 public key of an assembly.
21529 * pedump.c: use them.
21531 2002-09-12 Dietmar Maurer <dietmar@ximian.com>
21533 * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
21535 2002-09-12 Miguel de Icaza <miguel@ximian.com>
21537 * marshal.c (mono_marshal_get_managed_wrapper): Added
21540 2002-09-11 Martin Baulig <martin@gnome.org>
21542 * gc.c: Call GC_unregister_disappearing_link() on all links when
21543 finalizing them, this is necessary to aviod a crash in boehm's
21546 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21548 * gc.c: handle GetTarget for finalized objects spotted and fixed by
21551 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21553 * icall.c: implemented MonoType::Module.
21554 * reflection.c, reflection.h: mono_module_get_object () from
21555 Tomi Pakarinen <tomi.pakarinen@welho.com>.
21557 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21559 * icall.c: ignore overridden methods in GetMethods ().
21560 Fix for FieldInfo::SetValue().
21561 * object.c: handle float/double in runtime invoke.
21563 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21565 * object.c: allow a constructor to be called again on an object.
21567 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21569 * class.h, class.c: move field layout code to it's own function and
21570 export it. Get an interface id earlier. Move fields in MonoClass
21571 so they are more cache friendly and align the bitfields.
21572 * loader.c: temporary handle get_param_names() for a runtime method.
21573 * reflection.c, reflection.h: more code to handle runtime creation of
21576 2002-09-09 Martin Baulig <martin@gnome.org>
21578 * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
21579 signature with the pinvoke field being set for the actual call.
21581 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21583 * icall.c: removed some unused icalls. Start of map of glib charsets
21584 to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
21586 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21588 * debug-helpers.c: break infinite loop (found and fixed by
21589 Holger Arnold <harnold@gmx.de>).
21591 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21593 * icall.c: target may be null in create_delegate.
21595 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21597 * marshal.c: handle a boolean return type.
21599 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21601 * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
21603 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21605 * gc.c: fix weakreferences.
21607 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21609 * icall.c: added icall to get default codepage.
21611 2002-09-03 Dick Porter <dick@ximian.com>
21614 * threads.c: Use MonoThread instead of MonoObject where
21617 Store running thread objects in a hash table, so that we have all
21618 the info to hand when waiting for them to finish
21619 (means we don't need OpenThread() any more, so mingw builds should
21620 be fully functional again.)
21623 * object.h: Added thread ID to MonoThread
21625 2002-09-03 Martin Baulig <martin@gnome.org>
21627 * icall.c (System.Reflection.Assembly::get_location): New interncall.
21629 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21631 * icall.c: fixed leak in get_temp_path. Thanks lupus.
21633 2002-09-03 Martin Baulig <martin@gnome.org>
21635 * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
21636 argument to store the end address of the disassembled instruction.
21638 * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
21639 here from debug-symfile.h.
21640 (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
21641 JIT into this struct.
21642 (MonoSymbolFile): Added `char *image_file' field.
21643 (MonoDebugGetMethodFunc): Removed.
21644 (mono_debug_update_mono_symbol_file): Removed the hash table argument.
21645 (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
21646 (mono_debug_find_method): New method.
21648 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
21649 create a full symbol file.
21650 (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
21651 and static symbol files.
21652 (mono_debug_find_method): The symbol file keeps an internal method hash,
21653 call this to get a MonoDebugMethodInfo from a MonoMethod.
21655 * debug-symfile.[ch]: Removed.
21657 2002-08-29 Miguel de Icaza <miguel@ximian.com>
21659 * image.c (do_mono_image_open): Remove linker version check.
21661 2002-08-29 Dietmar Maurer <dietmar@ximian.com>
21663 * marshal.c (mono_marshal_get_managed_wrapper): don't cache
21664 wrappers for instance methods.
21666 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21668 * icall.c: added ves_icall_System_IO_Path_get_temp_path.
21670 2002-08-28 Dick Porter <dick@ximian.com>
21672 * Makefile.am: Export HOST_CC for w32 builds
21674 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21676 * file-io.c process.c: MonoString are null terminated, no
21677 need for mono_string_to_utf16() anymore.
21679 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21681 * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
21683 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
21685 * icall.c, reflection.h: speedup System.MonoType.
21687 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21689 * reflection.c: allow null as the value of a string argument in
21690 custom attributes constructors.
21692 2002-08-27 Martin Baulig <martin@gnome.org>
21694 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
21695 `trampoline_address' field.
21697 2002-08-27 Dietmar Maurer <dietmar@ximian.com>
21699 * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
21700 check (fixes bug #29486)
21702 2002-08-27 Martin Baulig <martin@gnome.org>
21704 * debug-mono-symfile.c: Changed the file format in a way that allows us
21705 open it read-only and to use a specially malloced area for all the
21706 dynamic data. We can now also generate a symbol file on-the-fly if we're
21707 debugging IL code and there is no MCS generated symbol file for it.
21709 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21711 * object.c: added a define for a good string and array
21712 creation speedup (not enabled by default because we need to deal with
21715 2002-08-26 Martin Baulig <martin@gnome.org>
21717 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
21718 function to create a dynamic symbol file. This is used by the
21719 debugger to create a symbol file for IL code on-the-fly.
21721 2002-08-26 Martin Baulig <martin@gnome.org>
21723 * loader.c (mono_lookup_pinvoke_call): Include the error message
21724 from g_module_error() in the error message.
21726 2002-08-24 Martin Baulig <martin@gnome.org>
21728 * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
21729 function to update the symbol file. The symbol file is mmap()ed
21730 writable, but private. This allows us to install the symbol file
21731 together with the assembly.
21733 2002-08-24 Martin Baulig <martin@gnome.org>
21735 * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch]
21736 but they can read the new symbol file format which mcs is now creating.
21738 * debug-symfile.c (mono_debug_find_source_location): Moved to
21739 debug-mono-symfile.c; this is now operating on the new symbol file.
21741 2002-08-23 Martin Baulig <martin@gnome.org>
21743 * debug-helpers.c (mono_method_desc_from_method): New function to get
21744 a MonoMethodDesc from a MonoMethod.
21746 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21748 * object.c: fixes assertion failure caused by multiple ExecuteAssembly
21749 calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
21751 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21753 * string-icalls.[ch]: make helper methods static.
21755 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21757 * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
21758 types to it and to SetValueInternal.
21760 * object.c: Moved handle_enum label to its proper place. This was the
21763 This time i compiled mcs and gtk-sharp and they both work.
21765 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21767 * icall.c: reverted partially my previous patch until
21768 object.c:set_value handles enums correcly.
21770 2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21773 (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
21774 (ves_icall_System_Environment_get_MachineName): removed warning when
21775 compiling under cygwin.
21777 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21779 * object.c: fixed field_get_value() for reference types.
21781 2002-08-22 Dick Porter <dick@ximian.com>
21783 * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
21784 Don't free a buffer while it's still needed. Patch from Jonathan
21785 Liger <Jonathan.liger@wanadoo.fr>
21787 2002-08-21 Miguel de Icaza <miguel@ximian.com>
21789 * icall.c (ves_icall_System_Environment_get_Platform): Add new
21792 2002-08-21 Dietmar Maurer <dietmar@ximian.com>
21794 * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
21795 (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
21797 * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
21798 we call unmanaged code which throws exceptions.
21800 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21802 * appdomain.h: added per-domain entry_assembly.
21803 * appdomain.c: ensure mono_runtime_exec_main () gets non-null
21805 * icall.c: Assembly::GetEntryAssembly icall.
21806 * object.c: set domain->entry_assembly in mono_runtime_exec_main().
21807 Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
21809 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21811 * appdomain.h, gc.c: added mono_domain_finalize ().
21813 2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21816 (mono_print_unhandled_exception): changed g_warning by g_printerr
21817 because g_log has a 1024 characters limit (yeah, i got a big stack
21818 trace). Don't print exception name, that should be in ToString
21821 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21823 * icall.c: added ves_icall_FieldInfo_SetValueInternal.
21824 * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
21826 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21829 (mono_print_unhandled_exception): after previous commit, i realized
21830 that MS calls ToString on the exception. I changed this function to
21831 do that. This way we get stack_trace for free.
21833 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21836 (mono_print_unhandled_exception): invoke Message property instead of
21837 getting 'message' field from Exception. Don't allocate memory for
21838 'trace' and 'message' if not needed.
21840 2002-08-18 Dick Porter <dick@ximian.com>
21842 * unicode.c: Fix asserts to match Encoder.cs checks
21844 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21846 * marshal.c: fix unaligned store issue and a few wrong
21847 opcode argument types.
21849 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21851 * icall.c: added GetUninitializedObjectInternal internal call.
21853 2002-08-16 Dietmar Maurer <dietmar@ximian.com>
21855 * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
21856 to the right domain.
21858 2002-08-14 Dietmar Maurer <dietmar@ximian.com>
21860 * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
21862 * class.c (class_compute_field_layout): set blittable to false for Strings
21864 * appdomain.c (mono_domain_transfer_object): added support for ISerializable
21866 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21868 * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
21869 first chunk of code to create types at runtime. Code to
21870 handle ReflectedType/DeclaringType. Make reflection handles
21873 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21875 * class.c: set correct name in arrays.
21877 2002-08-13 Dietmar Maurer <dietmar@ximian.com>
21879 * appdomain.c (mono_domain_transfer_object): make it work with
21880 valuetypes. bug fixes.
21882 2002-08-12 Dick Porter <dick@ximian.com>
21884 * object.h: Rename some parameters to avoid c++ keywords (Patch
21885 from Joseph Wenninger <kde@jowenn.at>)
21887 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
21889 * icall.c: added icall to implement Assembly.GetFile*.
21891 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21893 * reflection.h, reflection.c: code to embed managed resources.
21895 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21897 * class.c: move all the type size stuff into
21898 class_compute_field_layout().
21900 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21902 * class.c: ensure enums have always the correct instance size.
21903 * unicode.c: remove wrong assert.
21905 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21907 * assembly.c: fix mem corruption issue.
21908 * image.h, image.c: added mono_image_get_resource () to access
21910 * icall.c: implemented Assembly.EntryPoint property and some
21911 Managed Resources related internalcalls.
21914 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21916 * image.c, image.h: impemented mono_image_get_entry_point ().
21917 * appdomain.c: use mono_image_get_entry_point.
21919 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21921 * reflection.c: support the object type argument when loading
21924 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
21926 * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
21927 String as return type.
21929 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
21931 * reflection.c: fix encoding of named args for custom attrs to match
21932 the ms implementation. Read them back when instantiating custom
21935 2002-08-02 Radek Doulik <rodo@ximian.com>
21937 * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
21938 by Dietmar as quick fix
21939 (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
21940 16 as stack size, used on more places as quick fix before Dietmar
21941 will fix it properly
21943 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21945 * object.h, object.c: added accessors for fields and properties.
21947 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21949 * class.c, class.h: made mono_class_get_field_from_name ()
21950 loop on parent types.
21951 Added mono_class_get_property_from_name ().
21953 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21955 * class.c, class.h: move the code to setup the type vtable in its own
21956 function so that it can be reused also for types created at runtime.
21957 Eliminate the "class" identifier from the header file.
21958 * reflection.c: setup the vtable for enums so that we can create
21959 objects for use in SetConstant ().
21961 2002-08-02 Dietmar Maurer <dietmar@ximian.com>
21963 * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
21964 instead of the delegate itself as this pointer (bug #28383)
21966 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
21968 * marshal.c (mono_marshal_get_managed_wrapper): added return type
21971 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21973 * loader.c: don't set the pinvoke bit on icalls.
21975 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
21977 * debug-helpers.c (mono_method_full_name): only print a number to
21978 indicate wrapper type (so that the output is more readable in traces).
21980 2002-07-30 Dietmar Maurer <dietmar@ximian.com>
21982 * class.c (mono_class_init): include method override patch from Paolo
21984 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
21986 * icall.c: fixed GetTypeCode().
21988 2002-07-29 Dietmar Maurer <dietmar@ximian.com>
21990 * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
21991 use real delegate invoke function to make it work with multicast
21992 delegates (fix bug# 28291).
21994 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21996 * object.c: load constant strings.
21998 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22000 * reflection.c: no magic numbers.
22001 * tabledefs.h: security action enum.
22003 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22005 * assembly.c: fix possible memory corruption.
22007 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22009 * reflection.h, reflection.c: added support for linking resources.
22010 * verify.c: check we have an updated corlib.
22012 2002-07-25 Dietmar Maurer <dietmar@ximian.com>
22014 * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22016 (mono_marshal_string_array): null terminate unmanaged string arrays.
22017 (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22019 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22021 * icall.c: Type.GetType () can now return also types from the
22024 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22026 * loader.h, loader.c: stack walking support.
22027 * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22028 GetCallingAssembly.
22030 2002-07-24 Dietmar Maurer <dietmar@ximian.com>
22032 * marshal.c: added optimisations for blittable types
22034 * class.c (mono_array_class_get): do not set blittable attribute on arrays
22035 (mono_class_setup_mono_type): set blittable attribute for single
22038 * marshal.c (mono_string_utf8_to_builder): impl.
22039 (mono_string_builder_to_utf8): impl.
22040 (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22042 2002-07-23 Dietmar Maurer <dietmar@ximian.com>
22044 * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22045 (mono_marshal_get_managed_wrapper): impl. byref types
22047 2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22050 (search_method): don't display debug message.
22052 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
22054 * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22056 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22058 * appdomain.c: set the missing filename when throwing exception.
22060 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
22062 * metadata.c (mono_type_size): code cleanup
22063 (mono_type_stack_size): removed some test code
22065 2002-07-21 Miguel de Icaza <miguel@ximian.com>
22067 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22068 mono_get_exception_file_not_found now.
22070 * exception.c (mono_exception_from_name_two_strings): New version
22071 that will call a constructor with two string arguments.
22072 (mono_get_exception_file_not_found): New helper routine, used to
22073 report file-not-found errors.
22075 2002-07-20 Dick Porter <dick@ximian.com>
22078 * process.c: Pass file handles to CreateProcess
22082 * file-io.c: Implemented CreatePipe
22084 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
22086 * metadata.c (mono_get_param_info): set alignment for value types
22088 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22090 * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22091 Constify mono_domain_assembly_open().
22092 * loader.c: handle null namespace in icalls.
22094 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
22096 * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22097 (emit_str_to_ptr_conv): marshal object as structs
22099 * metadata.c (mono_type_to_unmanaged): marshal object as structs
22101 * marshal.c (mono_marshal_get_runtime_invoke): support value types
22103 2002-07-18 Dietmar Maurer <dietmar@ximian.com>
22105 * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22106 (mono_marshal_get_native_wrapper): we an now return value types
22108 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22110 * verify.c: more checks implemented.
22112 2002-07-17 Dietmar Maurer <dietmar@ximian.com>
22114 * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22116 (mono_marshal_get_native_wrapper): allow byref arguments
22117 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22118 impl. PtrToStringXXX methods
22119 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22120 (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22121 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22122 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22123 (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22125 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22127 * reflection.c: fix buglet in parsing an assembly name.
22129 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
22131 * marshal.c (emit_ptr_to_str_conv): first impl.
22133 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22135 * object.c, class.h: cache the vtable in the class as suggested by
22136 vargaz@freemail.hu (Zoltan Varga).
22138 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22140 * class.h, loader.c: added mono_field_from_token().
22141 * verify.c: first cut of type checking code.
22143 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
22145 * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22147 2002-07-15 Dietmar Maurer <dietmar@ximian.com>
22149 * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22151 (mono_marshal_get_remoting_invoke): impl.
22152 (mono_delegate_begin_invoke): impl.
22153 (mono_mb_emit_save_args): impl.
22154 (mono_delegate_end_invoke): impl.
22155 (mono_marshal_get_delegate_begin_invoke):
22156 (mono_marshal_get_delegate_end_invoke):
22157 (mono_marshal_get_delegate_invoke): generate a special name for
22158 those methods (including the signature) and associate them whith
22159 the delegate class.
22161 2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22164 (mono_reflection_type_from_name): now it has a MonoImage parameter
22165 which is used as the default image to search the type in. If the image
22166 is NULL or getting the type from it fails, it defaults to corlib.
22168 * icall.c: changed 1 call to mono_reflection_type_from_name to match
22171 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22173 * reflection.c: update the parameter table index.
22175 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22177 * domain.c: don't include the mark byte in the string hash.
22179 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22181 * icall.cs: icall for Type.GetTypeCode ().
22182 * verify: a couple of fixes and disabled local initialization checks.
22184 2002-07-12 Dietmar Maurer <dietmar@ximian.com>
22186 * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22188 * debug-helpers.c (mono_method_full_name): print the type of the
22191 * metadata.c (mono_signature_hash): a hash function for signatures
22192 (mono_signature_hash): better hash algorithm
22194 * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22196 * debug-helpers.c (mono_method_full_name): this can now generate
22197 method names with signatures
22199 * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22200 method dont have this pointers.
22202 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22204 * reflection.c: fixup typebuilder tokens.
22205 * image.c: fix buglet.
22206 * marshal.h: remove whitespace.
22207 * metadata.h, metadata.c: reinstate code that was removed.
22208 * verify.c: handle catch directives and fix another couple of bugs.
22210 2002-07-11 Dietmar Maurer <dietmar@ximian.com>
22212 * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22213 (mono_marshal_get_native_wrapper): make it comp. with the old code
22214 (mono_marshal_get_native_wrapper): support boolean
22215 (mono_marshal_get_managed_wrapper): support more types
22217 2002-06-25 Dietmar Maurer <dietmar@ximian.com>
22219 * class.c (class_compute_field_layout): compute class->blittable attribute.
22221 2002-07-09 Dick Porter <dick@ximian.com>
22223 * threads.c: Make the thread cleaning up cope with threads that
22226 2002-07-08 Radek Doulik <rodo@ximian.com>
22228 * reflection.c (method_encode_code): use non-translated values to
22229 compute finally_start, this fixes exception handling on ppc, yay!
22231 * decimal.h (struct signscale): fix endianess
22233 2002-07-07 Radek Doulik <rodo@ximian.com>
22235 * reflection.c: swap box_val and not val
22237 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22239 * reflection.c, reflection.h: handle full assembly info in type name.
22240 Handle Type arguments when loading custom attributes.
22241 * icall.c: updated to use new mono_reflection_type_from_name () method.
22243 2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22246 (method_from_memberref): also print assembly name when method not found.
22248 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22251 (ves_icall_TypeGetProperties): fixed bug #27473.
22253 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22255 * reflection.c: display image name and token when cannot find the
22256 .ctor for an attribute.
22258 2002-07-05 Martin Baulig <martin@gnome.org>
22260 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22262 2002-07-04 Dick Porter <dick@ximian.com>
22264 * threads.c (mono_thread_cleanup): Nasty kludge to get this to
22265 compile on mingw. This will cause mingw builds to not wait for
22266 subthreads to terminate after the main thread does. I've lodged a
22267 bug with the mingw developers for them to wrap OpenThread().
22269 2002-07-03 Dick Porter <dick@ximian.com>
22271 * threads.c: Store thread IDs instead of handles, because
22272 GetCurrentThread() returns a pseudohandle and therefore stores
22273 useless values. mono_thread_cleanup() continues checking the
22274 array of threads until it is empty, to cope with subthreads
22275 spawning new threads after the main thread has finished.
22279 * profiler-private.h: Pass the thread ID to thread profiler
22280 functions, instead of a handle
22282 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22284 * verify.c: fixes to make it more usable.
22285 * pedump.c: added --verify code to verify IL code in an assembly.
22287 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22289 * reflection.c: turn errors into warnings to allow compiling corlib.
22291 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22293 * reflection.c: add special cases to compile corlib.
22295 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22297 * reflection.c: handle properties with only a set method.
22299 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22301 * opcodes.h: add enum with opcodes in opval order.
22303 2002-07-01 Dick Porter <dick@ximian.com>
22306 * object.c (mono_runtime_run_main): Removed unneeded argument
22308 2002-06-28 Martin Baulig <martin@gnome.org>
22310 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22312 2002-06-27 Dick Porter <dick@ximian.com>
22314 * threads.c: Store the handle in both the parent thread and in the
22315 subthread, to minimise the time between starting a new thread and
22318 2002-06-26 Dick Porter <dick@ximian.com>
22320 * appdomain.c (mono_runtime_cleanup): Close the socket library
22321 after all the threads have finished, not before
22323 2002-06-26 Martin Baulig <martin@gnome.org>
22325 * debug-symfile.c (mono_debug_find_source_location): Added
22326 `guint32 *line_number' argument. If it's not NULL, store the line number
22327 there and return the file name without the line number.
22329 2002-06-25 Dick Porter <dick@ximian.com>
22333 * process.c: Process forking and other support functions
22335 2002-06-25 Dick Porter <dick@ximian.com>
22337 * image.c (do_mono_image_open): Set ref_count to 1, so that bad
22338 things dont happen when the image is closed.
22339 (mono_image_lookup_resource): Walk the resource section looking
22340 for a particular entry
22342 * cil-coff.h: PE resource section decoding
22344 2002-06-25 Dick Porter <dick@ximian.com>
22348 (mono_assembly_foreach): Accessor functions to walk the list of
22350 (mono_assembly_set_main):
22351 (mono_assembly_get_main): Process methods need to know which
22352 assembly is the "main" one
22354 * object.c (mono_runtime_run_main): Record the main assembly
22356 * debug-helpers.c: Fix typo
22358 2002-06-24 Dietmar Maurer <dietmar@ximian.com>
22360 * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
22361 (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
22363 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22365 * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
22367 2002-06-21 Miguel de Icaza <miguel@ximian.com>
22369 * image.c (do_mono_image_open): Initialize reference count,
22370 otherwise we leak the MonoImage.
22372 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22374 * reflection.c: small tweak to handle self-hosting.
22376 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22378 * reflection.c: fix type name parse code.
22380 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22382 * reflection.c: break out of the loop.
22383 * image.c: special case corlib.
22385 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22387 * reflection.c: add all the custom attrs at the end to ensure the
22388 ctors have been properly initialized when the attributes are defined
22389 in the current assembly.
22391 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22393 * reflection.c: handle correctly multiple-nested types.
22395 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22397 * row-indexes.h: fix typos.
22398 * reflection.c: adjust for typos and fix method_def_or_ref
22399 encoding in MethodImpl table.
22401 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22403 * reflection.c: fix entry point patching (thanks Serge!).
22405 2002-06-18 Dietmar Maurer <dietmar@ximian.com>
22407 * verify.c: add check for System.Exception
22409 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22411 * image.c, class.c: minifix for code just c&p'ed.
22412 * reflection.c: warning fix.
22413 * object.h, loader.h, domain.c: load also StringBuilder.
22415 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22417 * marshal.h, marshal.c: some support code to handle complex marshaling.
22419 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22421 * class.h, class.c, reflection.c: handle ignorecase in GetType ().
22422 Better signatures with vtable error dump.
22424 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
22426 * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
22428 2002-06-17 Dietmar Maurer <dietmar@ximian.com>
22430 * icall.c (ves_icall_Type_GetField): impl.
22432 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22434 * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
22435 to retrieve a marshal description blob for a field or param.
22437 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22439 * reflection.h, reflection.c: change order of nested type emission
22440 to avoid table corruption. The NestedTypes table is sorted.
22441 * icall.c: change order of GetConstructor results to workaround mcs bug.
22443 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22445 * reflection.h, reflection.c: handle field and param marshal
22448 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22450 * icall.c, marshal.c marshal.h: more Marshal class implementation.
22452 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22454 * reflection.c: fix call convention.
22456 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22458 * reflection.h, reflection.c: mono_image_get_memberref_token()
22459 takes a type instead of a class, now. Added
22460 mono_image_get_array_token() to create tokens for the special
22461 multi-dim array methods.
22463 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22465 * assembly.c: handle modules (no assembly table). Split
22466 loading references in its own function.
22467 * class.c: handle moduleref resolution scope.
22468 * image.c, image.h: cache module name in image.
22470 2002-06-07 Martin Baulig <martin@gnome.org>
22472 * reflection.c (mono_image_get_type_info): Only add a class layout entry
22473 if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22475 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22477 * icall.c: more signature fixes that used uint instead of int.
22479 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22481 * reflection.c: fixed signature of field refs.
22483 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22485 * class.c, reflection.c: handle typerefs of nested types
22486 (both on read and when writing files).
22488 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22490 * icall.c: fix method signatures that tried to workaround the previous
22493 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22495 * debug-helpers.c: fix typo.
22497 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22499 * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
22500 rewrote the PE/COFF writing code (our programs are understood by the
22503 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22505 * gc.c, gc.h, icall.c: weakreference support.
22507 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22509 * Makefile.am, mono-config.c: use $(sysconfdir).
22511 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22513 * icall.c: changed default precision of Double.ToString() to 15.
22514 Fixed memory leak. Unified with Single.ToString.
22516 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22518 * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
22520 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22522 * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
22523 gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
22524 warnings and compilation fixes from Dennis Haney (davh@davh.dk)
22527 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22529 * debug-symfile.c, sysmath.c: yet more compilation fixes.
22531 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22533 * reflection.c, socket-io.c: more compilation fixes.
22535 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22537 * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
22538 domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
22539 unicode.c: warning and compiler compatibility fixes.
22541 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22543 * class.h, metadata.c: fixed warnings/compilation errors.
22545 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22547 * Makefile.am, mono-config.c, mono-config.h: configuration file
22549 * loader.c, loader.h: make Dll mapping configurable at runtime in the
22550 config file. Export methods to insert and lookup mappings.
22552 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22554 * reflection.c: handle types and boxed objects in custom attr
22557 2002-05-30 Martin Baulig <martin@gnome.org>
22560 (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
22562 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
22564 * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
22565 to lookup the implmap row for a P/Invoke method.
22566 * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
22567 P/Invoke method from the runtime on an as needed basis.
22569 2002-05-28 Dietmar Maurer <dietmar@ximian.com>
22571 * metadata.c (mono_metadata_parse_signature): impl.
22573 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22575 * class.c: handle .pack directive.
22577 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22579 * object.c: initialize static fields with RVA data.
22581 2002-05-25 Martin Baulig <martin@gnome.org>
22584 (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
22586 2002-05-24 Martin Baulig <martin@gnome.org>
22589 (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
22590 (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
22591 `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
22593 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22595 * object.c: special case string ctros in invoke.
22596 * gc.c: silly whitespace changes.
22598 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
22600 * threadpool.[ch]: impl. a threadpool that can
22601 be used by mint and mono.
22603 2002-05-22 Martin Baulig <martin@gnome.org>
22605 * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
22606 The first argument is now a `MonoReflectionModuleBuilder *', the return
22607 value is a `MonoReflectionModuleBuilder *'. Use the AssemblyBuilder's
22608 `methods' field to get the method builder. The `token' argument is the
22611 * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
22612 invalid characters instead of g_assert_not_reached()ing. This seems
22613 to be the behaviour of mscorlib.
22615 2002-05-22 Dietmar Maurer <dietmar@ximian.com>
22617 * object.c (mono_runtime_invoke_array): applied patch from Rachel
22618 Hestilow to fix bug #25104
22620 2002-05-21 Martin Baulig <martin@gnome.org>
22622 * debug-symfile.c (mono_debug_find_source_location): New function.
22623 Looks up an IL offset in the line number table and returns the source
22624 location as a string.
22626 2002-05-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22629 (mono_double_ToStringImpl): changed %f by %g until we have something
22632 2002-05-21 Nick Drochak <ndrochak@gol.com>
22634 * icall.c : Use different name for Math.Pow's icall. Needed to check
22635 parameters first in C#.
22637 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22639 * icall.c, reflection.h: added icall to get info about an event.
22641 2002-05-20 Radek Doulik <rodo@ximian.com>
22643 * object.c (mono_value_box): don't use memcpy for boxing on BIG
22645 (mono_value_box): don't use memcpy for small sizes on
22646 architectures with unaligned access
22648 2002-05-20 Martin Baulig <martin@gnome.org>
22650 * reflection.c (mono_reflection_setup_internal_class): Don't crash
22651 if `tb->parent == NULL'.
22652 (mono_reflection_create_internal_class): New function. This is
22653 called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
22656 * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
22659 2002-05-19 Martin Baulig <martin@gnome.org>
22661 * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
22662 argument to get the length, don't default to the array length.
22664 2002-05-18 Miguel de Icaza <miguel@ximian.com>
22666 * assembly.c (mono_assembly_setrootdir): New function used to
22667 override the MONO_ASSEMBLIES directory.
22669 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22671 * icall.c: ValueType_GetHashCode() initialize local var.
22673 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22675 * reflection.c: sort custom attributes table.
22677 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22679 * reflection.c: support named args in custom attributes (write support).
22681 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22683 * reflection.c: fix finally position calculation.
22685 2002-05-15 Radek Doulik <rodo@ximian.com>
22687 * reflection.c: fixed endianess at many places
22689 * icall.c (ves_icall_InitializeArray): comment out debug msg
22691 2002-05-15 Dietmar Maurer <dietmar@ximian.com>
22693 * object.c (mono_unhandled_exception): new function to handle
22694 unhandled exceptions.
22695 (mono_unhandled_exception): call the UnhandledException event.
22696 (mono_runtime_delegate_invoke): impl.
22698 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
22700 * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
22701 returns the RVA, not the direct pointer to the data. Handle the case
22702 when the class size is fixed.
22704 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22706 * reflection.c: fix some endianess issues.
22708 2002-05-14 Dietmar Maurer <dietmar@ximian.com>
22710 * object.c (mono_runtime_invoke): is now able to catch exceptions.
22712 * threads.c (mono_thread_init): added a callback which is invoked
22715 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
22717 * icall.c: make GetHashCode return non-negative values.
22719 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
22721 * object.c, icall.c, gc.c: revert to address-based hashcode.
22723 2002-05-13 Miguel de Icaza <miguel@ximian.com>
22725 * icall.c (mono_double_ParseImpl): Added ParseImpl method.
22727 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22729 * icall.c, class.c: special case <Module>.
22731 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
22733 * icall.c: fix bug in GetNow().
22735 2002-05-11 Dietmar Maurer <dietmar@ximian.com>
22737 * object.c (mono_runtime_class_init): make sure that we call all
22738 static class constructors.
22740 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22742 * reflection.c: sort methodsemantics table.
22744 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22746 * reflection.h, reflection.c: honour init locals setting.
22748 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
22750 * icall.c: copied Double ToStringImpl for Single ToStringImpl
22752 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22754 * reflection.c: support ContructorBuilders in attribute blob creation.
22756 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22758 * reflection.c: some changes to build a binary that can be run
22759 directly in windows.
22761 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22763 * loader.c: print a big message when an icall can't be found.
22765 2002-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22767 * string-icalls.c: fix bug 24248.
22769 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22771 * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
22772 icall.c, reflection.h: separate assembly loading by pathname and by
22773 assembly name. Use the MONO_PATH env var to search for assemblies.
22775 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22777 * assembly.c, image.h: add some support for assemblies
22778 with multiple modules.
22779 * class.c, class.h: export mono_class_from_typeref().
22780 * loader.c: remove duplicated code and use mono_class_from_typeref(),
22783 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22785 * unicode.c: Char.IsNumber doesn't include hex digits as the ms
22786 documentation says (the ECMA one is correct).
22788 2002-05-02 Dick Porter <dick@ximian.com>
22790 * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
22791 Don't name the synchronisation mutex.
22793 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
22796 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
22797 Make the prototypes match.
22798 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
22802 (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
22803 systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
22804 all systems have tm.tm_zone, so use strftime() with %Z to print
22805 the timezone abreviation into a temp string.
22807 * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
22808 rather than mono_array_addr() on a MonoString on Big Endian
22811 2002-04-30 Dietmar Maurer <dietmar@ximian.com>
22813 * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
22816 2002-04-30 Dick Porter <dick@ximian.com>
22818 * socket-io.c: Cope with SOCKET being an integer rather than a
22821 * threads.c: Added Thread_free_internal, to deal with thread
22822 handle cleanup. Moved calls to handle_store() and handle_remove()
22823 to start_wrapper(), so each can only be called once. Allocate
22824 synchronisation blocks with GC_malloc(), and use GC finalisation
22825 to close the handles.
22827 * icall.c: added System.Threading.Thread::Thread_free_internal
22829 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22831 * icall.c: support Environment.Exit, CommandLineArgs().
22833 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22835 * object.c, object.h: added mono_runtime_run_main () and
22836 mono_runtime_get_main_args () for use in System.Environment.
22838 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22840 * gc.c: fix thinko, enable actual finalization since the jit is now
22843 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22845 * gc.c, object.c: take into account that an object may be offset wrt the address
22846 returned by GC_malloc().
22848 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22850 * image.c: handle files without entries in the assembly table (modules).
22852 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
22854 * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow
22855 mcs selfhosting again (build breaker) and did move the check to class instead. parent is
22856 allowed to be null when it's System.Object class setup.
22858 2002-04-27 Martin Baulig <martin@gnome.org>
22860 * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
22861 if `tb->parent == NULL' rather than crashing.
22863 2002-04-28 Nick Drochak <ndrochak@gol.com>
22865 * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error. Was
22866 calling acos() where asin() should have been called.
22868 2002-04-26 Martin Baulig <martin@gnome.org>
22870 * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
22871 instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
22872 there's a subdirectory called `System', but we don't want to read that
22873 subdirectory as an assembly.
22875 2002-04-25 Martin Baulig <martin@gnome.org>
22877 * debug-symfile.c: Reflect latest MonoString changes.
22879 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22881 * rand.c, rand.h: instance method icalls need to have an explicit
22882 this pointer as first argument in the C implementation.
22884 2002-04-25 Nick Drochak <ndrochak@gol.com>
22886 * icall.c: Fix typo in map for GetNonZeroBytes
22888 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
22890 * string-icalls.c : String does now passes unit tests without any
22891 errors, the following changes has been made:
22893 Implemented replace methods.
22894 Renaming of methods to (try) follow the standard.
22895 Fixed compare ordinal
22896 Made all memory allocated directly to function instead of via icall function.
22897 Small performance fix in is_in_array function
22899 (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
22901 c (mono_string_Internal_ctor_charp_int_int):
22902 (mono_string_Internal_ctor_sbytep_int_int): Removed check for
22903 sindex < 0, throw ArgumentOutOfRangeException instead of
22904 ArgumentNullException.
22906 Added new check for length == 0, however
22907 I need to make it return String.Empty from the C code.
22909 (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
22910 that calculate the length for us here.
22912 (mono_string_Internal_ctor_sbytep_int_int): Replaced
22913 mono_string_new_utf16 with mono_string_new, since value is utf8.
22915 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22917 * object.c: register the object for finalization if needed.
22918 Allocate one more char in the string for the terminating 0 char.
22920 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22922 * class.c, class.h, image.c: check if a type implemenst a destructor.
22923 Use the proper key for array class lookups.
22924 * icall.c: register the icalls in the System.GC class.
22925 * gc.c, gc.h: GC-related functions and icalls.
22927 2002-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22931 * unicode.c: free some strings gotten from mono_string_to_utf8 and
22932 changed a couple of free () by g_free ().
22934 * decimal.c: one-liner in the comments for decimal2string ().
22936 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
22938 * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
22940 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
22942 * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
22943 * object.c (mono_runtime_invoke_array) : handle null in params
22945 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
22947 * string-icalls.c: fixed bug in split (one off bug)
22949 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
22951 * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
22952 * icalls.c: added String::Equals as internal method
22954 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
22956 * threads.c: fixed bug in the double interlocked functions
22958 2002-04-22 Patrik Torstensson <patrik.torstensson@labs2.com>
22960 * threads.c: implemented all of the new interlocked icalls.
22961 * string-icalls.c: fix a bug in insert.
22962 * icalls.c: added the icalls for interlocked, removed old string functions.
22964 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22966 * loader.c: fix off-by-one error when reading argument names.
22968 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22970 * profiler.c: win32 counter implementation (untested).
22971 * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
22972 (the latter needs testing and more complete impl. from win32 folks).
22974 2002-04-21 Dan Lewis <dihlewis@yahoo.co.uk>
22976 * object.c: mono_array_new_full workaround mono_array_class_get
22979 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
22981 * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
22982 * object.h (mono_string_chars): Changed casting type.
22984 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
22986 * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
22987 method signatures to use gunichar2 instead of gint16.
22989 2002-04-20 Dan Lewis <dihlewis@yahoo.co.uk>
22991 * object.h, object.c: domain-specific versions of mono_object_new and
22994 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
22996 * object.c: changed String layout
22998 * string-icalls.c (mono_string_Internal_ctor_chara): added
22999 internal string constructors.
23001 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23003 * threads.c: pass 'this' to the thread start routine.
23005 2002-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23007 * string-icalls.c: fix IndexOf and LastIndexOf. Now
23008 InternalCompareStr don't call twice mono_string_cmp_char for the last
23009 character. Improved performance in mono_string_cmp_char.
23011 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23013 * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23014 code into its own library: libmonoruntime.
23016 2002-04-19 Dan Lewis <dihlewis@yahoo.co.uk>
23018 * object.h, object.c: changed array format so that szarrays do not
23019 require a bounds structure.
23020 * icall.c, appdomain.c: support for new szarray format.
23022 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23024 * metadata.c: compare also the retuns type when comparing signatures:
23025 we didn't do this as an optimization since really overloaded methods
23026 must differ also in the arguments, but this doesn't work with
23027 low-level IL code (or when using explicit conversion operators: see
23028 bug#23498 for an example).
23030 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23032 * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23034 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23036 * icall.c: make MonoType::GetElementType its own icall.
23038 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23040 * icall.c: remove MonoMethod_get_Name().
23041 * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23044 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23046 * string-icalls.c: optimized a few methods.
23048 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
23050 * icall.c: added all new string internal calls
23051 * string-icalls.c: added, new string internal call implementation.
23052 * object.c: added mono_string_new_size for allocating a string a size
23054 2002-04-17 Dietmar Maurer <dietmar@ximian.com>
23056 * object.c (mono_object_isinst): use the same code as in the
23057 optimized x86 version.
23059 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23061 * profiler.c: TSC-based timer code (faster and more accurate).
23062 Not hooked up in configure, yet (set USE_X86TSC to 1).
23064 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23066 * profiler.c, profiler.h: track time spent compiling methods.
23067 * threads.c: track thread creation/destruction.
23069 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23071 * profiler.c, profiler.h, profiler-private.h: profiling interface
23072 and sample implementation. Moved here so that it can be used also by
23075 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23077 * reflection.c, reflection.h: keep types and other handles separate in
23078 the hash tables for referred tokens. Add guid for modules.
23080 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23082 * assembly.c: fix bugs found with valgrind.
23083 * metadata.h, metadata.c: added mono_metadata_guid_heap().
23085 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
23087 * threads: added icall support for getting current domain for
23090 2002-04-13 Martin Baulig <martin@gnome.org>
23092 * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23093 (MonoDebugVarInfo): Added `index' field for register based addresses.
23094 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23095 (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23096 `MonoDebugVarInfo *params' and `guint32 this_offset' with
23097 `MonoDebugVarInfo *this_var'.
23099 * debug-symfile.c (relocate_variable): New static function to write
23100 a location description for a local variable or method parameter.
23102 2002-04-12 Martin Baulig <martin@gnome.org>
23104 * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23105 stack offset and begin/end scope address of a local variable.
23106 (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23107 'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23108 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23110 * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23111 Added new relocation types for start/end scope of a local variable.
23113 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23115 * object.h: add mono_object_domain() macro.
23116 * reflection.c: handle typespecs.
23117 * icall.c: MonoMethod::get_Name() implementation.
23119 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23121 * icall.c: String::GetHashCode() icall implementation.
23123 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23125 * icall.c: String::IndexOfAny icall.
23126 * object.c, object.h: make array->max_length more useful.
23127 Intrduced mono_object_class() and mono_string_length() macros.
23129 2002-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23131 * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23132 instead of g_unichar_isdigit.
23134 2002-04-11 Nick Drochak <ndrochak@gol.com>
23136 * icall.c: Implement a simple Double.ToString().
23138 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23140 * appdomain.h: only io-layer.h is supposed to be included.
23141 * icall.c: explicitly import environ. Fix warning.
23143 2002-04-10 Nick Drochak <ndrochak@gol.com>
23145 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23146 return true even if it's not Daylight Savings time.
23147 Only return false for the case where the function isn't
23148 implemented for a plaform (read Windows).
23150 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23152 * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23155 2002-04-09 Dietmar Maurer <dietmar@ximian.com>
23157 * mempool.c (mono_mempool_alloc): only use g_malloc when
23158 absolutely necessary.
23160 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
23162 * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23164 * class.c (mono_class_vtable): use domain mempool to allocate vtable
23165 (mono_class_proxy_vtable): use domain mempool
23167 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23169 * appdomain.h, appdomain.c: split initialization that requires the
23170 execution engine support into mono_runtime_init().
23172 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
23174 * class.c (mono_class_init): don't include vtable inside MonoClass
23175 to save some memory, gather some statistics.
23176 (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23178 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23180 * icall.c: internalcall implementation for ValueType.Equals().
23182 2002-04-06 Dietmar Maurer <dietmar@ximian.com>
23184 * object.c (mono_message_init): moved
23185 (mono_runtime_exec_main): new arch. independent impl.
23186 (mono_runtime_invoke_array): new method - like
23187 mono_runtime_invoke, but you can pass an array of objects.
23188 (mono_remoting_invoke): new arch. independent impl.
23189 (mono_message_invoke): new arch. independent impl.
23190 (mono_runtime_class_init): new arch. independent impl.
23191 (mono_runtime_object_init): new arch. independent impl.
23193 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23195 * metadata.c, object.c, reflection.c: documented the exported
23198 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23200 * icall.c: simpler code to pass the assembly builder data to corlib.
23201 Implement GetNestedTypes() internalcall.
23203 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23205 * class.c: warn if a type can't be loaded.
23207 2002-04-04 Dietmar Maurer <dietmar@ximian.com>
23209 * image.h: typedef MonoImageOpenStatus
23210 * types.h: removed unused file
23212 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
23214 * icall.c: Enum_ToObject accepts enum value arguments.
23216 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23218 * class.c: move initialization of properties, events and nested
23219 classes, so that they happen for interfaces, too.
23221 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23223 * icall.c: cleanup some ugly casts in Array_SetValue*.
23225 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23227 * icall.c: the values array fro enums is of the correct type, now.
23228 Implement (correctly) getFullName instead of assQualifiedName for
23230 * reflection.h, reflection.c: added mono_type_get_name ().
23232 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23234 * assembly.c, image.h: for each MonoImage, record from wich assembly
23236 * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23237 Make Type.Assembly work.
23239 2002-04-03 Dietmar Maurer <dietmar@ximian.com>
23241 * debug-symfile.h: use char* instead of gpointer to avoid
23244 * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23246 * icall.c (ves_icall_InternalExecute): impl. FielSetter
23247 (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23249 2002-03-30 Dietmar Maurer <dietmar@ximian.com>
23251 * icall.c (mono_message_init): impl. (code cleanup)
23252 (ves_icall_InternalExecute): impl. FieldGetter
23254 * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23255 defined we call all (non-static)methods through the vtable.
23257 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
23259 * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
23260 finalizer even though the memory is still referenced (and the chunk of
23261 memory is not freed).
23263 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23265 * assembly.c: fix brokeness.
23267 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
23269 * class.c: kill some warnings. Check explicit interface method
23270 implementation also without considering the namespace.
23271 Load also literal strings in static class data.
23273 2002-03-29 Miguel de Icaza <miguel@ximian.com>
23275 * assembly.c (default_assembly_name_resolver): Kill memory leak.
23276 (default_assembly_name_resolver): Make the resolver take the
23277 "base" directory where the assembly was originally defined, so we
23278 can load DLLs that are in the same directory as the assembly that
23279 is being referenced.
23281 2002-03-28 Dick Porter <dick@ximian.com>
23287 * unicode.c: Warning cleanups
23289 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
23291 * object.h, reflection.h: use the correct type instead of MonoObject.
23293 2002-03-28 Martin Baulig <martin@gnome.org>
23295 * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
23296 (mono_debug_update_symbol_file): Initialize classes if necessary.
23298 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23300 * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
23301 rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
23303 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
23305 * assembly.h: fix function prototype.
23306 * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
23307 * mono-endian.h: use const cast.
23309 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
23311 * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
23313 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23315 * loader.c: don't assert when a typeref can't be loaded, give
23316 a chance to the runtime to trow an exception instead.
23317 * loader.h: fix warning.
23319 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
23321 * class.c (mono_class_proxy_vtable): added proxy support
23323 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
23325 * icall.c: removed last of PAL calls, added System.Environment
23326 * file-io.h, file-io.c: MonoIO implementation
23327 * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
23329 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23331 * appdomain.c: do not use the byte marker in ldstr table lookup.
23332 * debug-helpers.c: allow two ':' to separate class and method name.
23333 * object.c: allocate arrays bounds with the GC, too.
23334 * verify: add a few more checks.
23336 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
23338 * reflection.c: output also literal strings. Allocate parameter data
23339 with GC_malloc() (thanks, Martin, for catching this!).
23341 2002-03-26 Martin Baulig <martin@gnome.org>
23343 * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
23344 include the `this' offset in the `param_offsets'.
23346 2002-03-25 Martin Baulig <martin@gnome.org>
23348 * debug-symfile.c (mono_debug_update_symbol_file): Use a new
23349 mono_debug_get_class() function to get the classes. Added new
23350 relocation types for arrays and strings.
23351 (mono_debug_get_class): New static function to search in all
23352 referenced assemblies for a metadata token.
23354 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
23356 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23358 * reflection.h, reflection.c: use a gc-safe hash for hash tables that
23359 hold gc-allocated objects. Make the string heap a stream like the
23360 others. Removed duplicated code when writing stream info.
23361 Added asserts to catch possible buffer overflows. Set the sorted map
23362 for tables that need sorting. Added some documentation.
23364 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
23366 * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table
23367 for interned strings and vtables.
23369 2002-03-24 Martin Baulig <martin@gnome.org>
23371 * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
23372 it in the array since it was created with g_slist_prepend().
23374 2002-03-24 Martin Baulig <martin@gnome.org>
23376 * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
23377 to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
23378 (mono_debug_method_from_token): Renamed to
23379 ves_icall_Debugger_MonoSymbolWriter_method_from_token().
23380 (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
23382 * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
23385 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
23387 2002-03-24 Martin Baulig <martin@gnome.org>
23389 * debug-symfile.c (mono_debug_local_type_from_signature): New func.
23390 (mono_debug_method_from_token): New func.
23392 * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
23393 New interncall, calls mono_debug_local_type_from_signature().
23394 (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
23395 calls mono_debug_method_from_token().
23397 2002-03-23 Martin Baulig <martin@gnome.org>
23399 * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
23400 specifies the number of bytes to be converted, not the array size.
23401 Return the number of chars, not the number of bytes.
23402 (ves_icall_iconv_get_chars): The `byteCount' argument
23403 specifies the number of bytes to be converted, not the array size.
23405 2002-03-23 Martin Baulig <martin@gnome.org>
23407 * reflection.h (MonoReflectionSigHelper): New type.
23409 * reflection.c (mono_reflection_sighelper_get_signature_local),
23410 (mono_reflection_sighelper_get_signature_local): New functions.
23412 * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
23413 (System.Reflection.Emit.SignatureHelper::get_signature_field): New
23416 2002-03-23 Martin Baulig <martin@gnome.org>
23418 * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
23419 is_writeable is set.
23420 (mono_raw_buffer_update): New function to write the modified map
23423 * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
23425 * debug-symfile.c (mono_debug_update_symbol_file): Call
23426 mono_raw_buffer_update() when done writing.
23428 2002-03-23 Martin Baulig <martin@gnome.org>
23430 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
23432 * debug-symfile.c: Added support for arguments and local variables.
23434 2002-03-23 Dick Porter <dick@ximian.com>
23436 * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
23437 protected by ifdefs, hence breaking the w32 build.
23439 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23441 * object.c: implement is_interned() the right way.
23443 2002-03-21 Martin Baulig <martin@gnome.org>
23445 * debug-symfile.[ch]: New files to handle debugging information
23446 files. There's also support to dynamically update these symbol
23447 files to include machine dependent information.
23449 2002-03-20 Dietmar Maurer <dietmar@ximian.com>
23451 * threads.c (mono_thread_create): new function to create thread
23454 2002-03-20 Martin Baulig <martin@gnome.org>
23456 * icall.c (ves_icall_InternalInvoke): Create a new object if the
23457 method is a constructor.
23458 (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
23459 points to ves_icall_InternalInvoke().
23461 2002-03-20 Dan Lewis <dihlewis@yahoo.co.uk>
23463 * file-io.c: Flush shouldn't throw exceptions.
23465 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
23467 * file-io.c: FileStream flush support; FileSetLength now
23468 restores file pointer.
23470 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23472 * class.c: set image for pointer classes.
23474 2002/03/19 Nick Drochak <ndrochak@gol.com>
23476 * sysmath.c: Forgot one.
23478 2002-03-18 Miguel de Icaza <miguel@ximian.com>
23480 * sysmath.c: Avoid redefining existing names.
23482 2002-03-18 Dan Lewis <dihlewis@yahoo.co.uk>
23484 * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
23485 handled by runtime as icall rather than dllimport from libm.so
23486 * file-io.c, file-io.h: fixed handle argument type.
23488 2002-03-18 Dick Porter <dick@ximian.com>
23490 * reflection.c (mono_image_get_type_info): rename interface to
23491 iface, because of "#define interface struct" on windows.
23493 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
23495 * class.c, class.h: rename and export mono_ptr_class_get().
23496 * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
23497 * reflection.c, reflection.h, icall.c: better/saner type name
23498 parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
23501 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
23503 * class.c (mono_class_init): removed hardcoded GHC_SLOT
23505 * icall.c (ves_icall_InternalInvoke): impl.
23507 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23509 * reflection.c: output the interface map table, too.
23511 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
23513 * class.c (class_compute_field_layout): separate computation of
23514 static field layout
23516 2002-03-12 Dan Lewis <dihlewis@yahoo.co.uk>
23518 * icall.c: added System.Buffer support.
23519 * file-io.c: moved file icalls from PAL to FileStream.
23521 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
23523 * icall.c (ves_icall_System_Object_GetHashCode): impl.
23525 2002-03-11 Dietmar Maurer <dietmar@ximian.com>
23527 * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
23529 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23531 * verify.c, verify.h: moved here the corlib/runtime consistency checks.
23533 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23535 * debug-helpers.{c,h}: moved here from monograph some useful functions
23536 to locate a method by name/signature in a class or image. Included
23537 also a small and flexible IL disassembler.
23539 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23541 * reflection.c: fixup tokens in methods with small header size, too.
23543 2002-03-08 Dietmar Maurer <dietmar@ximian.com>
23545 * object.c (mono_string_to_utf8): remove assert(!error), instead
23548 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
23550 * icall.c: update to the new mono_Array_class_get interface.
23552 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23554 * appdomain.c, object.c: Boehm-GC enable.
23555 * icall.c: make get_data_chunk() support split data requests.
23556 Ensure a class is initialized in more cases. Return only the first
23557 property found in GetProperties() or the compiler gets confused.
23558 Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
23559 * reflection.h, reflection.c: add fixup mechanism for field and method
23560 tokens. Initialize assembly->typeref in a single place. Output
23561 properties after events. Support custom attributes for events, too.
23562 Typo fix for paramter custom attrs.
23564 2002-03-07 Martin Baulig <martin@gnome.org>
23566 * icall.c (ves_icall_System_Array_FastCopy): Small fix.
23568 2002-03-07 Dietmar Maurer <dietmar@ximian.com>
23570 * class.c (mono_array_class_get): fix. for multi. dim. arrays
23572 2002-03-06 Martin Baulig <martin@gnome.org>
23574 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
23575 non-zero lower bounds. See testcases #F10-#F13.
23577 2002-03-05 Martin Baulig <martin@gnome.org>
23579 * exception.c (mono_get_exception_argument_out_of_range): New exception.
23581 * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
23582 ves_icall_System_Array_GetValue(), only calculate the absolute array position
23584 (ves_icall_System_Array_SetValue): Likewise.
23585 (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
23586 as argument and does the actual work. This function is used when copying a
23587 multi-dimensional array.
23588 (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
23589 now do all the widening conversions of value types.
23590 (ves_icall_System_Array_CreateInstanceImpl): Implemented.
23592 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23594 * class.c: remove some magic numbers and use the smbolic names,
23595 instead. Added init_events() to load event info at class init time.
23596 * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
23597 and mono_metadata_methods_from_event().
23598 * reflection.h, reflection.c: added support for writing out the evnets
23599 related information.
23601 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23603 * reflection.h, icall.c: use a different method (GetInterfaces)
23604 to gather interface info and add isbyref, isprimitive and
23605 ispointer to the ves_icall_get_type_info() return value.
23607 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
23609 * class.h: stared adding support for events.
23610 * icall.c: split find_members implementation. Added debug icall to get
23611 the address of an object.
23612 * reflection.c: handle TypeBuilders in mono_type_get_object().
23614 2002-03-01 Martin Baulig <martin@gnome.org>
23616 * icall.c (ves_icall_System_Array_GetLength): This must throw an
23617 ArgumentOutOfRangeException(), not an ArgumentException().
23618 (ves_icall_System_Array_GetLowerBound): Likewise.
23619 (ves_icall_System_Array_GetValue): Improved argument checking.
23620 (ves_icall_System_Array_SetValue): Improved argument checking.
23622 2002-03-01 Martin Baulig <martin@gnome.org>
23624 * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
23625 called with invalid arguments rather than just dying with g_assert().
23626 (ves_icall_System_Array_SetValue): Likewise.
23627 (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
23628 raise a NotImplementedException instead.
23629 (ves_icall_System_Array_GetLength): Added argument checking.
23630 (ves_icall_System_Array_GetLowerBound): Added argument checking.
23632 2002-03-01 Dietmar Maurer <dietmar@ximian.com>
23634 * object.h (mono_assert): new macros mono_assert and
23635 mono_assert_not_reached
23637 2002-02-28 Martin Baulig <martin@gnome.org>
23639 * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
23640 and "System::String::IsInterned" to "System::String::_IsInterned".
23642 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
23644 * icall.c: remove hacks for typebuilder. Added icall to create a
23645 modified type from a tybebuilder.
23646 * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
23647 in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
23648 to create a backing MonoClass for a TypeBuilder.
23650 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23652 * class.c, class.h: more refactoring of class init.
23653 Export mono_class_setup_mono_type() and mono_class_setup_parent().
23655 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
23657 * marshal.c, marshal.h: start of marshaling interface.
23659 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23661 * icall.c: fix order in assembly qualified name icall.
23663 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23665 * class.c: do not free str, since we store it in the hash table.
23666 * reflection.h: add label field to MonoILExceptionInfo.
23667 * reflection.c: handle references to more than one assembly. Handle
23668 case when there isn't a module created in the assembly.
23670 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23672 * class.c: Fix typo. Start refactoring of class init code.
23674 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23676 * appdomain.c: exit with 1 on error.
23677 * class.c: we already have the name in MonoClassField.
23678 * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
23679 MonoStreamHeader instead of an offset of image->raw_metadata.
23681 2002-02-26 Miguel de Icaza <miguel@ximian.com>
23683 * appdomain.c (mono_init): Be even more descriptive about the error.
23685 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
23687 * appdomain.c: give the user an informative message when corlib can't
23690 2002-02-26 Martin Baulig <martin@gnome.org>
23692 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
23693 New icall to get the time zone data.
23695 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23697 * reflection.c: set virtual and raw size of section correctly.
23698 * threads.c: transfer domain information to newly created threads.
23700 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23702 * class.c: when instancing a class in a domain, load the default
23703 vaules for static fields from the constant table. Fix System.Enum to
23705 * icall.c: implement Object::GetType() internalcall. Implemented
23706 MonoField::GetValue() internalcall. Avoid SEGV in search_method().
23707 Fixed checking of binding flags in find_members().
23708 * metadata.c, metadata.h: introduce mono_metadata_type_hash().
23709 * reflection.c: handle enumerations when writing to the constant
23710 table. Use a different object cache for types.
23713 2002-02-22 Dietmar Maurer <dietmar@ximian.com>
23715 * object.c (mono_object_isinst): fix for arrays
23717 * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
23719 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23721 * object.c: don't use mprotect () and fix intern pool hash table
23722 lookup for big endian systems.
23724 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23726 * icall.c: change type_is_subtype_of () signature.
23728 2002-02-21 Mark Crichton <crichton@gimp.org>
23730 * rand.c, rand.h: Added random number generator for
23731 System.Security.Cryptography classes.
23733 * exception.c, exception.h: Added mono_get_exception_not_implemeted.
23735 * icall.c: Added System.Security.Cryptography calls.
23737 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
23739 * class.c, icall.c, metadata.c: better support for pointer types.
23740 Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
23741 * reflection.c: Add support for getting custom attrs for properties
23742 and simplify some code.
23744 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
23746 * icall.c: change getToken () and add custom attribute GetBlob()helper
23748 * reflection.h: add custom attrs array to the reflection builder structures.
23749 * reflection.c: encode and emit custom attributes for all the relevant
23750 reflection objects. Cache fieldref and methodref tokens. Change
23751 mono_image_create_token() interface to take a MonoDynamicAssembly.
23752 More complete custom attributes decoder. Load custom attributes for
23753 Assembly, Field, Method and Constructor objects, too. Make the
23754 returned array an Attribute[] one, not object[]. Added
23755 mono_reflection_get_custom_attrs_blob() to encode the arguments of a
23756 custom attribute constructor.
23758 2002-02-20 Dick Porter <dick@ximian.com>
23762 * socket-io.c: Windows portability fixes (sometimes just ifdeffing
23763 problem code out for now).
23765 2002-02-19 Radek Doulik <rodo@ximian.com>
23767 * object.c (mono_ldstr): use hash table to avoid multiple swapping
23769 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
23771 * icall.c: register the GetCustomAttributes method.
23772 * object.c, object.h: add mono_string_new_len ().
23773 * reflection.h, reflection.c: added mono_runtime_invoke(),
23774 mono_install_runtime_invoke(). Added
23775 mono_reflection_get_custom_attrs () to load custom attributes and
23776 create the attribute objects.
23778 2002-02-19 Dick Porter <dick@ximian.com>
23779 * threads-dummy-types.c:
23780 * threads-dummy-types.h:
23783 * threads-pthread-types.c:
23784 * threads-pthread-types.h:
23785 * threads-pthread.c:
23786 * threads-pthread.h: Deleted obsolete files
23788 2002-02-19 Dietmar Maurer <dietmar@ximian.com>
23790 * class.c (mono_class_vtable): runtime init the class when we
23791 allocate static class data.
23793 * icall.c (ves_icall_System_Array_SetValue): check for null values.
23795 * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
23796 and String - but we will need generic marshalling support in the
23798 (mono_init): set the domain name in a ms compatible way
23800 * object.c (mono_string_new_utf16): bug fix: use char[] instead of
23803 2002-02-18 Dietmar Maurer <dietmar@ximian.com>
23805 * object.c (mono_array_clone): use alloca() instead of g_malloc
23808 * appdomain.c (mono_domain_unload): impl.
23810 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23812 * appdomain.c, object.c: fix intern pool implementation.
23813 * class.c: fix alignment code.
23815 2002-02-16 Radek Doulik <rodo@ximian.com>
23817 * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
23818 and s2 > s1, just copy lower bytes to be compatible with little
23819 endian (i.e. 64bit value & 0xffffffff --> 32bit value)
23820 (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
23822 * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
23823 force big_endian to be 1 for big endian machines
23824 (ves_icall_iconv_new_decoder): ditto
23826 2002-02-16 Jeffrey Stedfast <fejj@ximian.com>
23828 * socket-io.c (convert_sockopt_level_and_name): If the system
23829 doesn't define SOL_IP or SOL_TCP, get them by hand using
23830 getprotobyname() and caching the values (because this could be a
23832 (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
23833 Use the appropriate struct when the system does support it. Ie,
23834 not all systems have struct ip_mreqn so use struct ip_mreq when
23837 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
23839 * reflection.c: handle finally clauses.
23841 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
23843 * socket-io.c: use g_snprintf() instead of snprintf.
23845 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
23847 * reflection.c (mono_param_get_objects): Cast second argument to
23848 mono_method_get_param_names to a const char** to silence the
23851 * appdomain.c (mono_domain_assembly_open): Put parens around the
23852 truth statement in the for-loop.
23854 * unicode.c (iconv_convert): Got rid of a compiler warning about
23855 int i being unused when the system has a new iconv.
23856 (iconv_get_length): Same.
23858 * image.c (load_class_names): Cast the second argument to
23859 g_hash_table_insert() to char* to hush compiler warnings about the
23861 (mono_image_open): Same here.
23863 * socket-io.c: Don't conditionally include sys/filio.h or
23864 sys/sockio.h here anymore since we now get them from
23865 io-layer/io-layer.h
23866 (inet_pton): If the system doesn't support inet_aton, implement
23867 using inet_addr and also #define INADDR_NONE if it isn't defined
23870 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23872 * metadata.c, metadata.h: added function to get packing and size info
23874 * reflection.h, reflection.c: handle field RVA data. Save info about
23875 the table layout if needed. Assign typedef indexes to all the types
23876 before dumping the info about them to avoid forward reference problems.
23878 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
23880 * socket-io.c (convert_sockopt_level_and_name): ifdef
23881 SO_ACCEPTCONN because it is not defined on my system (old debian)
23883 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23885 * opcode.c: use stddef.h to get NULL.
23887 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
23889 * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
23890 for FIONBIO, FIONREAD and SIOCATMARK.
23891 (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
23892 define INADDR_NONE and besides, inet_addr() is deprecated and
23893 should not be used. Use inet_pton() instead - it also has the
23894 added bonus that it can easily handle IPv6 addresses as well.
23895 (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
23897 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23899 * decimal.c: remove _MSC_VER conditional.
23901 2002-02-13 Dick Porter <dick@ximian.com>
23904 * icall.c: Internal calls for Blocking, Select, Shutdown,
23905 GetSocketOption and SetSocketOption
23907 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23909 * assembly.cs: better resolver: use it instead of some kludgy
23912 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
23914 * reflection.c: the best way to speed-up the compiler is to avoid
23917 2002-02-13 Dietmar Maurer <dietmar@ximian.com>
23919 * class.c (mono_class_vtable): changed the object layout
23920 (obj->vtable->class).
23921 (mono_class_create_from_typespec): consider MONO_TYPE_PTR
23923 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23925 * assembly.c: look for assemblies in the assembly dir, too.
23927 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23929 * class.c: fix thinko in mono_class_from_type().
23931 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23933 * exception.h, exception.c: added TypeLoadException.
23934 * object.h, object.c: added mono_array_clone ().
23935 * icall.c: handle throwOnError in AssemblyGetType().
23936 Added Array.Clone().
23937 * opcode.h, opcode.c: use a single value for the opcode val.
23938 Compile fix for non-gcc compilers.
23940 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
23942 * opcodes.c, opcodes.h: export interesting info about opcodes.
23944 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
23946 * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
23949 * class.c (class_compute_field_layout): set element_class for enums
23950 (mono_class_create_from_typedef): set element_class for normal classes
23952 * icall.c (ves_icall_System_Enum_get_value): impl.
23954 * class.c (mono_class_create_from_typedef): do not set valuetype
23955 flag for System.ValueType and System.Enum
23957 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
23959 * unicode.c (iconv_convert): fix big endian problem.
23961 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23963 * class.c: add asserts if we are ever going to scribble over memory.
23964 * socket-io.c: not all systems have AF_IRDA defined.
23966 2002-01-31 Dietmar Maurer <dietmar@ximian.com>
23968 * class.c (class_compute_field_layout): do not consider static
23969 fields to compute alignment
23971 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
23973 * appdomain.c (mono_appdomain_get): impl.
23974 (ves_icall_System_AppDomain_ExecuteAssembly): impl.
23976 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23978 * icall.c: ignore "file://" prefix when loading an assembly.
23980 2002-01-23 Dick Porter <dick@ximian.com>
23984 * Makefile.am: Added socket support
23986 2002-01-23 Miguel de Icaza <miguel@ximian.com>
23988 * icall.c (ves_icall_appdomain_get_default_assemblies): put this
23989 code back. This should return the assemblies that are loaded by
23990 the runtime on behalf of an application domain.
23992 The current implementation is still broken, it just returns every
23993 assembly loaded, but until we get real applications domain this
23996 2002-01-23 Dietmar Maurer <dietmar@ximian.com>
23998 * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
24001 2002-01-23 Miguel de Icaza <miguel@ximian.com>
24003 * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24004 the mono_class_from_name lookup.
24005 (ves_icall_get_parameter_info): ditto.
24006 (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24008 (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24010 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24012 * class.c: load also nested classes on class init.
24013 System.ValueType instance methods gets passed boxed
24014 values, unless methods in derived classed that get a pointer to the
24016 * icall.c: use better name parsing code in GetType().
24017 * image.c, image.h: add mono_image_loaded ().
24018 * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24019 * reflection.c, reflection.h: added mono_reflection_parse_type().
24021 2002-01-22 Veronica De Santis <veron78@interfree.it>
24023 * icall.c : Added mapping of internal calls for Manual and Auto reset events
24024 * threads.c : Added the implementation of internal calls for events
24025 * threads.h : Added prototypes of internal calls for events
24027 2002-01-21 Radek Doulik <rodo@ximian.com>
24029 * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24031 2002-01-21 Dietmar Maurer <dietmar@ximian.com>
24033 * class.c (mono_class_init): set min_align to 1 (instead of 0)
24034 (mono_class_value_size): use min_align
24036 2002-01-20 Dick Porter <dick@ximian.com>
24039 * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24040 so it compiles on w32.
24042 2002-01-17 Dietmar Maurer <dietmar@ximian.com>
24044 * metadata.c (mono_type_stack_size): impl.
24046 * class.c (mono_class_get_field): impl. memberref token
24048 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24050 * icall.h : Added the internal calls mapping for CreateMutex_internal
24051 and ReleaseMutex_internal.
24052 * threads.h : Added the prototype of mutexes internal calls.
24053 * threads.c : Added the implementations of mutexes internal calls.
24055 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24057 * metaparse.h: removed unused file.
24058 * reflection.c, reflection.h: added stream_data_align () function
24059 to align data in streams and keep stream aligned. Add support for
24060 exception support in method headers.
24062 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24064 * unicode.c: make iconv_convert () return the number of bytess written
24065 in the output buffer.
24067 2002-01-15 Dick Porter <dick@ximian.com>
24068 * threads.c: Make the runtime's idea of infinite timeouts coincide
24069 with the class library's
24071 Fix a particularly egregious bug in mono_thread_cleanup(). That
24072 code was so utterly bogus it must have been written on a Monday.
24074 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24076 * reflection.h: add subtypes field to TypeBuilder.
24077 * reflection.c: encode constants for literal fields.
24078 Handle subtypes. Fix user string token (and add a zero byte)
24081 2002-01-14 Dietmar Maurer <dietmar@ximian.com>
24083 * class.c (mono_class_init): bug fix: assign slot numbers for
24086 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24088 * reflection.c: don't try to output a code RVA for abstract methods.
24089 Small fixes for method header format. Output parameter info to the
24090 ParamDef table. Save method overriding info to MethodImpl table.
24091 Fix property support. Allow typedef.extends to be a type in the
24093 * verify.c: fix off-by-one error.
24095 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24097 * class.c: fix mono_class_from_mono_type () for szarray types.
24098 Remove unused cache check in mono_class_from_type_spec().
24099 * icall.c: *type_from_name () functions handle simple arrays and byref.
24100 * reflection.c: handle byref and szarray types. Handle methods without
24101 body (gets P/Invoke compilation working). Handle types and fields in
24103 * reflection.h: add rank to MonoTypeInfo.
24105 2002-01-10 Dick Porter <dick@ximian.com>
24107 * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24110 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24112 * icall.c: initialize class in type_from_handle ().
24113 Loop also in parent classes for get_method ().
24114 * reflection.c: properly encode class and valuetype types.
24115 Start on encoding TypeBuilder types. Handle fieldrefs.
24116 Use correct length when registering a user string.
24117 Handle ConstructorBuilder and MonoMethod in get_token ().
24118 Make mono_type_get_object () aware of cached types.
24119 * object.c: back out change to mono_string_new ().
24121 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24122 * object.c: mono_string_new should return a NULL when the string
24123 passed in is NULL -- not try to deference it.
24125 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24127 * icall.c: hack to make IsSubType work for TypeBuilders.
24128 * reflection.c: emit constructors before methods.
24129 Retrieve param names in mono_param_get_objects().
24131 2002/01/05 Nick Drochak <ndrochak@gol.com>
24133 * Makefile.am: fix list of headers and sources so automake 1.5
24134 doesn't complain. Removed \# at end of list.
24136 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24138 * reflection.c: get token for a method ref. Set return type of
24139 constructor to void.
24140 * loader.c: debug message.
24141 * class.c: typo fix.
24143 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24145 * icall.c: fix array init with rank > 1. FindMembers
24146 loops in parent class as well.
24147 * image.c: do not insert nested types in name cache.
24148 * reflection.c: warning fix.
24149 * reflection.h: add override method (for interface impl).
24151 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24153 * metadata.c: fix customattr decoding.
24155 2001-12-21 Miguel de Icaza <miguel@ximian.com>
24157 * rawbuffer.cs: Added native Win32 implementation, avoids using
24158 mmap on Cygwin. This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24160 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24162 * class.c: make the low-level routines handle the cache.
24164 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24166 * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24168 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24170 * class.c: fix mono_array_element_size() for objects.
24171 * class.h, class.c: add properties to MonoClass and load them
24173 * icall.c: check with isinst() when assigning a value to an array
24174 instead of requiring the classes to match exactly.
24175 Implemented icall for System.Type::GetType().
24176 Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24177 enums. Handle bindingflags when looking for methods and fields.
24178 * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24179 and mono_metadata_methods_from_property().
24180 * reflection.h, reflection.c: added structures for propreties,
24181 parameters and enums. Implemented mono_property_get_object() and
24182 mono_param_get_objects().
24184 2001-12-18 Dick Porter <dick@ximian.com>
24186 * file-io.c: Use mono_string_to_utf16() instead of
24187 mono_string_chars()
24189 * object.c: Added mono_string_to_utf16(), which copies the non
24190 NULL-terminated MonoString into a new double-null-terminated
24193 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
24195 * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24197 2001-12-16 Dietmar Maurer <dietmar@ximian.com>
24199 * file-io.c: raise exceptions if handle is invalid.
24201 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24203 * assembly.c: yet another check for mscorlib.
24204 * class.c, class.h: load nesting info for classes.
24205 * icall.c: many new functions to support the Reflection classes.
24206 * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24207 * reflection.h, reflection.c: mono_image_create_token(),
24208 mono_assembly_get_object(), mono_type_get_object(),
24209 mono_method_get_object(), mono_field_get_object(): methods to return
24210 objects that parallel the C representation of assemblies, types,
24213 2001-12-11 Dick Porter <dick@ximian.com>
24216 * file-io.c: Internal calls for file IO.
24218 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24220 * tabledefs.h: missing FileAttributes.
24221 * verify.h, verify.c: use is_valid_string () to simplify and check for
24222 valid strings more correctly. Fix warnings and speeling.
24223 Check more tables: Filed, File, ModuleRef, StandAloneSig.
24224 Check code: branches, maxstack, method calls.
24226 2001-12-04 Dietmar Maurer <dietmar@ximian.com>
24228 * object.c (mono_object_allocate): removed static, so that the jit
24229 can allocate value types.
24231 * icall.c (ves_icall_System_DateTime_GetNow): impl.
24233 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24235 * class.c: init enum types right away and register the
24236 token->MonoClass map in mono_class_create_from_typedef ().
24237 * verify.h, verify.c: first cut of the verifier.
24238 * pedump.c: add --verify switch to verify metadata tables.
24239 * tabledefs.h: add some missing enums.
24241 2001-11-30 Dietmar Maurer <dietmar@ximian.com>
24243 * class.c (mono_install_runtime_class_init): impl.
24244 (mono_class_init): renamed mono_class_metadata_init to
24245 mono_class_init, also removed the metadata_inited flag
24247 * object.c (mono_object_isinst): use faster algorithm
24249 2001-11-30 Radek Doulik <rodo@ximian.com>
24251 * mono-endian.h: reverted last change
24252 added function prototypes
24254 * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24255 add mono-endian.c back
24257 * mono-endian.c: returned back, as Paolo pointed out, it's needed
24258 for unaligned access, I've mistaked it with endianess. I am
24260 (mono_read16): fix reverted endianess
24261 (mono_read64): ditto
24262 (mono_read32): ditto
24264 2001-11-30 Dick Porter <dick@ximian.com>
24266 * exception.c: Implement mono_exception_from_name()
24268 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24270 * metadata.h, metadata.c: remove params_size and locals_size and their
24271 calculation from the metadata code: they are only usefult to the
24274 2001-11-29 Radek Doulik <rodo@ximian.com>
24276 * object.c (mono_ldstr): swap bytes here, it's probably not the
24277 best place, but works for me now, I'll redo it once I know mono
24278 better, also note that I add PROT_WRITE and don't reset back, also
24279 note that it's only affects big endians, so x86 should be OK
24281 * mono-endian.h (read16): use just glib macros for both endians
24283 * mono-endian.c: removed as glib macros are used in in
24284 mono-endian.h so we don't need to care about endianess for read
24285 macros as glib does that for us already
24287 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
24289 * class.h, class.h: take minimum alignment into consideration so
24290 that the fields of a class remain aligned also when in an array.
24292 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24294 * loader.h, loader.c: add mono_method_get_param_names().
24295 * class.c: 0-init class fields.
24297 2001-11-26 Dick Porter <dick@ximian.com>
24301 * threads.c: New file that handles System.Threading on all platforms
24304 * object.h: Remove the synchronisation struct from MonoObject,
24305 replace it with a pointer that gets initialised on demand
24307 * Makefile.am: Replace all the system-specific threading code with
24308 a single file that uses the new wrapper library
24310 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
24312 * class.c, class.h: add mono_install_trampoline() so that the runtime
24313 can register a function to create a trampoline: removes the ugly
24314 requirement that a runtime needed to export arch_create_jit_trampoline.
24315 * object.h, object.c: added mono_install_handler() so that the runtime
24316 can install an handler for exceptions generated in C code (with
24317 mono_raise_exception()). Added C struct for System.Delegate.
24318 * pedump.c: removed arch_create_jit_trampoline.
24319 * reflection.c: some cleanups to allow registering user strings and
24320 later getting a token for methodrefs and fieldrefs before the assembly
24322 * row-indexes.h: updates and fixes from the new ECMA specs.
24324 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
24326 * class.h, class.c: add enum_basetype field to MonoClass.
24327 * metadata.h, metadata.c: add mono_metadata_get_constant_index()
24328 to get index in the constant table reated to a field, param or
24330 * reflection.h, reflection.c: handle constructors. Set public-key and
24331 version number of the built assembly to 0.
24332 * row-indexes.h: update from new ECMA spec.
24334 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24336 * class.h, class.c: add a max_interface_id to MonoClass.
24337 * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
24338 since it's used to do that. Added mono_type_type_from_obj().
24339 Make GetType() return NULL instead of segfaulting if the type was not
24340 found. Handle simple arrays in assQualifiedName.
24341 * object.h: add a struct to represent an Exception.
24342 * reflection.c: output call convention in method signature.
24343 Add code to support P/Invoke methods and fixed offsets for fields.
24345 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
24347 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
24349 * icall.c: use mono_array_addr instead of array->vector: fixes the
24350 reflection image writing.
24351 * reflection.c: init call convention byte to 0 in method signature.
24352 Encode the property signature. Don't output property-related methods
24353 twice. Really process the properties for a type (don't cast a field to
24354 a property, my mom always told me that).
24355 Fix 64 bit issues in pointer alignment in a different and more
24358 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
24360 * loader.h: Removed type class from MonoDefaults, added monotype
24362 * loader.c: Loaded MonoType, removed loading of Type
24364 * icall.c (my_mono_new_object): Now returns a System.MonoType,
24365 and fills in System.Type._impl with a RuntimeTypeHandle rather
24366 than the actual MonoClass *
24368 (ves_icall_type_from_handle): change from type_class to
24371 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
24374 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
24377 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
24379 (ves_icall_System_Reflection_Assembly_GetType): implemented
24381 (ves_icall_System_MonoType_assQualifiedName): implemented
24383 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
24385 2001-11-09 Miguel de Icaza <miguel@ximian.com>
24387 * assembly.c (mono_assembly_open): Implement a cache for the
24390 (mono_assembly_close): only destroy the assembly when the last
24393 2001-11-09 Dick Porter <dick@ximian.com>
24395 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
24397 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
24399 * class.c (mono_class_metadata_init): bug fix: compute the right slot
24401 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24403 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
24404 from Martin Weindel.
24405 * object.h: add mono_string_chars ().
24407 2001-11-07 Miguel de Icaza <miguel@ximian.com>
24409 * reflection.c (build_compressed_metadata): Eliminates warnings
24410 and uses 64-bit clean code.
24412 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
24413 (mono_type_equal): Change signature to eliminate warnings.
24415 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24417 * icall.c, loader.c: remove the internalcall array constructors.
24418 Changes to match the new MonoArray structure.
24419 * object.h, object.c: an array object doesn't allocate an extra
24420 vector. Add mono_array_new_full () to create jagged arrays easily.
24422 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24424 * metadata.h, metadata.c: add mono_metadata_field_info () to
24425 retreive all the info about a field from vairous tables.
24426 * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
24427 * class.h, class.c: augment MonoClassField with more info.
24428 Implemented mono_ldtoken for fields. Implemented ExplicitLayout
24429 policy and load a field's RVA if needed.
24431 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
24433 * class.c (mono_class_metadata_init): create a trampoline for all
24434 virtual functions instead of actually compiling them.
24436 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
24438 * class.h, class.c: include name in MonoClassField.
24439 * class.c: fix fundamental type of System.Object and System.String.
24440 Set the right fundamental type for SZARRAY, too. Handle TypeSpec
24442 * icall.c: remove internalcalls for the Reflection stuff that is now
24444 * loader.c: mono_field_from_memberref () implementation.
24445 * mono-endian.c: thinko (s/struct/union/g).
24446 * object.c, object.h: make the mono_string_* prototypes actually use
24447 MonoString instead of MonoObject.
24448 * reflection.c, reflection.h: updates for changes in the reflection
24449 code in corlib: we use C structures that map to the actual C# classes.
24450 Handle SZARRAYs when encoding types. Handle locals in methods. Use a
24451 fat method header if needed and use the info from the ILGenerator for
24452 methods. Handle fields in types. Misc fixes.
24454 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
24456 * class.c (mono_class_metadata_init): bug fix: always allocate
24457 space for static class data
24459 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
24461 * class.c (mono_compute_relative_numbering): use relative
24462 numbering to support fast runtime type checks.
24464 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
24466 * class.c (mono_class_create_from_typeref): added debugging output
24467 to print class name when MonoDummy is returned instead of real class
24469 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
24471 * class.c (mono_class_metadata_init): interface offset table now
24472 contains pointers into the vtable - this is more efficient for the jit
24474 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
24476 * class.c (mono_class_metadata_init): use a temporary vtable (the
24477 old algorithm only worked for the interpreter, but not for the jit)
24479 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
24481 * loader.c (method_from_memberref): use mono_class_get to get the
24482 class of an array instead of using System.Array directly.
24483 (mono_get_method): also add MEMBERREF methods to the method cache
24484 which usefull for arrays.
24486 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
24488 * pedump.c (arch_compile_method): added to compute vtable entry
24490 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
24491 number of interfaces.
24493 * class.h: merged MonoArrayClass into MonoClass
24495 * class.c (mono_class_create_from_typedef): compute the vtable size and
24496 allocate space to include the vtable inside MonoClass
24497 (mono_class_metadata_init): initialize the vtable
24499 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
24501 * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
24502 Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
24503 * image.c: endian fixes by Laurent Rioux.
24504 * object.h, object.c: rename MonoStringObject to MonoString and
24505 MonoArrayObject to MonoArray. Change some function names to conform to
24506 the style mono_<object>_<action>. mono_string_new_utf16 () takes a
24507 guint16* as first argument, so don't use char*.
24508 Provide macros to do the interesting things on arrays in a portable way.
24509 * threads-pthread.c: updates for the API changes and #include <sched.h>
24510 (required for sched_yield()).
24511 * icall.c: updates for the API changes above.
24512 * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
24513 platforms that need them.
24515 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24517 * class.c: set the correct type for all the fundamental
24518 type when loading the class.
24520 2001-10-05 Dick Porter <dick@ximian.com>
24522 * threads-pthread.c (pthread_mutex_timedlock): Simple
24523 compatibility version for C libraries that lack this call.
24525 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24527 * class.c: MonoTypes stored in MonoClass are stored as
24528 fundamental MonoTypes when the class represents a
24529 fundamental type (System.Int32, ...).
24530 The TypeHandle return by ldtoken is a MonoType*.
24531 * icall.c: ves_icall_get_data_chunk () write out all the
24532 PE/COFF stuff. Implement ves_icall_define_method (),
24533 ves_icall_set_method_body (), ves_icall_type_from_handle ().
24534 * image.c: properly skip unknown streams.
24535 * loader.h, loader.c: add type_class to mono_defaults.
24536 * metadata.c, metadata.h: export compute_size () as
24537 mono_metadata_compute_size () with a better interface.
24538 Typo and C&P fixes.
24539 * pedump.c: don't try to print the entry point RVA if there is no entry point.
24540 * reflection.c, reflection.h: many cleanups, fixes, output method
24541 signatures and headers, typedef and typeref info, compress the metadata
24542 tables, output all the heap streams, cli header etc.
24543 * row-indexes.h: typo fixes.
24545 2001-10-04 Dick Porter <dick@ximian.com>
24547 * object.h: Add a synchronisation mutex struct to MonoObject
24549 * object.c (mono_new_object): Initialise the object
24550 synchronisation mutexes
24552 * icall.c: System.Threading.Monitor internal calls
24554 * threads-pthread.h:
24555 * threads-pthread.c: System.Threading.Monitor internal calls
24557 * threads-types.h: New file, includes the system-specific thread
24560 * threads-pthread-types.h:
24561 * threads-pthread-types.c: New files, handle pthread-specific
24562 synchronisation types
24564 * threads-dummy-types.h:
24565 * threads-dummy-types.c: New files of dummy support for
24566 thread-specific types
24570 * pedump.c: include mono-endian.h not endian.h
24572 * Makefile.am: More threads files.
24573 Name mono-endian.h not endian.h
24575 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
24577 * Makefile.am, reflection.h, reflection.c: move here the reflection related
24578 stuff and implement a few more bits.
24579 * icall.c: a field needs to be dereferenced twice. Do not use the same
24580 name for two variables in the same scope.
24581 * image.c, image.h: cleanups.
24583 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
24585 * class.c (mono_class_metadata_init): bug fix: compute the right size
24587 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
24589 * icall.c: implemented some of the Reflection internalcalls.
24590 * image.c, image.h: start writing out the PE/COFF image.
24591 * metadata.h, metadata.c: implement mono_metadata_encode_value ()
24592 that does the reverse than decode_blob_size ().
24593 * object.c: use mono_metadata_encode_value (). Move here
24594 temporary implementation of mono_string_to_utf8 ().
24595 * rawbuffer.c: make malloc_map static.
24597 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24599 * metadata.c: fix type comparison for arrays.
24600 * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
24601 Added a couple of new classes to monodefaults.
24602 * icall.c: added a couple of Reflection-related internalcalls.
24603 * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
24604 Added a byval_arg MonoType to MonoClass.
24606 2001-09-28 Dick Porter <dick@ximian.com>
24609 * threads-pthread.h:
24610 * threads-pthread.c: Implemented internal calls for
24611 LocalDataStoreSlot operations. Applied mutexes around all shared
24612 data. Reworked the thread creation and Start() operations to
24613 avoid a race condition.
24616 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
24618 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
24620 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
24622 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
24624 * class.c, loader.c: warn and return NULL instead of erroring out.
24625 * icall.c: added System.AppDomain::getCurDomain().
24626 * loader.c: we don't need to lookup the typedef again for p/invoke calls.
24628 2001-09-25 Dick Porter <dick@ximian.com>
24630 * threads-pthread.h:
24631 * threads-pthread.c: Implemented timed thread joining and added
24632 System.Threading.Thread::Join_internal internal call
24634 * icall.c: Added System.Threading.Thread::Join_internal internal call
24637 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
24639 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
24641 * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
24642 mono_string_intern () to implement the semantics of the ldstr opcode
24643 and the interning of System.Strings.
24644 * icall.c: provide hooks to make String::IsIntern and String::Intern
24647 2001-09-23 Dick Porter <dick@ximian.com>
24650 * threads-dummy.h: New files of dummy threading routines
24652 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
24653 support code based on system specifics
24655 Rename PTHREAD_LIBS to THREAD_LIBS
24657 2001-09-23 Dick Porter <dick@ximian.com>
24659 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
24660 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
24662 (mono_thread_init): Set up a Thread object instance to return when
24663 the main thread calls Thread.CurrentThread
24664 (mono_thread_cleanup): Wait for all subthreads to exit
24666 * icall.c: New internal calls for System.Threading.Thread::Sleep
24667 (including Schedule) and CurrentThread
24669 * threads.h: New file, to insulate thread-specific stuff from the
24672 2001-09-21 Dick Porter <dick@ximian.com>
24674 * threads-pthread.h:
24675 * threads-pthread.c: New file, for handling pthreads-style
24676 threading support. Start() now starts a new thread and executes
24677 the ThreadStart delegate instance.
24679 * icall.c: Added the internalcall for
24680 System.Threading.Thread::Start_internal
24682 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
24684 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
24686 * loader.c: work around the different signatures for delegates
24687 constructors csc generates in compiled code vs the ones compiled in mscorlib.
24689 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24691 * class.h, class.c: add mono_class_get_field_from_name ().
24692 * *: Fix C comments and other ANSI C issues.
24694 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
24696 * endian.h, assembly.c: fix some endianness issues.
24698 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
24700 * loader.h, load.c: add delegate_class to mono_defaults.
24701 Handle runtime provided methods in mono_get_method ().
24703 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
24705 * loader.c (mono_get_method): use pinvoke for internal call
24707 * icall.c: use pinvoke for internal call
24709 * loader.c (method_from_memberref): set the method name
24711 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
24713 * metadata.c: help the compiler generate better code for
24714 mono_class_from_mono_type ().
24716 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
24718 * class.c (mono_class_metadata_init): delayed computing of the
24719 class size to mono_class_metadata_init ()
24721 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
24723 * class.c, class.h: add an interfaces member to MonoClass.
24724 * image.c, image.h: add assembly_name field to MonoImage
24725 from the assembly table.
24726 * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
24728 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24730 * class.c: Handle Array in mono_class_from_mono_type ().
24731 * metadata.c, pedump.c: some endian fixes.
24733 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
24735 * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
24736 * metadata.c: fix small problem introduced with the latest commit.
24738 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
24740 * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
24741 We don't need a MonoMetadata pointer anymore to compare signatures in
24742 mono_metadata_signature_equal (), update callers.
24743 Reduced memory usage an number of allocations for MonoMethodHeader and
24744 MonoMethodSignature.
24746 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
24748 * metadata.c: added compare for szarray.
24750 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
24752 * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
24753 and add a couple more types to it and mono_defaults. Give an hint on
24754 classes that need implementing in our corlib and are referenced
24757 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
24759 * class.h, class.c: keep track if a class is also an Enum.
24760 * loader.c: Implement a couple more types for use in libffi
24761 marshalling. Gives better diagnostics when failing to dlopen
24762 a library. Set method->klass for P/Invoke methods, too.
24764 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
24766 * class.c, class.h: add a MonoType this_arg to MonoClass that
24767 represents a pointer to an object of the class' type that
24768 can be used by the interpreter and later the type cache.
24769 Add best guess alignment info for valuetype objects.
24771 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
24773 * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
24774 into MonoType: one less level of indirection and allocation and
24775 simplifies quite a bit of code. Added cache for MonoTypes that are
24776 used frequently, so that we don't need to allocate them all the time.
24778 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
24780 * class.c (mono_class_create_from_typedef): System.Enum is also a
24781 value type, although it does not derive from System.ValueType
24782 (maybe a bug in the ms compiler?)
24784 * metadata.c (mono_type_size): return the right size for value types
24786 * loader.c (mono_get_method): only initialize method header if not abstract
24788 * class.c (mono_class_from_mono_type): use mono_default values.
24790 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
24792 * *: use MonoClass pointers instead of <type_tokens>
24794 * class.h: new flag: metadata_inited.
24796 * class.c (mono_class_metadata_init): impl.
24797 (mono_class_instance_size): impl.
24798 (mono_class_data_size): impl.
24800 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
24802 * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
24803 MonoClass now has the name and name_space fields.
24804 MonoMethod has a pointer to its MonoClass, instead of MonoImage.
24805 mono_get_method () takes and optional MonoClass as argument.
24806 Removed mono_typedef_from_name() and added mono_class_token_from_name()
24807 instead that takes advantage of a map from class names to typedef
24808 tokens in MonoImage.
24810 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
24812 * metadata.c: zero is not a valid alignment boundary.
24813 Merge MONO_TYPE_VOID in default decoding code.
24815 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
24817 * image.h: merged MonoMetadata into MonoImage
24819 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
24820 identify the type of elements.
24822 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
24824 * blob.h: fix MONO_TYPE_TYPEDBYREF value.
24825 * cil-coff.h: split MonoMSDOSHeader and add size info.
24826 * image.c: add some consistency checks.
24827 * metadata.c: fix row size computation: one programmer
24828 error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
24829 add explanation for the locator routine.
24830 Fix decoding of size in method header.
24832 2001-08-20 Miguel de Icaza <miguel@ximian.com>
24834 * assembly.c (g_concat_dir_and_file): Use _S for string concat.
24835 (g_concat_dir_and_file): Bring g_concat_dir_and_file
24836 function from gnome-libs. This uses the right path separator
24837 based on the OS, and also works around a bug in some systems where
24838 a double slash is not allowed.
24839 (default_assembly_name_resolver): Use g_concat_dir_and_file
24840 (mono_assembly_open): ditto.
24842 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
24844 * metadata.c (mono_metadata_signature_equal): impl.
24846 * *: void is now a realy MonoType (instead of using NULL)
24848 * metadata.c (do_mono_metadata_parse_type): use
24849 mono_metadata_parse_type to parse void value.
24851 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
24853 * metadata.c, metadata.h: in the signature and method header store
24854 only the space required for holding the loca vars and incoming arguments.
24856 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
24858 * metadata.c (do_mono_metadata_parse_type): treat void like any
24859 other type (instead of assigning NULL);
24861 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
24863 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
24865 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
24867 * image.c (do_mono_image_open): added a cache for arrays.
24869 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24871 * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
24872 decode a single column from a row in a metadata table and changes
24873 to take advantage of it in the typedef locator (gives a nice speed up).
24874 Store offset info for function params.
24876 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
24878 * image.h (MONO_IMAGE_IS_CORLIB): removed
24880 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
24882 * assembly.c: how could mono_assembly_close () had ever worked?
24883 * metadata.c, metadata.h: provide offset info for local vars.
24884 Implement mono_type_size () to take care of alignment as well
24885 as size (it was mono_field_type_size in cli/class.c before).
24887 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
24889 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
24891 * assembly.h (CORLIB_NAME): set to corlib.dll
24893 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
24895 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24897 * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
24898 cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
24899 tokentype.h: massive namespace cleanup.
24901 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24903 * metadata.h, metadata.c: decode exception clauses when parsing method header.
24905 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
24907 * metadata.c (mono_metadata_free_type): added check for type !=
24908 NULL (void) before calling mono_metadata_free_type()
24910 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
24912 * metadata.h, row_indexes.h: added header with enumerations to use
24913 to index in the columns from tables in metadata and to decode coded
24914 tokens: we should start using this instead of embedding magic numbers
24917 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
24919 * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
24920 Move metadata_t info from cli_image_info_t to MonoImage, where
24921 it's easily accessible. Changed all the uses accordingly.
24922 Added the method and class caches to MonoImage.
24923 * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
24924 and mono_metadata_decode_value () signature to be more consistent
24925 with the other parse functions (and simplify code). Taken advantage
24926 of zero-length array allocation with GCC. Removed reduntant (and
24927 wrong) MonoFieldType struct and use MonoParam instead. Changed
24928 mono_metadata_parse_field_type () to use common code for parsing.
24929 Added mono_metadata_typedef_from_field () and
24930 mono_metadata_typedef_from_method () to lookup a typedef index from a
24931 field or method token.
24932 Pack the MonoRetType structure more tightly (fits in 8 bytes now).
24934 2001-07-23 Miguel de Icaza <miguel@ximian.com>
24936 * metadata.c (mono_metadata_parse_field_type): Implement.
24937 (do_mono_metadata_parse_type): Split engine from
24938 mono_metadata_parse_type, so that we can create smaller structures
24939 for things that just have one pointer to the MonoType (look at
24942 2001-07-20 Miguel de Icaza <miguel@ximian.com>
24944 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
24945 as Jan Gray found out, it is incorrect.
24947 2001-07-18 Miguel de Icaza <miguel@ximian.com>
24949 * assembly.c: Implement asssembly loading. This loads an image
24950 and loads all the referenced assemblies. Come to think of it, we
24951 could always do lazy loading of the assemblies.
24953 * image.c (mono_image_open): Keep loaded images in a hashtable.
24955 * image.h (MonoImage): Add reference count.
24957 2001-07-17 Miguel de Icaza <miguel@ximian.com>
24959 * assembly.c (mono_assembly_open): Keep track of the file name in
24960 case the assembly has no ASSEMBLY table.
24962 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
24965 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
24967 * metadata.c, metadata.h: decode local vars in method header
24968 parse function. Change callers accordingly.
24970 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
24972 * metadata.h, cil-coff.h: protect against multiple inclusion.
24973 Added some new structures to hold information decoded from metadata:
24974 MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
24975 and relevant decoding/free functions.
24976 * metadata.c: implement decoding functions. Add warning for out of bounds
24977 index in mono_metadata_locate(). Implement mono_get_method () to retreive
24978 all the info about a method signature and invocation. Remove check on
24979 uninitialized local var in parse_mh() and fix memory leak.
24981 2001-07-12 Miguel de Icaza <miguel@ximian.com>
24983 * metadata.h: More macros.
24985 * tokentype.h: New file.
24987 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
24989 * assembly.c: added a consistency check and initialize
24990 some structures with g_new0().
24991 * metadata.c: fixed a couple more bugs in table size computation
24992 and add other checks for out-of bound access to metadata.
24994 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
24996 * metatada.c: fix bugs computing table sizes. Spew a
24997 warning when index in string heap is out of bounds.
24999 2001-07-04 Miguel de Icaza <miguel@ximian.com>
25001 * metadata.h: Add a couple of macros to manipulate tokens.
25003 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25005 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25006 cli_section_tables).
25008 2001-07-01 Miguel de Icaza <miguel@ximian.com>
25010 * metadata.c (mono_metadata_user_string): New function, provides
25011 access to the UserString heap.
25013 2001-06-27 Miguel de Icaza <miguel@ximian.com>
25015 * metadata.c: Add inline documentation.
25017 2001-06-26 Miguel de Icaza <miguel@ximian.com>
25019 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25022 2001-06-22 Miguel de Icaza <miguel@ximian.com>
25024 * typeattr.h: New file, TypeAttribute flags.
25026 2001-06-21 Miguel de Icaza <miguel@ximian.com>
25028 * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25029 mono_assembly_ensure_section): Section loading code.
25030 (load_section_tables): Load the sections.
25032 * mono/metadata/metadata.c (mono_metadata_locate_token,
25033 mono_metadata_locate): Functions to locate the information
25034 definition given a token or a table and an index.
25035 (mono_metadata_compute_table_bases): New.
25036 (compute_size): New function to compute the sizes of the various
25039 * mono/metadata/metadata.h: Finish listing the different index
25042 * mono/metadata/pedump.c: Improve to dump new information.
25044 2001-06-19 Miguel de Icaza <miguel@ximian.com>
25046 * mono/metadata/metadata.c: Entered all the tables matching
25049 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2