1 2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
3 * culture-info-table.h : regenerated.
5 2007-04-07 Zoltan Varga <vargaz@gmail.com>
7 * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
8 the thread is aborted early.
10 2007-04-04 Martin Baulig <martin@ximian.com>
13 (mono_method_desc_full_match): Add support for nested classes.
15 2007-04-02 Zoltan Varga <vargaz@gmail.com>
17 * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
19 2007-04-01 Zoltan Varga <vargaz@gmail.com>
21 * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
22 waiting for too many threads.
24 2007-03-28 Sebastien Pouliot <sebastien@ximian.com>
26 * environment.c: Fix return value check on uname so we can get the
27 executing version on Solaris operating systems.
29 2007-03-28 Jb Evain <jbevain@gmail.com>
31 * class.c (mono_type_get_name_recurse): Complete the
32 fix for the creation of assembly qualified names for
33 pointer types. Fixes #81208.
35 2007-03-27 Dick Porter <dick@ximian.com>
37 * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
38 of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
42 (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
43 the value of ReleaseMutex().
45 2007-03-27 Dick Porter <dick@ximian.com>
47 * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
48 in little-endian order, not network endian, so must be converted
49 to host endian here. Fixes bug 80593.
51 2007-03-22 Jb Evain <jbevain@gmail.com>
53 * class.c (mono_type_get_name_recurse): Fix the creation of assembly
54 qualified names for pointer types. Fixes #81208.
56 2007-03-21 Jonathan Chambers <joncham@gmail.com>
58 * marshal.c: Add support for PreserveSigAttribute.
60 Code is contributed under MIT/X11 license.
62 2007-03-14 Zoltan Varga <vargaz@gmail.com>
64 * process.c: Fix endianness issues. Fixes #81126.
66 * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
67 multiple circular calls made from the same DynamicMethod work. Fixes #81141.
69 * image.c (mono_image_lookup_resource): Make this work on big-endian
70 machines.Change API contract so the caller needs to free the return value.
72 * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
75 2007-03-14 Martin Baulig <martin@ximian.com>
77 * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
78 mono_type_get_desc() as well.
80 2007-03-13 Jonathan Chambers <joncham@gmail.com>
82 * icall.c: Fix environ access in VS.
84 2007-03-13 Alp Toker <alp@atoker.com>
86 * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
87 rather than the underlying type. Based on a patch by Ben Maurer. Fixes
90 2007-03-12 Zoltan Varga <vargaz@gmail.com>
92 * reflection.c (mono_reflection_create_dynamic_method): Add support for
93 circular references among dynamic methods. Fixes #81091.
95 * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
97 2007-03-09 Martin Baulig <martin@ximian.com>
99 * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
101 2007-03-09 Jonathan Chambers <joncham@gmail.com>
103 * appdomain.c: Fix shadow copy on Windows. Use g_snprintf instead
104 of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.
106 Code is contributed under MIT/X11 license.
108 2007-03-09 Gert Driesen <drieseng@users.souceforge.net>
110 * loader.c: Reapply patch for bug #79424.
112 2007-03-06 Zoltan Varga <vargaz@gmail.com>
114 * metadata.c (mono_type_to_unmanaged): Only convert object to
115 MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
117 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
119 * class-internals.h, class.c, metadata.c, reflection.c: removed unused
120 (and incorrectly set) is_reference field from MonoGenericInst.
122 2007-03-06 Zoltan Varga <vargaz@gmail.com>
124 * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
127 * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
129 * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
131 2007-03-05 Miguel de Icaza <miguel@novell.com>
133 * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
134 FileOptions.1 value to mean "temporary", map that to
135 FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
139 2007-03-03 Marek Habersack <mhabersack@novell.com>
141 * appdomain.c: implement MS .Net style shadow copying. Copies of
142 the assemblies are made in a subdirectory of the dynamic base
143 directory, the assembly names are preserved.
144 Copy .mdb and .config files along with the assemblies being shadowed.
146 2007-02-28 Zoltan Varga <vargaz@gmail.com>
148 * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
149 (emit_marshal_handleref): Ditto.
151 * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
152 on Visual C++. Fixes #80671.
154 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
156 * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
157 for clone operations.
159 2007-02-28 Zoltan Varga <vargaz@gmail.com>
161 * marshal.c: Fix warnings.
163 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
165 * loader.c: allow case-insensitive matching of the dll name
166 in dllmap handling when prefixed with "i:".
168 2007-02-20 Jonathan Chambers <joncham@gmail.com>
170 * threads.c: Fix #ifdef for dummy_apc function for VS.
172 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
174 * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
176 2007-02-19 Massimiliano Mantione <massi@ximian.com>
177 * class.c (mono_class_setup_vtable_general): Fix bug 75903,
178 giving precedence to the methods with a fully qualified name
179 (InterfaceName.MethodName) when building the interface sections
182 2007-02-16 Dick Porter <dick@ximian.com>
184 * threadpool.c (append_job): Fix fast-path array handling, so it's
185 less likely the array will grow exponentially when the load is
188 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
190 * metadata-internals.h, loader.c: fix dllmap lookup order
191 for non-function maps, too, and prepare for fallback code.
193 2007-02-12 Robert Jordan <robertj@gmx.net>
195 * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
196 to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
197 and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
198 GlobalFree. Fixes a part of bug #77075.
200 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
202 * loader.c: implemented typedef parent in field memberref.
204 2007-02-11 Jonathan Chambers <joncham@gmail.com>
206 * marshal.c: Fix warnings and remember to call Release on
209 Code is contributed under MIT/X11 license.
211 2007-02-10 Miguel de Icaza <miguel@novell.com>
213 * class-internals.h: Add MonoHandleRef definition, and
214 handleref_class to mono_defaults.
216 * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
217 structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
219 * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
220 (do nothing on this stage)
221 (emit_object_to_ptr_conv): Extract the handle from the HandleRef.
222 (emit_marshal_handleref): New method, used for argument handling
225 2007-02-08 Jonathan Chambers <joncham@gmail.com>
227 * class.c (mono_class_setup_parent): Lazily init com types.
228 * domain.c (mono_init_internal, mono_init_com_types): Lazily
230 * object.c (mono_remote_class_vtable): Lazily init com types.
231 * class-internals.h: Add iunknown and idispatch to MonoDefaults.
232 * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
233 * domain-internals.h: Expose mono_init_com_types.
234 * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
235 * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
236 Add support for COM Callable Wrapper marshalling.
237 * marshal.h: Add icall definitions.
238 * gc.c: Handle freeing of CCWs in finalizer code.
240 Code is contributed under MIT/X11 license.
242 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
244 * reflection.c: changed all the signature encoding code to use
245 a variable-sized buffer.
247 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
249 * marshal.c: locking fixes: never take the loader lock
250 or other runtime locks when holding the marshal lock
253 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
255 * marshal.c: make the delegate function pointer mapping
256 work for the moving GC.
258 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
260 * marshal.c: fix from Robert Jordan (robertj@gmx.net)
263 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
265 * image.h, loader.c, metadata-internals.h: use mono-dl instead of
268 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
270 * threadpool.c: made the code moving-GC safe.
272 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
274 * assembly.c, boehm-gc.c, class-internals.h, class.c,
275 debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
276 monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
278 * reflection.c: warning cleanup, some threading and moving GC fixes.
280 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
282 * class.c, loader.c: create the needed Set/Get/Address array methods
283 as well as the .ctors in mono_class_init (), fixes bug #80567.
285 2007-01-24 Zoltan Varga <vargaz@gmail.com>
287 * class.c (mono_class_layout_fields): When force-aligning a field, make sure
288 we doesn't decrease its alignment. Should fix the sparc build.
290 2007-01-24 Dick Porter <dick@ximian.com>
293 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
294 Create the returned object if we need to ignore an unsupported
295 socket option. Fixes a segfault reported by Atsushi.
297 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
299 * class.c, object.c: restrict GC-tracked fields to
300 UIntPtr fields used inside corlib, so we provide better
301 type info to the GC and also allow broken packing as in
304 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
306 * sgen-gc.c: removed duplicated function.
308 2007-01-19 Miguel de Icaza <miguel@novell.com>
310 * socket-io.c (convert_sockopt_level_and_name): return -2 as a
311 value that means that the value is not supported, but that we
312 should not return a failure, but instead report this as a
313 successful operation.
315 2007-01-19 Raja R Harinath <rharinath@novell.com>
317 Fix tests/bug79956.2.il
318 * class.c (mono_type_get_underlying_type): Handle genericinst enums.
319 (mono_generic_class_get_class): If the generic definition in an
320 enum, copy over other fields related to it.
322 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
324 * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
325 genericinst enums (bug #79215).
327 2007-01-17 Massimiliano Mantione <massi@ximian.com>
328 * class.c: Fix bug 80307.
330 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
332 * image.c: if the file table is not present, try to load
333 all the modules, since we don't have info about them
334 having or not metadata (bug #80517).
335 * assembly.c: allow mono_assembly_load_references () to
338 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
340 * image.c, metadata-internals.h, object.c: execute module
341 cctors when running on the 2 runtime if present (bug #80487).
343 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
345 * icall.c: optimized InitializeArray() on bigendian.
347 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
349 * icall.c: fix for the broken ARM FPA double format.
351 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
353 * icall.c: handle endian issues for r4 and r8 types, too, in
354 the InitializeArray() icall.
356 2007-01-15 Miguel de Icaza <miguel@novell.com>
358 * loader.c (mono_loader_error_prepare_exception): Clear the error
359 once we have extracted the information from it, do this before we
360 call into the JIT's class loading mechanisms.
362 * object.c (mono_class_create_runtime_vtable): Do not clear the
363 loader error before calling mono_class_get_exception_for_failure
364 as the loader error is needed inside
365 mono_class_get_exception_for_failure to throw the error (thinko).
369 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
371 * reflection.c: align fields rva data so it's faster to load at
374 2007-01-12 Raja R Harinath <rharinath@novell.com>
376 Prepare to simplify GenericMethod handling.
377 * class-internals.h (mono_method_get_context): New accessor function.
378 * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
379 rather than directly accessing '->context' field.
381 * class-internals.h (_MonoGenericParam.method): Move ...
382 (_MonoGenericContainer): ... here. Add into union with klass field.
383 * class.c, icall.c, loader.c, metadata.c, reflection.c:
386 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
388 * Makefile.am, class-internals.h, debug-helpers.c: consolidate
389 the wrapper type enum and reduce relocations.
391 2007-01-12 Raja R Harinath <rharinath@novell.com>
393 * reflection.c (inflate_mono_method): Reuse method instantiation
394 from the generic method, if available.
396 2007-01-11 Jonathan Chambers <joncham@gmail.com>
398 * marshal.c (emit_marshal_variant): Fix conv_arg
399 type in last commit, based on whether parameter is byref.
401 2007-01-11 Jonathan Chambers <joncham@gmail.com>
403 * marshal.c (emit_marshal_variant): Handle unmanaged->managed
405 (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
406 MONO_TYPE_OBJECT back for VARIANT support.
408 2007-01-11 Jonathan Chambers <joncham@gmail.com>
410 * marshal.c, marshal.h, icall-def.h: Implement
411 Marshal.ReAllocCoTaskMem.
413 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
415 * marshal.c: memory retention fixes: use the proper
416 image cache for runtime_invoke method lookups.
418 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
420 * mempool.c: added code to help debug mempool allocations.
422 2007-01-11 Dick Porter <dick@ximian.com>
424 * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
425 support (experimenting with faking it with IP_MTU_DISCOVER for
426 systems that don't have IP_DONTFRAGMENT.)
427 (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
430 * icall-def.h: new System.Net.Sockets.Disconnect icall.
432 * socket-io.h: Add new fields to MonoSocketAsyncResult
433 corresponding to the new ones in Socket.cs.
435 2007-01-11 Raja R Harinath <rharinath@novell.com>
437 Fix IronPython regression mentioned in #80249
438 * metadata.c (do_mono_metadata_parse_generic_class): Clear
439 'cached_context' field, since it may have been initialized as a
440 side-effect of metadata parsing.
442 * class-internals.h (_MonoGenericClass.is_inflated): Remove.
443 (_MonoGenericClass.cached_class): Move here and rename from lone
444 remaining field of ...
445 (_MonoInflatedGenericClass): ... this. Remove.
446 * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
449 Fix mcs/tests/test-128.cs regression.
450 * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
451 2007-01-10 change below.
452 [MONO_TYPE_OBJECT]: Recurse into array case.
454 2007-01-11 Raja R Harinath <harinath@gmail.com>
456 * class-internals.h (mono_get_inflated_generic_class): Remove.
457 * class.c (mono_get_inflated_generic_class): Remove.
458 (mono_generic_class_get_class): Rename from
459 mono_class_create_generic.
460 (mono_class_from_mono_type) [GENERICINST]: Use it.
461 * reflection.c, metadata.c: Update to changes. Use
462 'mono_class_from_mono_type'.
464 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
466 * reflection.c: use passed type when encoding an array element
467 in custom attributes (patch from David Mitchell, dmitchell@logos.com).
469 2007-01-09 Robert Jordan <robertj@gmx.net>
471 * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
472 result arguments (someDelegate.EndInvoke (unrelatedAres)).
475 2007-01-09 Raja R Harinath <rharinath@novell.com>
477 * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
479 * object.c (set_value): Avoid aliasing between type->data.klass
480 and type->data.generic_class.
482 * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
484 2007-01-08 Raja R Harinath <rharinath@novell.com>
486 * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
487 between type->data.klass and type->data.generic_class.
489 2007-01-08 Lluis Sanchez <lluis@ximian.com>
491 * marshal.c: In MS.NET, StringBuilder objects are not copied by
492 value in out parameters.
494 2007-01-08 Raja R Harinath <rharinath@novell.com>
496 Simplify invariant for MonoGenericClass::klass field.
497 * class.c (mono_class_create_generic): Verify 'klass' is null.
498 * metadata.c (do_mono_metadata_parse_generic_class): Don't
499 initialize 'klass' field.
501 2007-01-05 Raja R Harinath <rharinath@novell.com>
503 Ongoing work to avoid redundant data and simplify invariants.
504 * class-internals.h (_MonoGenericMethod.class_inst): Rename from
505 'generic_class', and change type to a GenericInst.
506 (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
507 * class.c, loader.c, metadata.c, reflection.c: Update to changes.
509 2007-01-05 Atsushi Enomoto <atsushi@ximian.com>
511 * class.c : skip io-layer under PLATFORM_WIN32.
513 2007-01-03 Tor Lillqvist <tml@novell.com>
515 Fix #80305: In a bundled executable, look in the bundled exe
516 assembly to determine the runtime version. Add the possibility to
517 bundle also the machine.config file.
519 * assembly.c (mono_assembly_open_from_bundle): Make
520 non-static. Allow being called even if we have no bundled
521 assemblies, and return NULL right away in that case.
523 * domain-internals.h: Declare mono_assembly_open_from_bundle()
526 * domain.c (app_config_parse): Take an assembly exe file name as
527 parameter instead of a config file name. Check for a bundled
528 config file for that assembly by calling
529 mono_config_string_for_assembly_file() (see below) before looking
530 for one in the file system.
531 (get_runtimes_from_exe): Corrsponding change to call of
533 (get_runtimes_from_exe): Check for bundled assembly exe file first
534 by calling mono_assembly_open_from_bundle(). If no bundled
535 assembly exe file is found, call mono_image_open() as before to
536 look it up in the file system.
538 * mono-config.c: Add variable bundled_machinec_onfig.
539 (mono_config_string_for_assembly_file): New function.
540 (mono_config_for_assembly): Move code snippet that looks for a
541 bundled assembly .config file into the above new function. Call
543 (mono_register_machine_config, mono_get_machine_config): New
544 functions to set and retrieve
546 * assembly.h: Declare mono_register_machine_config().
548 * mono-config.h: Declare mono_get_machine_config() and
549 mono_config_string_for_assembly_file().
551 * icall.c: No declaration of environ necessary on Win32. It is
552 declared (as a macro expanding to a function call) in stdlib.h.
553 (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
554 New internal mono function. Returns the value of
555 mono_get_machine_config() as a Mono string.
557 * icall-def.h: Add get_bundled_machine_config().
559 2007-01-04 Raja R Harinath <rharinath@novell.com>
561 Remove redundant field
562 * class-internals.h (_MonoGenericContext.container): Remove field.
563 * loader.c (mono_method_get_signature_full): Don't parse a
564 "container" for a signature parse when the signature is inflated
566 (method_from_methodspec): Likewise, for a generic_inst.
567 * class.c, metadata.c, reflection.c: Update to changes.
569 2006-01-04 Raja R Harinath <rharinath@novell.com>
571 * class-internals.h (_MonoGenericClass): Rename 'context' field to
572 'cached_context', and change semantics -- it starts off NULL, and
573 is initialized on demand.
574 * class.c (mono_generic_class_get_context): New accessor to
575 replace 'context' field accesses.
576 (mono_class_get_context): New helper.
577 (*): Update to changes.
578 * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
580 2007-01-03 Miguel de Icaza <miguel@novell.com>
582 * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
583 before the memcpy. Fixes Marshal2 regression.
585 2007-01-02 Jb Evain <jbevain@gmail.com>
587 * blob.h: add a MONO_TYPE_ENUM definition
588 * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
589 fix the encoding of arrays of enums in custom attributes.
593 2007-01-01 Miguel de Icaza <miguel@novell.com>
595 * marshal.c (mono_string_to_byvalwstr): Fix this routine. The
596 string is null terminated, but only cut the string short if it
597 overflows the buffer.
599 (mono_string_to_byvalstr): Also fix this routine. The code here
600 was not properly terminating a string (it was only terminated
601 because of the previous catch-all memset).
603 I left the memset, because I do not know if applications expect
604 the runtime to clear this region.
608 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
609 Clear the error before returning to unmanaged code to prevent the
610 runtime from being confused later on (fixes 80420).
611 (ves_icall_type_from_name): Always call mono_loader_clear_error
612 after parsing a type that could have failed.
613 (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
615 * loader.c (mono_loader_clear_error): Fix indentation.
617 2006-12-28 Martin Baulig <martin@ximian.com>
619 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
621 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
623 * reflection.c: patch from Rolf Bjarne Kvinge to fix
624 getting a token for an EnumBuilder.
626 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
628 * reflection.c: be more careful in case resource generation
629 fails to create the data array.
631 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
633 * sgen-gc.c: write barrier for clone and fix unregister handles.
635 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
637 * reflection.c: some fixes needed in the generics code for the moving GC.
639 2006-12-22 Robert Jordan <robertj@gmx.net>
641 * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
642 account. Fixes bug #80299.
644 2006-12-21 Raja R Harinath <rharinath@novell.com>
646 Fix WaitHandle usage in delegates.
647 * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
648 * object.c (mono_wait_handle_new): Use the property set method to
649 initialize the handle.
650 (mono_wait_handle_get_handle): New.
651 * threadpool.c (mono_async_invoke): Use it.
652 * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
654 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
656 2006-12-21 Jonathan Chambers <joncham@gmail.com>
658 * marshal.c (emit_marshal): Call emit_marshal_variant and
659 emit_marshal_com_interface when applicable.
660 (emit_marshal_variant, emit_marshal_com_interface): Add
661 methods for this case and remove if's from emit_marshal_object.
663 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
665 * filewatcher.c: updated to use the mono-dl API instead of gmodule.
667 2006-12-19 Jonathan Chambers <joncham@gmail.com>
669 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
670 ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
671 and GlobalFree on Windows. Remove FIXME.
673 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
675 * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
676 implementation for managed objects.
678 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
680 * object.c: implemented code to be used for checking
681 that no reference field overlaps with non-references.
683 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
685 * threadpool.c: fix queue code to be compatible with the
688 2006-12-18 Miguel de Icaza <miguel@novell.com>
690 * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
691 in structures by throwing ArgumentNullException.
693 (emit_marshal_safehandle): Also when they are null parameters.
695 (emit_marshal_safehandle): Add support for ref
696 SafeHandles parameters
698 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
700 * profiler.c: updated to use the mono-dl API instead of
703 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
705 * profiler.c: updated to use the mono-dl dynamic loading
706 API instead of gmodule.
708 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
710 * profiler.c: use readlink, older versions of glib don't have
713 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
715 * profiler.c: try to detect the path to mono if libc fails to provide
716 a useful name (bug #80286).
718 2006-12-16 Raja R Harinath <rharinath@novell.com>
721 * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
722 instance, use the generic type definition instead.
723 (ves_icall_Type_GetNestedTypes): Likewise.
724 * class.c (mono_class_create_generic): Always set the
725 nested_classes of a generic instance to NULL, even if the generic
726 type definition has nested types.
728 2006-12-15 Jonathan Chambers <joncham@gmail.com>
730 * marshal.c (mono_string_from_bstr): Revert previous Windows change
733 2006-12-15 Miguel de Icaza <miguel@novell.com>
735 * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
736 my arguments were in the wrong order. I also fixed the Windows
737 version which seems to have had the same issue.
739 (mono_free_bstr): On Unix, this is g_free.
740 (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
741 conversions (for the tests in corlib to pass).
743 2006-12-14 Miguel de Icaza <miguel@novell.com>
745 * marshal.c (emit_ptr_to_object_conv): For now, ignore
746 MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
747 exception if a ref SafeHandle in a struct has changed).
749 (emit_struct_conv): Do not perform layout checks for classes
750 derived from SafeHandle, as those are specially handled.
752 (emit_object_to_ptr_conv): Add support for
753 MONO_MARSHAL_CONV_SAFEHANDLE conversion.
755 (emit_marshal_safehandle): Implement conversion of return values
756 of safehandles (MARSHAL_ACTION_CONV_RESULT).
758 * threads.c: WaitHandle now is compiled with two different handles
759 "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
762 (ves_icall_System_Threading_WaitHandle_WaitAll_internal)
763 (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
764 these routines to cope with both kinds of fields.
766 2006-12-12 Miguel de Icaza <miguel@novell.com>
768 * metadata.c (mono_type_to_unmanaged): Handle the case where
769 type->data.klass is a SafeHandle, and in that case, return the
770 size of a pointer (MONO_NATIVE_INT) and set the conversion to be
771 MONO_MARSHAL_CONV_SAFEHANDLE.
773 2006-12-11 Miguel de Icaza <miguel@novell.com>
775 * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
776 MONO_TYPE_OBJECT cases and check for a SafeHandle here before
777 calling emit_marshal_object.
779 (emit_marshal_safehandle): Implement marshalling of
780 SafeHandle parameters (no ref support yet).
782 (MarshalAction): Document the defines as I implement
785 (emit_marshal_object): indentation police.
787 * class-internals.h: Define MonoSafeHandle.
788 Add safehandle_class to MonoDefaults type.
790 * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
791 list of classes to check for fields.
793 * domain.c (mono_init_internal): Add SafeHandle to the list of
794 mono_defaults loaded.
796 2006-12-15 Raja R Harinath <rharinath@novell.com>
799 * reflection.c (mono_reflection_bind_generic_parameters): If the
800 generic type definition is a type builder, ensure that it is fully
801 initialized before instantiating it. Kill some dead code.
803 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
805 * object.c: clear the loader_error () before loading
806 more metadata stuff (bug #80258).
808 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
810 * icall.c, icall-defs.h: type modifiers icalls for
811 parameters and properties.
813 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
815 * object.c, icall.c: fixed warnings.
817 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
819 * marshal.c: fixed a couple of leaks and coding style in a few places.
821 2006-12-08 Dick Porter <dick@ximian.com>
823 * process.c: Cope with NULL ProcessStartInfo arguments on windows
824 too. Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
827 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
829 * process.c: ProcessStartInfo may have only filename set and
830 arguments can be NULL.
832 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
834 * icall.c: fix leak found by Robert Jordan.
836 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
838 * marshal.c, marshal.h: generate managed method to access an element
839 of a multi-dimensional array.
841 2006-11-30 Paolo Molaro (lupus@ximian.com)
843 * metadata.c, marshal.c: locking fixes when writing to image->mempool.
845 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
847 * icall.c: back out GetFields () fix until the serialization code is
848 fixed to not depend on the incorrect behaviour.
850 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
852 * profiler.c: provide defaults if none are set.
854 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
856 * Makefile.am, attrdefs.h: new public header file with
857 constants for attributes for use by embedders.
859 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
861 * icall.c: GetFields () fix for bug #80064.
863 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
865 * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
866 removed long unused icalls.
868 2006-11-27 Jonathan Chambers <joncham@gmail.com>
871 (mono_marshal_emit_managed_wrapper): Level of indirection for
872 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
873 can be generated without a delegate class.
874 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
876 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
878 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
880 * console-io.c: add the 'signal' call removed by mistake. Fixes bug
883 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
885 * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
886 icall-def.h: added icalls needed by System.GC.
888 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
890 * loader.c: ensure the class in catch clauses is handled
891 correctly for generics methods (fixes bug#79980).
893 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
895 * monitor.h, monitor.c: added mono_locks_dump () function
896 to help debug deadlocks involving managed locks.
898 2006-11-13 Dick Porter <dick@ximian.com>
900 * file-io.c (get_file_attributes): If the file is a symlink try
901 and get the stat data for the target, but also add the
902 FILE_ATTRIBUTE_REPARSE_POINT flag. This is an attempt to follow
903 the specs for the windows symlink support, but will probably have
904 to be reworked when I have test data from a vista machine. Fixes
907 2006-11-13 Dick Porter <dick@ximian.com>
909 * gc.c (mono_domain_finalize):
910 * marshal.c (mono_delegate_begin_invoke):
911 * threadpool.c (socket_io_init, mono_thread_pool_init)
912 (mono_thread_pool_finish):
913 * monitor.c (mono_monitor_try_enter_internal):
914 * threads.c (mono_thread_resume, mono_thread_init)
915 (mono_thread_suspend_all_other_threads)
916 (mono_thread_execute_interruption):
917 * appdomain.c (mono_domain_unload): Check for NULL error returns
918 from CreateThread(), CreateEvent() and CreateSemaphore(). See bug
921 2006-11-11 Miguel de Icaza <miguel@novell.com>
924 (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
925 Only close the handle if the value of the handle is not
926 INVALID_HANDLE_VALUE. This just makes the process a bit more
929 Improvement for #75733, so that we do not run into this problem.
932 * assembly.c (check_path_env, check_extra_gac_path_env): Do not
933 include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
934 internal variables. Fixes #79462
937 2006-11-09 Dick Porter <dick@ximian.com>
939 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
940 Use poll() not select(). Fixes bug 79397.
942 2006-11-09 Raja R Harinath <rharinath@novell.com>
945 * assembly.c (mono_assembly_load_from_full): Check that the given
946 image has an assembly manifest.
948 2006-11-09 Ankit Jain <jankit@novell.com>
950 * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
951 (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
952 (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
954 2006-11-07 Dick Porter <dick@ximian.com>
956 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
957 Put the old resolver behaviour back for pre-2.0 profiles.
959 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
961 * threadpool.c: precise GC and locking fixes.
963 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
965 * class.c: don't load types that have an explicit unaligned
966 managed reference. Provide better info in the TypeLoad exception.
967 Part of the fix for bug #79744.
968 * object.c: use the correct check for class type load issues.
970 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
972 * class.c: enforce alignment of fields with managed references
973 even when Pack=1 is forced by the user (bug #77788).
975 2006-11-03 Dick Porter <dick@ximian.com>
977 * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
978 If the address reverse lookup fails, return it as the hostname
979 anyway. Fixes bug 79721.
981 2006-11-03 Dick Porter <dick@ximian.com>
983 * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
984 Fix build on Windows.
986 2006-11-02 Dick Porter <dick@ximian.com>
989 * object-internals.h:
990 * exception.c (mono_get_exception_thread_interrupted):
991 * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
994 * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
995 Check for pending Thread.Interrupt.
997 2006-10-27 Massimiliano Mantione <massi@ximian.com>
998 * loader.c: Fixed bug 79684.
1000 2006-10-27 Dick Porter <dick@ximian.com>
1002 * file-io.c (get_file_attributes): Force symlinks to directories
1003 to be returned as a regular file. Fixes bug 79733.
1004 2006-10-26 Dick Porter <dick@ximian.com>
1006 * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
1007 CreateFile to open a directory then we need to set the
1008 FILE_FLAG_BACKUP_SEMANTICS flag. Fixes bug 75285.
1010 2006-10-23 Zoltan Varga <vargaz@gmail.com>
1012 * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
1015 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1017 * sgengc.c: small cleanup of timer code.
1019 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1021 * sgen-gc.c: fix some warnings and start adding support for
1022 complete object removal on domain unload.
1024 2006-10-22 Gert Driesen <drieseng@users.sourceforge.net>
1026 * assembly.c: build_assembly_name should not consider a version
1027 number without build or revision number invalid. Fixes bug #79715.
1029 2006-10-18 Jonathan Chambers <joncham@gmail.com>
1031 * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
1032 call kernel32 function OutputDebugString directly.
1034 Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1036 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
1038 * reflection.c: small cleanup, using a function to insert a MonoString
1041 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
1043 * reflection.c: moving GC fixes.
1045 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1047 * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
1048 all the objects with finalizers belonging to an unloading appdomain.
1050 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
1052 * sgen-gc.c: added ability to allocate even when the nursery is fully
1053 pinned and fixed a couple of bugs.
1055 2006-10-15 Zoltan Varga <vargaz@gmail.com>
1057 * threads.h: Revert the last change for now.
1059 * threads.h (mono_thread_get_pending_exception): Rename this to
1060 mono_thread_get_undeniable_exception ().
1062 2006-10-15 Gert Driesen <drieseng@users.sourceforge.net>
1064 * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
1065 BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
1066 when fname does not refer to valid assembly. This result in a more
1067 meaningful error message.
1068 * exception.c: added mono_get_exception_bad_image_format2 which
1069 constructs a BadImageFormatException using the ctor taking a custom
1070 message and the file name. Passing in a NULL msg results in a default
1072 * exception.h: define mono_get_exception_bad_image_format2 function.
1073 * icall.c: in InternalGetAssemblyName, throw BadImageFormatException
1074 when file name pointed to an invalid IL image. Use
1075 mono_get_exception_file_not_found2 to construct FileNotFoundException,
1076 as this results in a more meaningful error message.
1078 2006-10-15 Zoltan Varga <vargaz@gmail.com>
1080 * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
1083 2006-10-12 Zoltan Varga <vargaz@gmail.com>
1085 * metadata.c (mono_type_size): Change the align parameter to guint32 for
1086 consistency with the other _size functions.
1087 (mono_type_stack_size): Ditto.
1089 * class.c object.c icall.c: Fix warnings caused by the above change.
1091 * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1093 * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1095 * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1097 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1099 * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1100 process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1101 socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1102 threadpool.h, threads-types.h: mark more internal functions.
1104 2006-10-11 Dick Porter <dick@ximian.com>
1106 * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1107 Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1108 reproduce the bug even before applying the fix.)
1110 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1112 * reflection.c: allow retrieving attributes for arguments in generic
1113 methods (bug #79241).
1115 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1117 * debug-mono-symfile.c: properly check fopen () result (found by
1120 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1122 * reflection.c: make error message clearer and fixed two
1123 issuelets found by Coverity.
1125 2006-10-10 Zoltan Varga <vargaz@gmail.com>
1127 * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1129 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1131 * object-internals.h, gc-internal.h, profiler-private.h:
1132 mark internal functions.
1134 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1136 * reflection.c: put data in the text section.
1137 * icall.c: recognize more types in type_from_typename ().
1138 * process.c, marshal.c: added some GC FIXMEs.
1140 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1142 * loader.c: check for NULL before initializing.
1144 2006-10-09 Zoltan Varga <vargaz@gmail.com>
1146 * gc.c (finalizer_thread): Use a non-alertable wait here.
1148 * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1149 until the correct solution is found.
1151 2006-10-06 Zoltan Varga <vargaz@gmail.com>
1153 * reflection.c (mono_module_get_object): Avoid an assert when operating on
1154 modules with no metadata. Fixes #79596.
1156 * image.c (load_metadata_ptrs): Put back the error message when
1157 the #- heap is encountered since the support is not complete yet.
1159 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1161 * gc.c: do not allow the user to SuppressFinalize () a
1162 delegate because it would leak the trampoline if present.
1164 2006-10-06 Zoltan Varga <vargaz@gmail.com>
1166 * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1169 2006-10-05 Zoltan Varga <vargaz@gmail.com>
1171 * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1173 * metadata.c (mono_metadata_get_param_attrs): Ditto.
1175 * row-indexes.h: Add definitions for *Ptr tables.
1177 * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1179 * metadata.c (mono_metadata_translate_token_index): New helper function to
1180 translate table indexes used in uncompressed metadata.
1181 (mono_metadata_decode_table_row): Ditto.
1182 (mono_metadata_decode_table_row_col): Ditto.
1184 * metadata.c: Add table schema for *Ptr tables.
1186 * class.c loader.c: Use the new helper function to access the affected metadata
1189 * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1192 2006-10-04 Zoltan Varga <vargaz@gmail.com>
1194 * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1195 sequences which can be unbounded in size. Fixes #79583.
1197 2006-10-02 Zoltan Varga <vargaz@gmail.com>
1199 * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1200 static initialization.
1202 * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1204 * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1206 * domain.c (mono_domain_free): Free up type_init_exception_hash.
1208 * object.c (mono_runtime_class_init): Implement correct semantics when a static
1209 ctor fails, i.e. throw the same exception on subsequent accesses.
1211 2006-09-0 Jonathan Chambers <joncham@gmail.com>
1213 * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1214 * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1215 Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1216 Handle marshalling of interfaces and VARIANTs contained in structs.
1218 Code is contributed under MIT/X11 license.
1220 2006-09-30 Zoltan Varga <vargaz@gmail.com>
1222 * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1224 * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1227 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1229 * console-io.c: ignore previous SIGINT handler.
1231 2006-09-27 Zoltan Varga <vargaz@gmail.com>
1233 * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual
1234 (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1235 #79460, #79461, #79485.
1237 * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1239 * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1242 2006-09-26 Zoltan Varga <vargaz@gmail.com>
1244 * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1245 could be generated from it.
1247 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1249 * rand.c: fix read loop to correctly handle EINTR.
1251 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1253 * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1254 internal calls are defined to keep methods closer to the declaring
1255 type and allow a significant reduction in runtime relocations and
1258 2006-09-21 Gert Driesen <drieseng@users.sourceforge.net>
1260 * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1261 exception message to have FileNotFoundException use the default
1262 assembly load error message. Fixes bug #79426.
1263 * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1265 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1267 * threadpool.c: (start_thread_or_queue) use the root domain when
1268 creating the thread instead of the async object one.
1270 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1272 * class.c, object.c, class-internals.h, reflection.c:
1273 for arrays, store element_size inside MonoClass (speedup
1274 for array object creation).
1276 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1278 * icall.c: fixed CodeBase to use the file name and not the module
1281 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1283 * mono-debug.c, mono-debug.h: export find_method as
1284 mono_debug_find_method ().
1286 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1288 * debug-helpers.c, class-internals.h: added a few functions useful
1289 when debugging under gdb.
1291 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1293 * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1294 characters that need special handling.
1296 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1298 * mono-config.c: make the os/cpu specification more flexible,
1299 allowing lists and negation.
1301 2006-09-18 Jonathan Chambers <joncham@gmail.com>
1303 * marshal.c: COM Interop fixes. Handle case where method->klass.
1304 is interface. Handle BSTR/MonoString when null. Use CDECL as
1305 calling convention on non-windows platforms. This is for
1306 compatibility with XPCOM and MainWin COM.
1308 Code is contributed under MIT/X11 license.
1311 2006-09-18 Zoltan Varga <vargaz@gmail.com>
1313 * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1314 correctly. Fixes #79217.
1316 * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1318 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1320 * mono-config.c: allow both an os and cpu attribute for dllmap
1321 and dllentry elemnets to enable a single config file to be used
1322 for multiple architectures.
1324 2006-09-18 Gert Driesen <drieseng@users.sourceforge.net>
1326 * loader.c: MonoLoaderError was cleared too soon on load failure.
1329 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1331 * icall.c: use the defining class vtable when accessing a
1332 static field, not a pobblibly derived class.
1334 2006-09-17 Zoltan Varga <vargaz@gmail.com>
1336 * icall.c string-icalls.c: Remove references to unicode.h.
1338 * unicode.h unicode.c Makefile.am: Remove these unused source files.
1340 * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1342 * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument,
1343 indicating the image where custom marshaller types should be looked up.
1344 (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1345 custom marshallers, instead of corlib. Fixes #79425.
1347 2006-09-14 Zoltan Varga <vargaz@gmail.com>
1349 * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1351 2006-09-14 Jonathan Chambers <joncham@gmail.com>
1353 * environment.c (ves_icall_System_Environment_get_ProcessorCount):
1354 Implement Environment.ProcessorCount.
1356 * environment.h (ves_icall_System_Environment_get_ProcessorCount):
1357 Implement Environment.ProcessorCount.
1360 Add Environment.ProcessorCount icall.
1362 Patch by Jason McFall.
1364 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1366 * assembly.c: don't append .exe/.dll when the filename already contains
1367 one of those extensions.
1369 2006-09-12 Martin Baulig <martin@ximian.com>
1371 * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1372 to array interfaces.
1374 2006-09-11 Martin Baulig <martin@ximian.com>
1376 * reflection.c (mono_image_build_metadata): Create the
1377 MethodImpl's after emitting all types and methods, so we don't
1378 need another fixup pass for them.
1380 2006-09-11 Zoltan Varga <vargaz@gmail.com>
1382 * class.c (mono_class_from_name_case): Fix regression introduced by the last
1385 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1387 * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1390 2006-09-10 Zoltan Varga <vargaz@gmail.com>
1392 * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1393 args is not set. Fixes #78926.
1395 2006-09-08 Zoltan Varga <vargaz@gmail.com>
1397 * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1399 * image.c (load_class_names): Move this to class.c, and rename it to
1400 'mono_image_init_name_cache'.
1401 (load_modules): Fix a warning.
1403 * class.c icall.c image.c: Initialize image->name_cache lazily.
1405 * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1406 on its name using information in the AOT file.
1408 * class.c (mono_class_from_name): Use the new hook function.
1410 2006-09-06 Zoltan Varga <vargaz@gmail.com>
1412 * reflection.c (mono_param_get_objects): Handle enum default parameter values
1415 * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1418 2006-09-06 Martin Baulig <martin@ximian.com>
1420 * icall.c (mono_lookup_internal_call): Small fix.
1422 2006-09-05 Raja R Harinath <rharinath@novell.com>
1424 * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1427 2006-09-04 Sebastien Pouliot <sebastien@ximian.com>
1429 * debug-mono-symfile.c: Fix *some* memory leaks that happens only
1430 when --debug is specified.
1432 2006-09-04 Zoltan Varga <vargaz@gmail.com>
1434 * class.c (setup_generic_array_ifaces): Fix a warning.
1436 2006-09-04 Miguel de Icaza <miguel@novell.com>
1438 * Temporarily remove the patch to assemly.c that checks the
1439 assembly versions as it breaks our gacutil.
1441 2006-09-03 Zoltan Varga <vargaz@gmail.com>
1443 * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1445 * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1448 * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1449 created using the default ctor. Fixes #79152.
1450 (mono_string_builder_to_utf16): Ditto.
1452 2006-09-01 Martin Baulig <martin@ximian.com>
1454 Fix handling of the generic array interfaces.
1457 (MonoDefaults): Removed `generic_array_class' and added
1458 `generic_ilist' class.
1461 (mono_bounded_array_class_get): Add the new generic array interfaces.
1462 (setup_generic_array_ifaces): New static method; create vtable
1463 entries for each method in the generic array interfaces.
1466 (select_container): Allow "parent-less" generic methods.
1469 (mono_marshal_get_generic_array_helper): New public method.
1472 (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1473 Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1474 moved the interncall into System.Array.
1476 2006-09-01 Raja R Harinath <rharinath@novell.com>
1478 A few more cases of avoiding work on types with ->byref set.
1479 Has the real fix for #79238
1480 * icall.c (is_generic_parameter): New helper.
1481 (ves_icall_Type_GetGenericParameterPosition): Use it.
1482 (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1483 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1484 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1485 (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1487 (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1489 (ves_icall_Type_get_IsGenericInstance): Likewise.
1490 (ves_icall_Type_get_IsGenericType): Likewise.
1492 2006-09-01 Zoltan Varga <vargaz@gmail.com>
1494 * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1497 * mempool.h (mono_mempool_get_allocated): New helper function.
1499 * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1502 * mempool.c: Fix warnings and the calculation of stats.
1504 * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1506 * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1508 * loader.c (mono_get_method_from_token): Update method_count stat.
1510 * class-internals.h (MonoStats): Add some stats.
1512 2006-08-31 Robert Jordan <robertj@gmx.net>
1514 * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1515 with managed variants.
1516 All code is contributed under the MIT/X11 license.
1518 2006-08-31 Zoltan Varga <vargaz@gmail.com>
1520 * reflection.c (reflection_methodbuilder_to_mono_method): Set
1521 method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1523 * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1525 * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1526 with cycles in classes.
1528 * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1530 * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is
1531 missing a [MarshalAs] directive. Fixes #79203.
1533 * marshal.c (mono_marshal_load_type_info): Fix a race in initializing
1534 klass->marshal_info. Fixes #79217.
1536 2006-08-30 Martin Baulig <martin@ximian.com>
1538 Committing a patch from Joachim Ante <joe@otee.dk>:
1539 Add support for binary data symbol stores.
1541 * debug-mono-symfile.c
1542 (mono_debug_open_mono_symbol_file): Renamed into
1543 mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1547 (mono_debug_open_image): Added `raw_contents' and `size' args.
1548 (mono_debug_init_2_memory): New public function.
1550 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1552 * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1554 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1556 * appdomain.c: implement support for ShadowCopyFiles.
1558 2006-08-22 Sebastien Pouliot <sebastien@ximian.com>
1560 * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1561 when value is NULL (and should remove CID #51).
1563 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1565 * image.c: moved 2 functions to ../utils.
1567 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1569 * gc.c: cope with the target object of a GC handle being NULL
1572 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1574 * class.c: recursively check parent's explicit implementations
1575 of interface methods (fixes bug #79125).
1577 2006-08-19 Miguel de Icaza <miguel@novell.com>
1579 * filewatcher.c: Avoid warnings when building, do not redefine
1580 constants that are defined.
1584 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1586 * image.c: don't fail when the link points to an absolute path.
1588 2006-08-18 Sebastien Pouliot <sebastien@ximian.com>
1590 * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1593 2006-08-17 Miguel de Icaza <miguel@novell.com>
1595 * image.c (full_path): A new method used to obtain the actual path
1596 of an assembly even in the presence of symbolic links.
1598 This is necessary for the case where we are running a binary that
1599 has been GACed, but we are using the "published" path name
1600 ($prefix/mono/1.0/blah.exe) which happens to point to the real
1603 This was the source of the failure for the `xsp' command with the
1604 recent AppDomain changes, as far as the runtime was concerned,
1605 there were two different assemblies: $prefix/mono/1.0/blah.exe and
1606 $prefix/mono/gac/blah/version/blah.exe.
1608 (do_mono_image_open): use full path
1610 2006-08-17 Zoltan Varga <vargaz@gmail.com>
1612 * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1614 2006-08-17 Sebastien Pouliot <sebastien@ximian.com>
1616 * marshal.c: Fix mono_marshal_check_domain_image if an invalid
1617 domain_id is supplied. Fix CID #241 and corlib's unit tests.
1619 2006-08-17 Zoltan Varga <vargaz@gmail.com>
1621 * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1622 small structures. Fixes #78990.
1624 2006-08-17 Zoltan Varga <vargaz@gmail.com>
1626 * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1628 * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1630 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1633 * marshal.c: don't load all the assemblies from a domain into newly
1634 created ones. The new domains might have different rules and load
1635 assemblies from different locations. Fixes bug #76757.
1637 Patch by Lluis. Conflicts resolved by Brian Crowell.
1639 2006-08-16 Alp Toker <alp@atoker.com>
1641 * socket-io.c: First half of the fix for #79084.
1642 Set sa_size to the length of the content, not that of the struct.
1643 Don't add NULL suffix to the content, this should be done in
1644 managed code if needed.
1646 2006-08-14 Raja R Harinath <rharinath@novell.com>
1649 * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1650 mono_metadata_parse_type returns NULL.
1652 2006-08-13 Atsushi Enomoto <atsushi@ximian.com>
1654 * normalization-tables.h : new file for string normalization data.
1655 * locales.c, locales.h, icall.c :
1656 added load_normalization_resource() for string normalization,
1658 * Makefile.am : added normalization-tables.h to the sources.
1660 2006-08-13 Zoltan Varga <vargaz@gmail.com>
1662 * marshal.c: Add more helper functions to reduce code duplication and use them
1665 2006-08-12 Zoltan Varga <vargaz@gmail.com>
1667 * marshal.c: Fix non-x86 stdcall warnings.
1669 * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use
1672 2006-08-11 Jonathan Chambers <joncham@gmail.com>
1674 * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1675 type check on multi-dimensional arrays. Fixes #79000.
1677 2006-08-10 Jonathan Chambers <joncham@gmail.com>
1679 * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1680 * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1681 to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1682 * class-internals.h: add is_com_object to class structure.
1683 * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1684 null checks to COM object marshalling. Fix .ctor call on RCW.
1685 * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1687 All code is contributed under the MIT/X11 license.
1689 2006-08-09 Dick Porter <dick@ximian.com>
1691 * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1692 racing mono_monitor_allocator_lock() somewhere, so don't delete
1693 the critical section for now. Found by running and exiting
1696 2006-08-10 Zoltan Varga <vargaz@gmail.com>
1698 * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1699 (ves_icall_System_ComObject_FindInterface): Ditto.
1700 (ves_icall_System_ComObject_CacheInterface): Ditto.
1702 * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1703 (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1705 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1707 * threadpool.c: treat pipes from process asynchronous reads as sockets
1708 when reading from them, so we get select/poll or epoll to wait for
1711 2006-08-07 Sebastien Pouliot <sebatien@ximian.com>
1713 * loader.c: Fix a typo (CID #233) in the null check.
1715 2006-08-07 Zoltan Varga <vargaz@gmail.com>
1717 * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1718 Hopefully fixes #78949.
1720 * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from
1721 Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1722 bytes. Fixes #78972.
1724 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1726 * filewatcher.c: we need to set errno here.
1728 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1730 * filewatcher.c: let Win32Exception get the error value.
1732 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1734 * filewatcher.c: translate errno into win32 errors for Win32Exception
1735 to know what happened.
1737 2006-08-01 Zoltan Varga <vargaz@gmail.com>
1739 * threadpool.c: Fix more warnings.
1741 * assembly.c (search_loaded): Fix warnings.
1743 * threadpool.c (mono_thread_pool_finish): Fix warnings.
1744 (mono_async_invoke): Ditto.
1746 2006-07-28 Jonathan Chambers <joncham@gmail.com>
1748 * object.c (mono_remote_class_vtable): Need to create proxy vtable
1749 entries for __ComObject type in addition to ComImport types.
1750 * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1753 All code is contributed under the MIT/X11 license.
1755 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1757 * image.c: avoid tentative loading of modulerefs that contain
1758 no metadata (P/Invoke library names).
1760 2006-07-28 Dick Porter <dick@ximian.com>
1762 * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1763 mono_loader_lock() somewhere, so don't delete the critical section
1764 for now. Found by running and exiting monodevelop.
1766 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1768 * filewatcher.c: define the inotify syscalls when we're building on
1769 linux and have sys/syscall.h. The build system might not have support
1770 for inotify but the target system might have it.
1772 2006-07-26 Miguel de Icaza <miguel@novell.com>
1774 * domain.c: Documentation updates.
1776 * loader.c (mono_free_method): Do not release the method
1777 information if we are being profiled, as profilers will use this
1778 information at shut down to present some data to the user.
1780 This is needed so that the profiler does not crash, as the
1781 profiler tends to keep MonoMethods around, and they might become
1782 invalid if we free these.
1784 (mono_get_method_constrained): Return the original CIL stream
1785 method as well, so verification can be performed against it.
1787 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1789 * filewatcher.[ch]: support for inotify file system watcher.
1790 * icall.c: add new internal calls for the inotify file system watcher.
1792 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1794 * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1797 2006-07-20 Dick Porter <dick@ximian.com>
1799 * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1802 2006-07-20 Dick Porter <dick@ximian.com>
1804 * threads.c (start_wrapper): Do the thread cleanup while we still
1805 hold a reference to its object. Fixes bug 78123.
1807 2006-07-18 Kornél Pál <kornelpal@gmail.com>
1809 * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1810 * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1811 "managed-to-managed".
1812 * icall.c: Redirect string constructors that take sbyte* to
1813 ves_icall_System_String_ctor_RedirectToCreateString.
1814 * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1815 to CreateString () methods with matching signature.
1816 * reflection.c: Use original security informations for
1817 MONO_WRAPPER_MANAGED_TO_MANAGED.
1818 * security-manager.c: Use original security informations for
1819 MONO_WRAPPER_MANAGED_TO_MANAGED.
1820 * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1821 that is a placeholder and only its address should be used.
1822 * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1823 that is a placeholder and only its address should be used.
1825 2006-07-15 Jonathan Chambers <joncham@gmail.com>
1827 Begin implementing COM Interop.
1828 * appdomain.c: Increment corlib version.
1829 * class.c: Set ComImport classes' parent to __ComObject.
1830 * loader.c: Mark cominterop methods as such.
1831 * domain.c: Add __ComObject class to MonoDefaults structure.
1832 * image.c: Add 2 hashtables to the image for COM Interop related methods
1833 * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1834 using the mempool allocator
1836 * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1837 * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1838 declaration for mono_metadata_type_dup_mp.
1840 * debug-helpers.c: Added strings for two additional wrapper types
1841 * object.c: Create proxy objects for ComImport classes
1842 * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1843 and added __ComObject class to MonoDefaults structure.
1845 * object-internals.h: Finish MonoRealProxy definition, and add definition of
1846 MonoComInteropProxy and MonoComObject.
1848 * marshal.c: Added support for COM Interop
1849 (signature_cominterop): Converts managed signature to corresponding
1850 unmanaged COM signature.
1851 (cominterop_get_function_pointer): gets unmanaged function pointer via
1853 (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1854 (cominterop_get_method_interface): returns interface type that method is defined on
1855 (mono_mb_emit_cominterop_call): emits native call to function pointer
1857 (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1858 that matches signature of unmanaged function.
1859 (cominterop_get_native_wrapper): wrapper around adjusted method call.
1860 (cominterop_get_invoke): forwards call from proxy to __ComObject
1861 (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef
1862 (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface
1863 (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release
1865 * marshal.h: Added Marshal icall declarations.
1866 * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1867 so we can access them in finalizer
1869 2006-07-14 Dick Porter <dick@ximian.com>
1871 * object.c (mono_type_initialization_cleanup): Fix a race
1872 condition by temporarily commenting out the critical section
1875 2006-07-14 Zoltan Varga <vargaz@gmail.com>
1877 * reflection.c (create_custom_attr): Fix some warnings.
1878 (create_custom_attr_data): Ditto.
1879 (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1880 types. Fixes #78855.
1882 2006-07-11 Zoltan Varga <vargaz@gmail.com>
1884 * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1886 * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1888 2006-07-08 Zoltan Varga <vargaz@gmail.com>
1890 * reflection.c (resolve_object): Add support for DynamicMethod.
1892 * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1893 Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1895 2006-07-06 Sebastien Pouliot <sebastien@ximian.com>
1897 * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal
1898 don't leak GPtrArray's pdata has we have no use (nor free) for it.
1900 2006-07-01 Zoltan Varga <vargaz@gmail.com>
1902 * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1905 2006-06-30 Raja R Harinath <rharinath@novell.com>
1907 * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1908 slightly: remove a shadow local variable.
1910 2006-06-29 Raja R Harinath <rharinath@novell.com>
1912 * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1913 definition that introduces the virtual function slot.
1914 Also fix Coverity #105.
1916 2006-06-29 Zoltan Varga <vargaz@gmail.com>
1918 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1919 for dynamic assemblies. Fixes #78724.
1921 2006-06-28 Zoltan Varga <vargaz@gmail.com>
1923 * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1926 2006-06-21 Martin Baulig <martin@ximian.com>
1929 (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1932 2006-06-21 Zoltan Varga <vargaz@gmail.com>
1934 * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1936 2006-06-20 Raja R Harinath <rharinath@novell.com>
1938 Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1940 * class.c (mono_class_create_from_typespec): Add 'context' argument.
1941 Inflate result if necessary.
1942 (mono_class_get_full): Remove old version. Rename from
1943 'mono_class_get' and add 'context' argument. Pass it to
1944 ..._create_from_typespec.
1945 (mono_class_get): New. Simple wrapper to mono_class_get_full.
1946 (mono_ldtoken): Revert change below.
1948 2006-06-20 Martin Baulig <martin@ximian.com>
1950 * class.c (mono_ldtoken): Don't pass the generic context to
1951 mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF. Fixes #78053.
1953 2006-06-15 Zoltan Varga <vargaz@gmail.com>
1955 * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1956 and later freeing it. Fixes #78638.
1958 2006-06-15 Miguel de Icaza <miguel@novell.com>
1960 * icall.c (mono_class_get_throw): Revert over-zealous error
1961 throwing, the caller for mono_class_get_throw will cope with
1962 errors when classes are not properly initialized already.
1964 The code still copes with loader exceptions though.
1966 Fixes the regression in reftype1 and reftype3 from the CAS tests.
1968 2006-06-14 Miguel de Icaza <miguel@novell.com>
1970 Fixes the `make run1' version of RuntimeAbort (to be commited,
1971 source is in Bugzilla).
1973 * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1974 FALSE on class loading failure instead of returning true.
1976 * class.c (mono_class_create_from_typedef): It is possible for
1977 mono_metadata_interfaces_from_typedef_full to fail if a class is
1978 not found, cope with this.
1981 2006-06-14 Dick Porter <dick@ximian.com>
1984 * process.c: Fix a bunch of signed/unsigned warnings from gcc
1987 2006-06-12 Atsushi Enomoto <atsushi@ximian.com>
1989 * culture-info-table.h : oops, forgot to make it nsync with r61548.
1991 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
1993 * icall.c: Another fix for building mono in Visual Studio.
1995 2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
1997 * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1999 2006-06-09 Martin Baulig <martin@ximian.com>
2001 * debug-mono-symfile.c: Put this back and really fix it this
2002 time. Sorry for all the trouble.
2004 2006-06-08 Zoltan Varga <vargaz@gmail.com>
2006 * icall.c (mono_class_get_throw): Fix a warning.
2007 (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw
2008 ReflectionTypeLoadException if needed. Fixes #78606.
2010 * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
2011 (mono_class_init): Ditto.
2013 * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
2014 ref_only exceptions.
2015 (mono_loader_clear_error): Make this work even if there is no error.
2017 2006-06-08 Jonathan Chambers <jonathan.chambers@ansys.com>
2019 * object-internals.h marshal.c marshal.h icall.c: Implement method
2020 Marshal.GetComSlotForMethodInfo using internal call.
2022 2006-06-07 Zoltan Varga <vargaz@gmail.com>
2024 * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
2025 a function for signalling it.
2027 * class.c (mono_class_from_typeref): Use the new kind of loader error when
2028 a referenced assembly is not found.
2030 * loader.c (mono_loader_error_prepare_exception): Add support for
2031 LOADER_ERROR_ASSEMBLY. Fix formatting.
2033 2006-06-05 Jonathan Chambers <jonathan.chambers@ansys.com>
2035 * domain.c appdomain.c class-internals.h marshal.c: Add support
2036 for VARIANT marshalling on windows and increment corlib version
2037 since Variant struct was added.
2039 2006-06-03 Miguel de Icaza <miguel@novell.com>
2041 * debug-mono-symfile.c: Revert Martin's previous patch which broke
2042 stack trace line information:
2044 (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
2045 (Martin) when looking up B which is between A and C, return A not C.
2049 Thanks to Alexander Olk for tracking this down.
2051 2006-06-02 Zoltan Varga <vargaz@gmail.com>
2053 * marshal.c (mono_marshal_set_last_error_windows): Fix build.
2055 * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
2056 avoid clobbering its value.
2057 (mono_string_to_lpstr): Fix a warning on windows.
2059 2006-05-31 Zoltan Varga <vargaz@gmail.com>
2061 * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
2063 * reflection.c loader.c: Removed references to 'dummy' flag.
2065 * loader.c (mono_loader_error_prepare_exception): Fix a warning.
2067 * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
2068 it gets GC tracking.
2070 * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
2073 * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
2075 * marshal.c threadpool.c: Update callers of mono_async_result_new.
2077 * appdomain.c: Bump corlib version.
2079 2006-05-30 Zoltan Varga <vargaz@gmail.com>
2081 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2082 CEE_STIND_REF when working with object references.
2084 2006-05-31 Zoltan Varga <vargaz@gmail.com>
2086 * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
2089 2006-05-30 Miguel de Icaza <miguel@novell.com>
2091 * loader.c (method_from_memberref): Fix argument value for
2092 mono_loader_set_error_method_load (I was passing the MonoClass
2093 instead of the class name char *).
2095 2006-05-30 Zoltan Varga <vargaz@gmail.com>
2097 * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2098 CEE_STIND_REF when working with object references.
2100 2006-05-30 Martin Baulig <martin@ximian.com>
2102 * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2103 mono_method_full_name() change and replace the ':' with a '.'
2106 2006-05-30 Martin Baulig <martin@ximian.com>
2108 * debug-mono-symfile.c
2109 (mono_debug_symfile_lookup_location): Fix the algorithm:
2110 when looking up B which is between A and C, return A not C.
2112 2006-05-29 Martin Baulig <martin@ximian.com>
2115 (MonoDebugMethodInfo): Make the typedef public.
2116 (MonoDebugSourceLocation): New public struct.
2119 (mono_debug_source_location_from_address): Removed.
2120 (mono_debug_source_location_from_il_offset): Removed.
2121 (mono_debug_il_offset_from_address): Removed.
2122 (mono_debug_address_from_il_offset): Removed.
2123 (mono_debug_lookup_method): New public function.
2124 (mono_debug_lookup_source_location): New public function; replaces
2125 the old mono_debug_source_location_from_*() functions; see the
2126 inline documentation.
2127 (mono_debug_free_source_location): New public function.
2128 (mono_debug_print_stack_frame): New public function; see the
2129 inline documentation.
2131 * debug-mono-symfile.c
2132 (mono_debug_find_source_location): Renamed into
2133 mono_debug_symfile_lookup_location(); only take a
2134 `MonoDebugMethodInfo *' and an `offset' argument; added inline
2136 (mono_debug_find_method): Renamed into
2137 mono_debug_symfile_lookup_method().
2139 2006-05-27 Zoltan Varga <vargaz@gmail.com>
2141 * assembly.c (mono_assembly_open_full): Dont overwrite the status
2142 returned by mono_image_open_full ().
2144 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2145 MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2148 * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2151 2006-05-27 Miguel de Icaza <miguel@novell.com>
2153 * class.c (mono_class_from_typeref): handle missing images
2154 earlier, deals with bug #78418. Refactor code;
2156 Fix a warning introduced in my previous commit (some stale code
2157 from before I revisited my patch).
2159 * class.c (mono_class_create_from_typedef): On failure, remove the
2160 class from the MonoImage->class_cache as the class is not
2161 initialized; Fixes the leak pointed out by Paolo.
2163 2006-05-25 Dick Porter <dick@ximian.com>
2165 * threads.c (mono_thread_cleanup): Build fix. Comment out the
2166 DeleteCriticalSections until I figure out which one may still be
2167 sometimes locked when mono_thread_cleanup is called.
2169 2006-05-24 Dick Porter <dick@ximian.com>
2171 * threads.c (mono_thread_cleanup): Move the threading cleanup out
2172 of mono_thread_manage and back into its own function, so it can be
2173 called after the finalizer thread has finished.
2175 * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2177 2006-05-24 Zoltan Varga <vargaz@gmail.com>
2179 * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2182 * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2183 with non-blittable elements.
2184 (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2186 2006-05-24 Martin Baulig <martin@ximian.com>
2188 * mono-debug-debugger.h (MonoDebuggerEvent): Added
2189 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.
2191 * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2192 `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2193 `mono_debugger_event_handler' to NULL.
2195 2006-05-24 Martin Baulig <martin@ximian.com>
2197 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2199 2006-05-24 Martin Baulig <martin@ximian.com>
2201 * mono-debug-debugger.h
2202 (mono_debugger_create_notification_function): Added
2203 `MonoCodeManager *' argument.
2205 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2207 * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2209 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2211 * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2212 * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2215 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2217 * icall.c: precise GC support: objects can't be stored in unmanaged
2218 memory anymore, even if they are kept alive by other references: since
2219 they can move the GC needs to be able to always find them.
2221 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2223 * object.c: precise GC support for static fields. Support
2224 for moving GCs: write barriers and pinned allocation for interned
2227 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2229 * domain.c, domain-internals.h: precise GC support for the MonoDomain
2232 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2234 * class.c, gc.c: sgen and precise GC updates.
2236 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2238 * marshal.h, marshal.c: added write barrier wrapper and precise type
2241 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2243 * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2246 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2248 * reflection.c: precise and sgen GC updates.
2250 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2252 * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2254 2006-05-22 Zoltan Varga <vargaz@gmail.com>
2256 * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2258 2006-05-20 Zoltan Varga <vargaz@gmail.com>
2260 * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2261 MONO_TYPE_OBJECT. Fixes #78462.
2263 2006-05-18 Zoltan Varga <vargaz@gmail.com>
2265 * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct
2266 and blittable types.
2268 2006-05-17 Miguel de Icaza <miguel@novell.com>
2270 * class.c (mono_class_get_exception_for_failure): Implement parts
2271 of a TODO: if the loader error is set (instead of the class
2272 error), we return a Loader exception that can be properly thrown
2275 This was exposed by some Winforms 2.0 code that I tried to run
2276 (Atsushi pointed me to it).
2278 2006-05-17 Zoltan Varga <vargaz@gmail.com>
2280 * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2281 uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2283 * marshal.c (emit_marshal_vtype): Add limited support for
2284 UnmanagedType.LPStruct. Fixes #78427.
2286 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure):
2287 Applied a patch from kangaroo to fix #77523.
2289 2006-05-17 Martin Baulig <martin@ximian.com>
2292 (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2293 (debugger_thread_created): Removed.
2294 (debugger_thread_exited): Removed.
2296 2006-05-15 Zoltan Varga <vargaz@gmail.com>
2298 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2300 * object-internals.h (MonoReflectionResource): Sync with managed version.
2302 2006-05-12 Wade Berrier <wberrier@novell.com>
2304 * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2306 2006-05-12 Zoltan Varga <vargaz@gmail.com>
2308 * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2309 functions try to allocate from the image mempool.
2311 2006-05-12 Dick Porter <dick@ximian.com>
2313 * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2315 2006-05-12 Lluis Sanchez <lluis@ximian.com>
2317 * object.c: The FieldGetter and FieldSetter methods require the full
2318 name of the class, not only the name. Fixes bug #78277.
2320 2006-05-11 Miguel de Icaza <miguel@novell.com>
2322 * loader.c (method_from_memberref): Do not pass the NULL klass to
2323 mono_loader_set_error_() methods. Pass the non-NULL value
2326 2006-05-11 Zoltan Varga <vargaz@gmail.com>
2328 * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2329 (mono_assembly_close): Null out assembly->image->references after freeing it.
2331 * image.c (mono_image_close): Free image->references.
2333 * reflection.c (mono_image_basic_init): Fix a small memory leak.
2335 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
2337 * marshal.c: In function mono_mb_add_local don't use the mb pointer
2338 before checking if it's NULL (g_assert).
2340 2006-05-10 Martin Baulig <martin@ximian.com>
2342 * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2343 I thought I already killed that two months ago, but now it somehow reappeared.
2345 2006-05-10 Martin Baulig <martin@ximian.com>
2347 * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2349 2006-05-10 Zoltan Varga <vargaz@gmail.com>
2351 * reflection.c: Allocate memory for dynamically created methods in the image
2354 2006-05-10 Sebastien Pouliot <sebastien@ximian.com>
2356 * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions,
2357 don't use the ad pointer before checking if it's NULL (g_assert).
2359 2006-05-09 Zoltan Varga <vargaz@gmail.com>
2361 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2362 a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2364 * marshal.c: Allocate all signatures from mempools.
2366 * marshal.c: Allocate some more signatures from mempools.
2368 2006-05-09 Miguel de Icaza <miguel@novell.com>
2370 * object.c (mono_load_remote_field): The code used to provide a
2371 temporary variable for returning results if the user did not
2372 provide a result pointer. But our temporary variable was allocted
2375 Fix calling code to always pass a result area. Coverity ID 103.
2377 2006-05-06 Zoltan Varga <vargaz@gmail.com>
2379 * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2380 value, not the old. Fixes #78312.
2381 (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2383 * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2384 (mono_ptr_class_get): Ditto. Also change the cache from a global one to a
2387 * assembly.c (mono_assembly_close): Free image->references.
2389 * assembly.c (mono_assembly_names_equal): Fix a warning.
2390 (mono_assemblies_cleanup): Cleanup more global data.
2392 * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2394 * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2395 ptr_cache and image->modules.
2397 * image.c (mono_image_init): Allocate array_cache lazily.
2399 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2401 * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2402 behavior was changed recently and has bad side effects.
2404 2006-05-05 Zoltan Varga <vargaz@gmail.com>
2406 * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2408 * assembly.c (mono_assembly_close): Remove a debug printf.
2410 * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2412 * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2413 to also allow for temporary references between mono_image_open ()/close ().
2415 * domain.c (get_runtimes_from_exe): Add a FIXME.
2417 2006-05-04 Zoltan Varga <vargaz@gmail.com>
2419 * marshal.c: Fix support for dynamic methods.
2421 * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2423 * marshal.c (mono_marshal_cleanup): New cleanup function.
2425 * marshal.c: Rewrite the wrapper code to allocate most of its memory from the
2428 * class.c (mono_class_init): Fix leaking class->nested_classes.
2430 * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2432 * image.c (mono_image_init): Initialize the new cashes.
2434 * image.c (mono_image_close): Destroy the new cashes.
2436 * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2438 * mempool.c (mono_mempool_strdup): New helper function.
2440 * class-internals.h: Add prototype for mono_loader_unlock ().
2442 * domain.c (mono_jit_info_table_find): Fix a warning.
2443 (mono_debugger_check_runtime_version): Ditto.
2445 * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h
2446 class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2447 functions to these modules.
2449 * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2452 * marshal.c (mono_free_bstr): Fix a warning.
2454 * assembly.c (mono_assembly_open_full): Fix another small leak.
2456 * object.c: Fix some unload leaks in the remoting code.
2458 * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2461 * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2463 * reflection.c: Fix some unload leaks in dynamic assemblies.
2465 2006-05-02 Jonathan Chambers <jonathan.chambers@ansys.com>
2467 * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2468 * marshal.h: Add BSTR support on Win32
2469 * icall.c: Add BSTR icalls
2470 * metadata.h: Add BSTR enums
2472 2006-04-28 Miguel de Icaza <miguel@novell.com>
2474 Work to catch the crash from #76795 and turn it into an
2475 exception. As I stubbed out pieces of the VisualBasic support,
2476 I found a number of places where the code was failing and I added
2477 checks to those places.
2479 * metadata.c (do_mono_metadata_parse_generic_class): Make this
2480 function return a status code. If we fail to parse the signature
2481 from mono_metadata_parse_generic_inst, return FALSE.
2483 * loader.c (mono_get_method_from_token): If we fail to load the
2484 method (mono_class_get) return NULL.
2486 * (method_from_memberref): Return NULL if we are unable to parse
2487 the method signature
2489 (mono_loader_error_prepare_exception): Since we now use the
2490 loader_error flag internally to stop processing, and obtaining
2491 exceptions that might be thrown will walk this code path the
2492 proper way of going from a MonoLoaderError into a
2493 MonoException was convoluted. This new routine encapsulates the
2494 process of turning the error into an exception and *clearing* the
2497 2006-04-27 Miguel de Icaza <miguel@novell.com>
2499 Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2500 with missing assemblies), and to cope with:
2502 * Missing fieldref from a non-existing assembly.
2503 * Missing methodref from a non-existing assembly.
2505 The first batch of work to address *some* of the issues from 76661.
2507 * object.c (mono_class_create_runtime_vtable): If we fail to
2508 initialize the class raise the exception here.
2510 * metadata.c (mono_class_get_overrides_full): If any methods fail
2511 to load return the failure to the caller.
2513 * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2514 flagging assemblies that failed to load.
2516 Do not crash if we are unable to load the assembly.
2518 (mono_assembly_close): Do nothing with REFERENCE_MISSING
2521 * loader.c (mono_loader_set_error_type_load): Change the
2522 convention to always pass unallocated strings, so we make our own
2523 copies (I know our own code had duplicated strings before, but
2524 this keeps the normal conventions).
2525 (method_from_memberref): Call mono_loader_set_error_method_load
2526 for all possible failures of loading the class.
2527 Remove assert, turn into a loader error.
2529 (mono_loader_error_to_exception): Move this routine from mini
2530 (mini_loader_error_to_exception) there was no need to have that in
2533 * class.c (mono_class_from_typeref): If we were not able to load
2534 the assembly with mono_assembly_load_reference, call the
2535 mono_loader_set_error_type_load to register the problem.
2537 (mono_class_setup_fields): If we fail to load the type from
2538 mono_metadata_parse_type_full, call mono_class_set_failure and
2539 break from the loop.
2541 If class->exception_type is set, we do not layout the fields as
2542 that might crash the runtime, and instead return (from breaking
2543 from the previous loop).
2545 (mono_class_setup_vtable): This now returns a boolean indicating
2546 whether the table was properly setup. The decision is driven by
2547 mono_class_get_overrides_full which might run into non-existing
2550 (mono_class_init): Returns TRUE on success or FALSE if there was a
2551 problem in loading the type (incorrect assemblies, missing
2552 assemblies, methods, etc).
2554 When we call mono_class_setup_fields we also check for a potential
2555 error inside this call (either a class exception or a general
2558 (mono_class_create_from_typedef): If the parent fails to load
2559 (calling mono_class_get_full) return NULL.
2563 calls to mono_metadata_parse_type_full should be checked
2564 everywhere and set the mono_class_set_failure
2565 (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2567 The current patch checks the places where my manually constructed
2568 tests show the errors are showing up, but we should do it
2573 mono_class_init return values should be tested everywhere, like
2574 the previous case this is something that we should audit
2575 everywhere and not only on the cases exposed by the tests I
2578 2006-04-26 Miguel de Icaza <miguel@novell.com>
2580 * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2581 boolean parameter and instead pass the information on `options'
2582 parameter (FileOptions).
2584 * icall.c: Register the new signature for MonoIO.Open.
2586 * debug-helpers.c (dis_one): Trying to understand how coverity
2587 works. Fix Run 5, item 78.
2589 2006-04-26 Dick Porter <dick@ximian.com>
2591 * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2594 2006-04-25 Martin Baulig <martin@ximian.com>
2596 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2598 * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2599 debugger_thread_created().
2600 (debugger_gc_push_all_stacks): Don't handle the main thread in any
2602 (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2603 (mono_debugger_finalize_threads): New function; undo the effects
2604 of mono_debugger_init_threads().
2605 (mono_debugger_create_all_threads): Removed.
2607 2006-04-24 Zoltan Varga <vargaz@gmail.com>
2609 * image.c (mono_image_close): Tidy up trace messages.
2611 * assembly.c (mono_assembly_close): Ditto.
2613 * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2614 no longer references an already freed assembly. Fixes #78168.
2616 2006-04-21 Dick Porter <dick@ximian.com>
2618 * threads.c (mono_thread_detach): Fix reference counting when
2621 2006-04-21 Zoltan Varga <vargaz@gmail.com>
2623 * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2626 2006-04-19 Zoltan Varga <vargaz@gmail.com>
2628 * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2629 (mono_type_to_stind): Ditto.
2631 * marshal.c: Use the new helper functions to simplify code.
2633 * image.c (mono_image_close): Add some code for help debug assembly unloading
2636 * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2639 * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2640 assembly was already loaded in another appdomain. Fixes #78083.
2642 2006-04-13 Zoltan Varga <vargaz@gmail.com>
2644 * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2645 referenced assemblies.
2646 (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2648 * domain.c (mono_domain_free): Add a trace message.
2650 * appdomain.c (add_assemblies_to_domain): Ditto.
2652 * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2655 2006-04-12 Zoltan Varga <vargaz@gmail.com>
2657 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2659 2006-04-12 Martin Baulig <martin@ximian.com>
2661 * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2662 `USE_INCLUDED_LIBGC'.
2664 2006-04-12 Zoltan Varga <vargaz@gmail.com>
2666 * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2667 the patch contains ../ and a small directory name later. Hopefully fixes
2670 2006-04-10 Martin Baulig <martin@ximian.com>
2672 Clean up the debugger's thread-handling code.
2674 The debugger's thread-handling code has been moved from
2675 ../mini/debug-debugger.c to threads.c. We now iterate directly
2676 over the `threads' hash, keep track of exiting threads and also
2679 We can now debug XSP and XSP based applications with the debugger.
2681 * object-internals.h (MonoThread): Added `gpointer end_stack'.
2684 (MonoThreadCallbacks): Removed; this was only used by the debugger.
2685 (mono_install_thread_callbacks): Likewise.
2687 * threads.c (mono_thread_callbacks): Removed.
2688 (debugger_thread_created, debugger_thread_exited): New static functions.
2689 (start_wrapper): Call debugger_thread_created().
2690 (thread_cleanup): Call debugger_thread_exited().
2691 (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2692 (mono_debugger_init_threads): New public function.
2693 (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2694 iterate directly over the `threads' hash and also use proper locking.
2696 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2698 * mono-debug-debugger.h
2699 (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2701 2006-04-10 Zoltan Varga <vargaz@gmail.com>
2703 * reflection.c (encode_cattr_value): Fix handling of parameter type=object,
2704 argument type=array. Fixes #78057.
2706 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
2708 * culture-info-table.h : regenerated. Fixed bug #69652.
2710 2006-04-07 Zoltan Varga <vargaz@gmail.com>
2712 * loader.c metadata.c: Reapply a variant r59116.
2714 * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2716 * class.c (mono_class_setup_interface_offsets): New internal function.
2718 * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2719 interfaces too. Fixes #77398.
2721 * reflection.c (encode_cattr_value): Add support for
2722 parameter type=object, argument type=array.
2723 (load_cattr_value): Ditto. Fixes #77916.
2725 * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2726 (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2728 * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2729 a byval char array and CharSet is Ansi.
2731 * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2733 2006-04-06 Zoltan Varga <vargaz@gmail.com>
2735 * metadata.c: Add some locking comments.
2737 * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2739 (mono_metadata_free_method_signature): Don't free the signature itself.
2741 * loader.c (mono_free_method): Don't free the signature in non-dynamic methods.
2743 * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2744 reference the same MonoImage.
2745 (mono_assembly_load_from_full): Add an assert.
2747 2006-04-05 Zoltan Varga <vargaz@gmail.com>
2749 * image.c (mono_image_close): Don't put the image we are about to free into the
2750 loaded_images_guid_hash.
2752 * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2753 to reduce code duplication.
2755 * marshal.c: Register the native functions called by this module as icalls, to
2756 somewhat centralize the creation of MonoMethodSignature's.
2758 * loader.c (mono_method_signature): Add a cache for method signatures.
2760 * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2761 the parameter attributes of a method.
2762 (mono_metadata_parse_method_signature_full): Refactored the computation of
2763 parameter attributes into a separate function. Also avoid one allocation in
2766 * assembly.c (mono_assembly_close): Ditto.
2768 * image.c (mono_image_close): Log trace messages with INFO level.
2770 * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2772 * image.c reflection.c: Correct reference counting of image modules.
2774 * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2775 of this function from the image mempool.
2777 (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2778 to allow more cached types to be used.
2780 * mono-debug.c (mono_debug_add_method): Appled patch from
2781 David S. Miller <davem@sunset.davemloft.net>: Access
2782 minfo->lexical_blocks[] entry elements using read32().
2784 2006-04-04 Zoltan Varga <vargaz@gmail.com>
2786 * loader.c (mono_free_method): No longer free the method header for non-dynamic
2787 methods as it is allocated from the mempool.
2789 * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2792 * metadata-internals.h: Add comments describing the reference counting scheme
2793 used for MonoImage and MonoAssembly.
2795 * image.c assembly.c reflection.c: Rework reference counting of images and
2796 assemblies so they are freed when the runtime is shut down. Free some
2797 additional memory structures when an image is unloaded.
2799 2006-04-03 Zoltan Varga <vargaz@gmail.com>
2801 * class.c loader.c reflection.c: Allocate more data structures in
2804 2006-03-31 Miguel de Icaza <miguel@novell.com>
2807 (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2808 build on pre glib 2.4 systems.
2810 2006-03-31 Zoltan Varga <vargaz@gmail.com>
2812 * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2814 * icall.c: Fix some warnings.
2816 2006-03-29 Atsushi Enomoto <atsushi@ximian.com>
2818 * culture-info-table.h : regenerated.
2820 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2822 * threads.c, object-internals.h, verify.c: changed the culture caching
2823 code to use a normal MonoArray for storage so the GC can keep track of
2824 them easily. Fixed bits of the cache logic, too and simplified the
2827 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2829 * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2830 thread for non-Boehm GCs.
2832 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2834 * domain.c, object.c, domain-internals.h: reduce the amount of memory
2835 needed to keep track of the data for static fields.
2837 2006-03-29 Raja R Harinath <rharinath@novell.com>
2840 * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2841 for interface classes. Use 'num_methods' instead.
2842 (ves_icall_Type_GetPropertiesByName): Likewise. Setup vtable
2843 before using '->vtable_size' field.
2845 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2847 * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2848 doesn't contain managed pointers, so use a normal hashtable.
2850 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2852 * reflection.c, class-internals.h, domain.c: fixed handling of types
2853 used as values for objects in custom attributes (bug #77915):
2855 2006-03-24 Martin Baulig <martin@ximian.com>
2857 * class.c (mono_class_setup_fields): Added support for generic
2858 instances; fixes #77580.
2860 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2862 * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2864 2006-03-24 Dick Porter <dick@ximian.com>
2866 * file-io.c (get_file_attributes): More stat macro breakage.
2869 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2871 * profiler.c: added the file=filename option in the default profiler
2872 to output the profile data to filename.
2874 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2876 * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2879 2006-03-22 Martin Baulig <martin@ximian.com>
2881 * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2882 allocated `MonoClassField *' in `fb->handle'.
2884 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2886 * class.c, image.c, metadata-internals.h: implemented new mechanism to
2887 allocate interface ID to save memory and allow better ID reuse on
2888 appdomain unload. setup_generic_vtable () removal from Martin.
2890 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2892 * object.h, appdomain.c, domain.c, exception.c, icall.c,
2893 locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2894 threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2895 write barriers for reference stores with managed objects accessed with
2896 C structures in the runtime and in embedding programs.
2898 2006-03-20 Raja R Harinath <rharinath@novell.com>
2900 * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2901 'interface_id' and 'max_interface_id' fields of MonoClasses
2902 representing open generic types.
2904 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2906 * object.h, object.c, icall.c: added functions to deal with
2907 storing valuetypes that contain references in managed objects.
2908 * reflection.c, string-icalls.c, threads.c, marshal.c: small
2909 fixes and comments around uses of mono_array_addr ().
2911 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2913 * object.h, icall.c, monitor.c: object.GetHashCode ()
2914 implementation that supports the moving garbage collector.
2916 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2918 * icall.c, threads-types.h, threads.c: implemented finalizer for
2921 2006-03-15 Zoltan Varga <vargaz@gmail.com>
2923 * metadata.c (mono_type_size): Add a fixme.
2924 (mono_type_stack_size): Ditto.
2926 * object-internals.h (MonoReflectionAssemblyBuilder): Added
2927 'type_forwarders' field.
2929 * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2930 attribute from net 2.0.
2932 * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2935 * class.c (mono_class_setup_fields): Fix a warning.
2937 * class.c (mono_class_from_name): Add support for assemblyref entries
2938 in the EXPORTEDTYPE table.
2940 * reflection.c: Add support for handling type forwarders under net 2.0.
2942 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2944 2006-03-14 Zoltan Varga <vargaz@gmail.com>
2946 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2947 overwriting entries in ModuleBuild->types, also clean up the code
2948 a little. Fixes #77774.
2950 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2952 * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2953 load friend assembly info when present.
2955 2006-03-14 Raja R Harinath <rharinath@novell.com>
2957 Fix crasher on gtest-158.cs.
2958 * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2959 the return value if the MonoClass we want is yet in an
2961 * class.c (mono_class_create_from_typedef): Add an comment
2962 explaining an order dependency between mono_class_setup_parent and
2963 mono_class_setup_mono_type.
2965 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2967 * class.c: documentation updates and events bug fix.
2969 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2971 * class.c: some cleanup, locking fixes.
2973 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2975 * class.c: fix the generics code to setup nested
2976 type info to the instantiated type (bug #77770).
2978 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2980 * marshal.c: fixed a few type correctness issues.
2982 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2984 * loader.c: the Set/Get/Addrtess array methods should be public.
2986 2006-03-11 Zoltan Varga <vargaz@gmail.com>
2988 * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2990 * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2993 2006-03-10 Zoltan Varga <vargaz@gmail.com>
2995 * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2997 * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2999 * mempool.c (mono_mempool_alloc): Speed this up a bit.
3000 (mono_mempool_alloc0): Ditto.
3002 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3005 (create_object_from_sockaddr): it was allocating 4 extra bytes
3006 for the AF_UNIX data. Fixes bug #77747.
3008 2006-03-09 Zoltan Varga <vargaz@gmail.com>
3010 * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
3012 2006-03-09 Dick Porter <dick@ximian.com>
3014 * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
3015 Fixes bug 76966 again.
3017 2006-03-07 Peter Dennis Bartok <pbartok@novell.com>
3019 * verify.c (dtfinfo_fields): Updated to match new (serializable) field
3021 * appdomain.c: Bumped corlib version to 48 (due to r57532)
3023 2006-03-07 Martin Baulig <martin@ximian.com>
3026 (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
3028 2006-03-07 Martin Baulig <martin@ximian.com>
3031 (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
3032 regression introduced in r56970; see gtest-252.cs.
3034 * loader.c (mono_get_method_constrained): Correctly handle generic
3035 methods; see gtest-253.cs.
3037 2006-03-04 Zoltan Varga <vargaz@gmail.com>
3039 * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
3041 2006-03-04 Martin Baulig <martin@ximian.com>
3043 * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
3044 compute the parent type at runtime, just like we're already doing
3048 (mono_reflection_bind_generic_parameters): Don't compute the
3049 parent type anymore.
3051 * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
3053 2006-03-04 Martin Baulig <martin@ximian.com>
3055 * mono-debug-debugger.h
3056 (mono_debugger_create_notification_function): Allocate memory at
3057 runtime and return a pointer to it.
3059 2006-03-03 Zoltan Varga <vargaz@gmail.com>
3061 * assembly.c: Fix windows build.
3063 * assembly.c: Fix build.
3065 * assembly.c: Move the contents of os/{unix,win32}/util.c to this file.
3067 * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
3069 2006-03-03 Dick Porter <dick@ximian.com>
3072 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3073 Check parameters before dereferencing them. Fixes Aaron's part of
3076 2006-03-03 Raja R Harinath <rharinath@novell.com>
3078 Fix performance regression.
3079 * loader.c (find_method_in_class): Add 'from_class' argument.
3080 Rename 'klass' argument to 'in_class'. The signature is compared
3081 against the method in 'in_class', and the corresponding method is
3082 returned from 'from_class'.
3083 (find_method): Walk both 'in_class' and 'from_class' in parallel.
3084 (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
3085 type definition and generic instantiation in parallel.
3086 (mono_get_method_constrained): Update to changes.
3088 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3090 * threads.c: make sure the domain is correct, too when doing
3091 mono_thread_attach ().
3093 2006-03-01 Zoltan Varga <vargaz@gmail.com>
3095 * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3096 windows. Fixes #77683.
3098 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3100 * object.h, *: introduced specific way to set elements of an array
3101 of references to be used as write barrier. Still need to audit the
3102 uses of mono_array_addr.
3104 2006-03-01 Miguel de Icaza <miguel@novell.com>
3106 * object-internals.h: New field to cache the assmebly name, patch
3107 from Tambet Ingo (tambet@ximian.com)
3109 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3111 * decimal.h, class-internals.h, metadata-internals.h,
3112 file-io.h: mark a few function declarations as internal, to
3113 reduce the number of PLT entries.
3115 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3117 * file-io.c: fix typo in warning message.
3119 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3121 * loader.c: on unix, lookup the "*A" version of a function
3122 if charset is auto as a second option before failing.
3124 2006-02-28 Raja R Harinath <rharinath@novell.com>
3126 * class.h (mono_class_inflate_generic_method): Revert to two
3128 * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3129 (mono_class_inflate_generic_method_full): Add.
3130 * class.c (mono_class_inflate_generic_method_full): Rename from
3131 'mono_class_inflate_generic_method'. Don't set 'inflated' field.
3132 (mono_class_inflate_generic_method): New. Wrapper around ..._full.
3133 * loader.c, reflection.c: Update to changes.
3135 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3137 * icall.c: const fixes and small improvements.
3139 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3141 * threadpool.c: for asynchronous connect(), enable the same workaround
3142 for BSD 6 as for the Mac. Fixes bug #77637.
3144 2006-02-24 Zoltan Varga <vargaz@gmail.com>
3146 * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3147 formatted classes. Fixes #77524.
3149 2006-02-24 Raja R Harinath <rharinath@novell.com>
3151 * class.c (inflate_generic_type): Add a couple more
3152 micro-optimizations.
3153 (inflate_generic_context): Don't use the 'gmethod' from
3155 (mono_class_inflate_generic_method): If the method has generic
3156 parameters, but the passed-in context doesn't have a 'gmethod',
3157 create one. Use the possibly simplified generic instantiation
3158 from the declaring class instead of the one passed in.
3160 2006-02-24 Raja R Harinath <harinath@gmail.com>
3162 Make generic method signature and method header handling lazy.
3163 * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3164 (inflate_generic_header): Likewise.
3165 (mono_class_inflate_generic_method): Rewrite. Add a 'klass_hint'
3166 parameter to avoid inflating types.
3167 (mono_get_inflated_method): Empty out.
3168 * class.h (mono_class_inflate_generic_method): Update to changes.
3169 * loader.c (mono_get_method_from_token): Don't parse signature for
3170 generic methods, nor methods of generic classes.
3171 (mono_method_signature): Rename from 'mono_method_signature'.
3172 Inflate signature on demand.
3173 (mono_method_get_header): Inflate method header on demand.
3174 * reflection.c: Update to changes.
3176 2006-02-23 Raja R Harinath <rharinath@novell.com>
3178 * metadata.c (mono_metadata_inflate_generic_inst): If the
3179 instantiation is closed, don't bother expanding it in the new
3181 * class.c (inflate_generic_class): If the generic instantiation
3182 doesn't change after inflation, return the argument itself.
3183 (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3185 (inflate_generic_context): If neither the generic class nor the
3186 generic method instantiations change, return the original context.
3187 * reflection.c (mono_method_get_object): Do
3188 'mono_get_inflated_method' before accessing the ->klass field.
3189 (inflate_mono_method): Don't create a MonoGenericMethod unless
3191 (inflate_method): Don't pass a constructed type as the declaring
3192 type of a methodbuilder.
3194 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3196 * object.c: fix memory overwrite.
3198 2006-02-22 Dick Porter <dick@ximian.com>
3200 * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3201 it doesn't work any more.
3202 (mono_threads_request_thread_dump): Fix unused variable warnings.
3204 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3206 * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3207 mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3208 the public header file.
3210 2006-02-21 Zoltan Varga <vargaz@gmail.com>
3212 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3214 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3216 * class-internals.h, object.c: reduce the size of MonoVTable
3217 and store the interface_offsets array at negative offsets.
3219 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3221 * metadata.c: tweak table descriptors data structures to reduce
3222 size and runtime relocations.
3224 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3226 * marshal.c: fix some types and opcodes to be type-safe
3227 in marshaling wrappers.
3229 2006-02-21 Ankit Jain <jankit@novell.com>
3231 * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3233 2006-02-21 Raja R Harinath <rharinath@novell.com>
3235 * metadata.c (get_constraints): Relax debugging checks for monodis.
3237 2006-02-21 Ankit Jain <jankit@novell.com>
3239 * metadata.c (mono_metadata_load_generic_params): Move the code
3240 checking for ambiguous generic params from here to mono/dis/get.c
3241 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3243 2006-02-21 Raja R Harinath <harinath@gmail.com>
3245 Fix assertion triggered when compiling nemerle.
3246 * class.c (mono_get_shared_generic_inst): Rename from
3247 get_shared_inst and make non-static.
3248 * loader.c (mono_get_shared_generic_method): New. Used to create
3249 the MonoGenericContext-equivalent of a MonoGenericContainer.
3250 (mono_get_method_from_token): Initialize the 'context' field of
3251 the created MonoGenericContainer.
3252 * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3253 * metadata.c (get_constraints): Add sanity check.
3254 * class-internals.h: Add new internal methods.
3256 * reflection.c (verify_safe_for_managed_space): New sanity check.
3257 Currently checks that owner-less generic parameters aren't allowed
3259 (mono_type_get_object): Use it.
3260 * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3261 that are now in mono_type_get_object.
3262 (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3264 2006-02-19 Raja R Harinath <harinath@gmail.com>
3266 * metadata.c (mono_type_create_from_typespec): Rename from
3267 mono_type_create_from_typespec_full. Remove MonoGenericContainer*
3268 argument and caching of types in the generic container.
3269 (unwrap_arrays, find_generic_param): Remove.
3270 * metadata-internals.h: Update.
3271 * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3273 2006-02-18 Zoltan Varga <vargaz@gmail.com>
3275 * class.c (mono_class_get_exception_for_failure): Fix a warning.
3277 * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3278 return values. Fixes #77581.
3280 * class.c (mono_fnptr_class_get): Switch name and name_space.
3282 * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3283 classes and add support for [In, Out] attributes.
3284 (mono_marshal_free_asany): Ditto. Fixes #77524.
3286 2006-02-18 Raja R Harinath <harinath@gmail.com>
3288 * class.c (mono_class_from_generic_parameter): Make more robust to
3289 incomplete MonoGenericContainers from monodis.
3291 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3293 * class-internals.h: added some more exception types.
3294 * class.c, metadata.c: added a few checks to handle missing
3297 2006-02-17 Raja R Harinath <rharinath@novell.com>
3299 Use owner-less generic-params some more.
3300 * class.c (my_mono_class_from_generic_parameter): Remove.
3301 (mono_class_from_generic_parameter): Handle null image,
3302 param->name and param->owner.
3303 (mono_class_from_mono_type): Update.
3304 (mono_class_create_from_typespec): Remove 'container' parameter.
3305 If that parameter is non-null, the result is always inflated by
3306 'mono_class_get_full' anyway.
3307 (mono_class_get): Rename from _mono_class_get. Remove 'container'
3309 (mono_class_get_full): Update.
3311 * class.c (inflate_generic_type) [GENERICINST]: If the generic
3312 instance is not open, don't bother inflating.
3313 (mono_class_setup_fields): Hoist some loop-invariants. Don't
3314 parse metadata for inflated classes.
3315 (_mono_class_get): Change GenericContext* parameter to
3317 (mono_class_create_from_typespec): Likewise. Simplify, and
3318 implement trivially. All the cases are handled in
3319 mono_class_from_mono_type. Don't inflate returned class.
3320 (mono_class_get_full): Delegate GENERICINST optimization to
3321 inflate_generic_type.
3322 (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3324 2006-02-16 Dick Porter <dick@ximian.com>
3326 * socket-io.c (create_object_from_sockaddr): Fix typo.
3327 (create_sockaddr_from_object): Check array lengths before
3328 potentially accessing items off the end.
3329 (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3330 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3331 (ves_icall_System_Net_Sockets_Socket_Send_internal)
3332 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3333 length checks to avoid wraparound overflows.
3334 (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3335 contents of the array of sockets
3336 (hostent_to_IPHostEntry2)
3337 (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3338 Check return value of inet_ntop ().
3339 (addrinfo_to_IPHostEntry): Fix typo
3341 2006-02-16 Raja R Harinath <rharinath@novell.com>
3343 Type metadata parsing doesn't use generic-instantiation information.
3344 * metadata.c (mono_metadata_parse_array_full): Change
3345 MonoGenericContext* parameter to MonoGenericContainer*.
3346 (mono_metadata_parse_type_full): Likewise.
3347 (mono_type_create_from_typespec_full): Likewise.
3348 (mono_metadata_parse_mh_full): Likewise.
3349 (mono_metadata_parse_generic_inst): Likewise.
3350 (do_mono_metadata_parse_generic_class): Likewise.
3351 (do_mono_metadata_parse_type): Likewise.
3352 * metadata-internals.h: Update to changes.
3353 * class.c (mono_class_find_enum_basetype): Likewise.
3354 (mono_class_setup_fields): Likewise.
3355 (mono_class_create_from_typespec): Likewise.
3356 * loader.c (method_from_methodspec): Likewise.
3357 (mono_get_method_from_token): Likewise.
3358 (mono_method_get_header): Likewise.
3360 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3362 * marshal.c: handle additional GENERICINST case (patch from
3363 Thong Nguyen <tum@veridicus.com>).
3364 Fix a few cases where LDIND_I/STIND_I was used for references.
3366 2006-02-16 Raja R Harinath <rharinath@novell.com>
3368 * reflection.c (mono_reflection_get_token): Remove unused variable.
3370 2006-02-16 Martin Baulig <martin@ximian.com>
3372 * reflection.c (mono_reflection_get_token): Add support for fields
3373 in instantiated generic types.
3376 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3378 2006-02-15 Martin Baulig <martin@ximian.com>
3381 (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3382 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3383 (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3384 (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3386 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3388 * class.c, metadata.c, metadata.h, object.c, icall.c,
3389 marshal.c: changed mono_type_get_underlying_type () to do
3390 the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3391 Fixed handling of instantiated generic valuetypes (bug #75479).
3393 2006-02-15 Raja R Harinath <rharinath@novell.com>
3395 * metadata.c (mono_metadata_decode_signed_value): Simplify.
3396 Delegate to mono_metadata_decode_value, and work on the returned value.
3398 * icall.c (ves_icall_MonoType_GetGenericArguments):
3399 Add consistency check here too.
3401 2006-02-15 Ankit Jain <jankit@novell.com>
3403 * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3406 2006-02-15 Ankit Jain <jankit@novell.com>
3408 * metadata.c (mono_metadata_decode_signed_value): New function to decode
3409 signed values, used only for representing lower bounds of arrays.
3410 (mono_metadata_parse_array_full): Use new
3411 mono_metadata_decode_signed_value to decode lower bounds.
3413 2006-02-14 Martin Baulig <martin@ximian.com>
3416 (mono_reflection_get_token): Support "MonoGenericMethod" and
3417 "MonoGenericCMethod" and allow generic instances / methods.
3419 2006-02-11 Zoltan Varga <vargaz@gmail.com>
3421 * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3422 to obtain the terminal size using an ioctl.
3424 * object.c (mono_nullable_init): Revert this as nullable reference
3425 types are not valid.
3426 (mono_nullable_box): Ditto.
3428 2006-02-09 Dick Porter <dick@ximian.com>
3430 * threads.c (mono_thread_detach): Drop a reference to the thread
3433 2006-02-09 Zoltan Varga <vargaz@gmail.com>
3435 * object.c (mono_nullable_init): Handle nullable reference types.
3436 (mono_nullable_box): Ditto. Fixes #77446.
3438 2006-02-07 Martin Baulig <martin@ximian.com>
3440 * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3442 2006-02-07 Ankit Jain <jankit@novell.com>
3444 * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3445 * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3446 (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3447 (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3448 (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3449 (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3451 2006-02-02 Zoltan Varga <vargaz@gmail.com>
3453 * class.c (mono_class_create_generic): Set type_token as well.
3455 * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3458 2006-02-02 Martin Baulig <martin@ximian.com>
3460 * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3461 has never been used so far.
3463 2006-02-02 Martin Baulig <martin@ximian.com>
3465 * mono-debug-debugger.h: Changed comment at the top of this file;
3466 the header is not installed, but it's safe to #include it from
3469 * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3470 * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3472 2006-02-02 Martin Baulig <martin@ximian.com>
3475 (MonoSymbolTable): Removed the `metadata_info' field.
3478 (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3480 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3481 (mono_debugger_add_builtin_types): Removed.
3482 (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3483 (mono_debugger_create_notification_function): We now operate on a
3484 pre-allocated area; take a `gpointer' and return `void'.
3486 * mono-debug-debugger.c
3487 (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3488 (mono_debugger_add_builtin_types): Removed.
3490 2006-02-02 Martin Baulig <martin@ximian.com>
3492 * threads.c (mono_debugger_create_all_threads): New public method.
3494 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3496 * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3497 breaks on several platforms.
3499 2006-02-01 Sebastien Pouliot <sebastien@ximian.com>
3501 * assembly.c: the VS.NET build doesn't supply default values for
3502 MONO_ASSEMBLIES and MONO_CFG_DIR.
3504 2006-02-01 Zoltan Varga <vargaz@gmail.com>
3506 * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3509 * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3511 * loader.c (method_from_memberref): Fix a warning.
3513 * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3515 * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3516 with explicit layout. Fixes #77433.
3518 2006-01-31 Zoltan Varga <vargaz@gmail.com>
3520 * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure
3521 max_interface_id is initialized before using it. Fixes #77398.
3522 (ves_icall_Type_GetInterfaces): Ditto.
3524 2006-01-30 Raja R Harinath <rharinath@novell.com>
3526 * metadata.c (mono_metadata_parse_method_signature_full): Don't
3527 allocate memory for parameter attributes when parsing memberref
3529 * loader.c (mono_loader_set_error_method_load): Don't warn.
3530 (method_from_memberref): Ensure MissingMethodException gets thrown
3531 if method is not found. Make warning more informative.
3533 2006-01-29 Raja R Harinath <harinath@gmail.com>
3536 * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3537 return true if is byref.
3538 (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3539 (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3540 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3542 2006-01-27 Raja R Harinath <rharinath@novell.com>
3544 Fix tests/find-method.2.il
3545 * loader.c (find_method, find_method_in_class): Remove is_inflated
3546 argument. Revert 2006-01-18 change.
3547 (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3548 is generic, search for method in its generic definition.
3549 * class.c (mono_class_setup_vtable_general): Print generic
3550 arguments of generic types in debugging printf.
3552 2006-01-26 Zoltan Varga <vargaz@gmail.com>
3554 * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3556 * threads.c (mono_threads_request_thread_dump): New helper function.
3558 2006-01-25 Raja R Harinath <rharinath@novell.com>
3560 * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3562 2006-01-25 Ankit Jain <jankit@novell.com>
3564 * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3565 move definition to ..
3566 * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3568 2006-01-25 Ankit Jain <jankit@novell.com>
3569 Raja R Harinath <rharinath@novell.com>
3571 * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3572 * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3575 2006-01-25 Martin Baulig <martin@ximian.com>
3577 * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3578 `MonoDebuggerThread' into debug-debugger.c.
3580 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3582 * profiler.c: fix printing of data.
3584 2006-01-24 Atsushi Enomoto <atsushi@ximian.com>
3586 * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3587 invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3589 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3591 * object.c: fix deadlock related to string interning.
3593 2006-01-23 Martin Baulig <martin@ximian.com>
3595 * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3597 * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3599 2006-01-23 Martin Baulig <martin@ximian.com>
3601 * mono-debug.h: Moved the prototypes of some functions which are
3602 used by the JIT here from mono-debug-debugger.h.
3604 2006-01-21 Martin Baulig <martin@ximian.com>
3606 * Makefile.am: Don't install mono-debug-debugger.h.
3608 2006-01-21 Martin Baulig <martin@ximian.com>
3610 * mono-debug-debugger.h: Enforce the private status of this header
3611 file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3612 Moved some stuff from mono-debugger-jit-wrapper.h here.
3614 2006-01-20 Raja R Harinath <rharinath@novell.com>
3616 * class.c (mono_class_from_typeref): Add a sanity test to help
3617 catch lack of assembly load/search hooks.
3619 2006-01-19 Zoltan Varga <vargaz@gmail.com>
3621 * marshal.c (emit_struct_conv): Relax the fields with same offset
3622 check even more. Fixes #77230.
3624 2006-01-18 Martin Baulig <martin@ximian.com>
3626 * loader.c (find_method_in_class): Added `gboolean is_inflated'
3627 argument; if false, we compare the uninstantiated signatures.
3628 (method_from_memberref): Compare the uninstantiated signatures;
3631 2006-01-18 Robert Jordan <robertj@gmx.net>
3633 * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3634 Clear the weak link. Fixes bug #77170.
3636 * gc.c (mono_gchandle_free):
3637 Reflect *-gc.c changes (tiny optimization).
3639 2006-01-18 Zoltan Varga <vargaz@gmail.com>
3641 * metadata.c (mono_metadata_signature_dup): Applied patch from
3642 Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3645 2006-01-17 Zoltan Varga <vargaz@gmail.com>
3647 * marshal.c (emit_struct_conv): Allow fields with the same offset when
3648 marshalling from native to managed code. Fixes #77230.
3650 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3652 * threadpool.c: fix problem (Mac only) when more than one asynchronous
3653 connect. Fixes bug #77020.
3655 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3657 * class.c: fixed id assignement for nested interfaces (bug #77275).
3658 Added also better info for --print-vtable debugging.
3660 2006-01-12 Martin Baulig <martin@ximian.com>
3662 * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3663 interfaces on-the-fly; fixes #76625.
3666 (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3667 don't need that anymore.
3669 2006-01-12 Miguel de Icaza <miguel@novell.com>
3672 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3673 To avoid initing the nested_classes when not needed I turned the
3674 PeerCredData as a toplevel internal class, as it has to be shared
3677 Fixes the CASA issue.
3679 2006-01-11 Ben Maurer <bmaurer@andrew.cmu.edu>
3681 * domain.c: Accessors for MonoJitInfo
3683 * profiler-private.h: Add jitinfo to the end jit hook
3685 * profiler.[ch]: Define new hooks, called after jitting which give
3686 the MonoJitInfo that was compiled
3688 2006-01-10 Martin Baulig <martin@ximian.com>
3690 * class.c (mono_class_setup_events): Add support for generic
3691 classes; fixes #76440.
3693 2006-01-06 Raja R Harinath <rharinath@novell.com>
3696 * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3697 on passed-in method.
3699 2006-01-03 Zoltan Varga <vargaz@gmail.com>
3701 * object.c (mono_runtime_invoke_array): Add Nullable support.
3703 * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3705 2006-01-03 Sebastien Pouliot <sebastien@ximian.com>
3707 * file-io.c: Don't consider sockets as directory and avoid an endless
3708 loop. Fix bug #76966.
3710 2006-01-03 Zoltan Varga <vargaz@gmail.com>
3712 * object.c (mono_nullable_init): New helper function.
3713 (mono_nullable_box): Ditto.
3715 * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3717 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3719 * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3721 2006-01-02 Zoltan Varga <vargaz@gmail.com>
3723 * class.c (mono_class_is_assignable_from): Make T assignable to
3726 2005-12-23 Sebastien Pouliot <sebastien@ximian.com>
3728 * appdomain.c: Bump corlib version to 46.
3729 * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3730 serialization purpose) and changed ves_icall_System_Reflection_
3731 Assembly_get_code_base signature to accept a boolean (to escape, or
3732 not, the assembly code base).
3734 2005-12-23 Dick Porter <dick@ximian.com>
3738 * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3739 CreateEvent icall now returns "created" boolean parameter.
3741 2005-12-22 Zoltan Varga <vargaz@gmail.com>
3743 * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3746 * reflection.c (mono_custom_attrs_construct_by_type): Handle the case
3747 when attr_klass is an interface. Fixes #77045.
3749 2005-12-20 Zoltan Varga <vargaz@gmail.com>
3751 * marshal.c (emit_struct_conv): Fix previous patch.
3753 * marshal.c (emit_struct_conv): Add a check for fields with the same
3756 2005-12-20 Raja R Harinath <rharinath@novell.com>
3758 Fix regression in Mono.C5.
3759 * class.c (mono_class_create_generic): If 'klass' is an interface
3760 set up the interface offsets.
3761 (mono_class_is_assignable_from): Don't throw away generic arguments.
3763 2005-12-19 Raja R Harinath <rharinath@novell.com>
3765 * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3768 2005-12-15 Raja R Harinath <rharinath@novell.com>
3770 * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3772 (do_mono_metadata_parse_generic_class): Don't pass the current
3773 generic context when parsing the type being instantiated: it
3774 cannot use it, anyway.
3776 * loader.c (method_from_memberref): Don't inflate a signature if
3777 it doesn't contain any type parameters.
3779 2005-12-15 Zoltan Varga <vargaz@gmail.com>
3781 * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3783 2005-12-14 Martin Baulig <martin@ximian.com>
3786 (mono_type_get_name_recurse): Don't return null for type
3787 parameters and open generic classes.
3788 (mono_class_setup_methods): Don't exclude generic instances.
3789 (mono_get_unique_iid): Use different IDs for different
3790 instantiations of the same generic type.
3791 (mono_class_setup_vtable): Only use setup_generic_vtable() for
3792 open generic instances; create a normal vtable for closed generic
3794 (mono_class_setup_vtable_general): We're now also called for
3795 closed generic instances.
3798 (mono_reflection_bind_generic_parameters): Correctly use
3799 mono_metadata_lookup_generic_inst() everywhere.
3801 2005-12-14 Zoltan Varga <vargaz@gmail.com>
3803 * object.c (mono_class_create_runtime_vtable): Call
3804 mono_class_setup_vtable ().
3806 * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3808 (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3811 * loader.c (mono_loader_set_error_type_load): Print the type load
3812 warnings to the console so they are more visible to the user.
3813 (mono_loader_set_error_method_load): Ditto.
3815 * reflection.c (ensure_runtime_vtable): Revert the last change as it
3818 * reflection.c (ensure_runtime_vtable): Fix build.
3820 * reflection.c (ensure_runtime_vtable): Disable an optimization which
3821 doesn't work in all cases.
3823 2005-12-13 Zoltan Varga <vargaz@gmail.com>
3825 * object.c (mono_array_new_full): Treat a single dimensional array
3826 with 0 lower bounds as an szarray. Fixes #76973.
3828 * reflection.c (custom_attr_visible): Really fix this.
3830 2005-12-12 Zoltan Varga <vargaz@gmail.com>
3832 * reflection.c (custom_attr_visible): Allow nested public attributes
3835 * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3838 2005-12-12 Raja R Harinath <harinath@gmail.com>
3840 * class.c (set_generic_param_owner): Delete.
3841 (mono_class_create_from_typedef): Don't set ->owner field of
3842 generic parameters to "param containers" of enclosing classes.
3843 * reflection.c (mono_reflection_initialize_generic_parameter):
3846 2005-12-11 Zoltan Varga <vargaz@gmail.com>
3848 * reflection.c (custom_attr_visible): Fix build.
3850 2005-12-10 Zoltan Varga <vargaz@gmail.com>
3852 * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3855 * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3856 handling of null parameter defaults.
3858 2005-12-09 Raja R Harinath <rharinath@novell.com>
3860 * class.c (mono_class_from_generic_parameter): Don't set
3861 klass->generic_container.
3862 (my_mono_class_from_generic_parameter): Likewise.
3864 2005-12-07 Zoltan Varga <vargaz@gmail.com>
3866 * reflection.c (load_public_key): Fix a warning.
3867 (method_encode_code): Fix unaligned accesses.
3869 2005-12-07 Martin Baulig <martin@ximian.com>
3871 * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3874 (write_generic_param_entry): Encode our custom attrs.
3876 * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3878 2005-12-07 Martin Baulig <martin@ximian.com>
3880 * reflection.c (encode_new_constraint): Removed; we don't use the
3881 `NewConstraintAttribute' anymore.
3883 2005-12-06 Zoltan Varga <vargaz@gmail.com>
3885 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3886 not fire a TypeResolve event when Assembly.GetType () is called.
3888 2005-12-05 Ben Maurer <bmaurer@ximian.com>
3890 Beginning of support for nullable types in the runtime. Parts of
3891 this patch are from Martin.
3893 * appdomain.c (MONO_CORLIB_VERSION): Bump
3895 * domain.c (mono_init_internal): get the nullable type
3897 * class.c (mono_class_is_nullable): New method
3898 (mono_class_get_nullable_param): New mehod
3899 (mono_class_create_generic): In types T? set cast_class to T
3901 * class-internals.h (MonoDefaults): new nullable default class
3902 (mono_class_get_nullable_param, mono_class_get_nullable_param):
3905 2005-12-05 Raja R Harinath <rharinath@novell.com>
3907 * metadata.c (select_container): New. Refactor code to select the
3908 appropriate GenericContainer given the type of generic parameter
3910 (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3911 not a MonoGenericContext. Use select_container. Update parameters.
3912 (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3914 (unwrap_arrays): Remove duplicate tests.
3915 (find_generic_param): Rename from 'has_same_context'. Now walks a
3916 generic instantiated class to find any arguments that are generic
3918 (mono_type_create_from_typespec_full): Use find_generic_param to
3919 avoid evicting some generic instantiations from the typespec
3922 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3924 * reflection.c: fixed writing of doubles on ARM FPA.
3926 2005-12-02 Robert Jordan <robertj@gmx.net>
3928 * icall.c: Fixed EventInfo.ReflectedType (#76829).
3930 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3932 * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3933 least on SUSE 10 they are not the same (on debian, they are just the
3936 2005-12-01 Raja R Harinath <rharinath@novell.com>
3938 * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3939 DeclaringType for VARs and MVARs.
3940 * class.c (set_generic_param_owner): Fix initialization of owner
3943 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3945 * icall.c: fixed Enum.ToObject() to correctly convert the values.
3947 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3949 * threadpool.c: workaround for a bug that shows up on the Mac:
3950 select()+connect() on a blocking socket is not like it should
3951 be, so we proceed to connect() in that case, wasting the I/O
3952 threadpool thread until connect succeedes. Fixes bug #75436.
3954 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3956 * threadpool.c: fix typo when setting file descriptor states.
3958 2005-11-28 Raja R Harinath <rharinath@novell.com>
3960 * class-internals.h (MonoGenericContainer.is_signature): Remove.
3961 * metadata.c (mono_metadata_parse_method_signature_full): Don't
3962 create a temporary signature container.
3963 (mono_metadata_parse_generic_param): Update to changes.
3964 (mono_type_create_from_typespec_full): Update to changes.
3965 * loader.c (method_from_memberref): Don't use a
3966 MonoGenericContainer while parsing a memberref signature.
3967 (method_from_methodspec): Remove dead-store of the 'container'
3968 variable. It's overwritten before use.
3970 * metadata.c (mono_type_create_from_typespec_full): Make debugging
3972 (mono_metadata_parse_generic_param): Likewise.
3973 * loader.c (find_method_in_class): Does not need a
3974 MonoGenericContainer. Use 'mono_method_signature' rather than
3975 'mono_method_signature_full'.
3976 (find_method, mono_get_method_constrained, method_from_memberref):
3979 * metadata.c (mono_type_create_from_typespec_full): Ensure that
3980 owner-less generic-parameters are never evicted from the typespec
3983 * loader.c (method_from_memberref): Don't use the current context
3984 when parsing signatures.
3985 (method_from_methodspec, mono_get_method_from_token): Update to changes.
3987 * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3988 side-effects in g_assert.
3989 * loader.c (mono_get_method_from_token): Resolve klass earlier so
3990 that we don't potentially lose information.
3992 2005-11-26 Dick Porter <dick@ximian.com>
3995 * threads.c: icalls to implement basic (ie, not named)
3996 System.Threading.Semaphore.
3998 2005-11-24 Dick Porter <dick@ximian.com>
4001 (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4002 Use GetProcessId() if it's available.
4004 2005-11-23 Zoltan Varga <vargaz@gmail.com>
4006 * icall.c threads-types.h threads.c: Add Exchange<T> icall.
4008 2005-11-23 Raja R Harinath <rharinath@novell.com>
4009 Ankit Jain <jankit@novell.com>
4011 * loader.c (mono_get_method_from_token): Initialize 'method' field
4012 of all generic parameters before parsing the signature. Remove
4013 code that "fixed"-up MVAR references.
4015 2005-11-23 Ankit Jain <jankit@novell.com>
4017 * metadata.c (mono_metadata_has_generic_params):
4018 (mono_metadata_load_generic_param_constraints):
4019 (mono_metadata_load_generic_params): Move duplicate code ...
4020 (mono_metadata_get_generic_param_row): ... here. Returns the
4021 first row-id in GenericParam table for a given owner (token).
4022 * metadata-internals.h (mono_metadata_get_generic_param_row): Add
4025 2005-11-23 Raja R Harinath <rharinath@novell.com>
4026 Ankit Jain <jankit@novell.com>
4028 * metadata.c (mono_metadata_class_equal): Pass signature_only when
4030 * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at
4031 type->data.generic_param only if the type is an MVAR.
4032 (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
4033 leak owner-less VARs and MVARs into managed space.
4035 2005-11-21 Martin Baulig <martin@ximian.com>
4038 (MonoMethod): Moved the `generic_container' here from
4039 `MonoMethodNormal' since we now also need it for
4040 `MonoMethodPInvoke';
4041 (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
4042 (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
4043 an union containing both `MonoMethodNormal' and
4044 `MonoMethodPInvoke'.
4047 (mono_get_method_from_token): Allow implementing generic methods
4051 (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
4054 2005-11-17 Dick Porter <dick@ximian.com>
4058 * process.c: Split the Process Start_internal icall into
4059 ShellExecuteEx_internal and CreateProcess_internal, which are
4060 called depending on whether UseShellExecute is true. Fixes bug
4063 * appdomain.c (MONO_CORLIB_VERSION): Incremented
4065 2005-11-17 Zoltan Varga <vargaz@gmail.com>
4067 * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
4068 'msize' parameters, use the information in 'mspec' instead.
4069 (emit_object_to_ptr_conv): Ditto.
4071 * marshal.c (emit_struct_conv): Handle explicit layout structs with
4072 fields out of order. Fixes #76733.
4074 2005-11-17 Ankit Jain <jankit@novell.com>
4076 * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
4078 2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
4080 * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
4083 2005-11-16 Zoltan Varga <vargaz@gmail.com>
4085 * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
4086 for types with non-auto layout. Fixes #76717.
4088 2005-11-16 Ankit Jain <jankit@novell.com>
4090 * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4091 * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam
4092 if generic_context is null.
4093 (mono_metadata_generic_param_equal): param->owner can be null.
4094 (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4097 2005-11-16 Zoltan Varga <vargaz@gmail.com>
4099 * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4102 2005-11-15 Martin Baulig <martin@ximian.com>
4104 * object.c (set_value): Use mono_class_from_mono_type() instead of
4105 the hack for generic instances; fixes #76136.
4107 2005-11-15 Zoltan Varga <vargaz@gmail.com>
4109 * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4112 * image.c (load_metadata_ptrs): Initialize the new fields.
4114 * reflection.c (create_dynamic_mono_image): Ditto.
4116 * reflection.c (build_compressed_metadata): Use the new fields.
4118 * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4121 * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4124 2005-11-15 Ankit Jain <jankit@novell.com>
4125 Raja R Harinath <harinath@gmail.com>
4127 * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4128 * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4129 new per-generic_container cache if the cached MonoType's context matches
4130 the current context.
4131 (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4132 to the expected context.
4133 (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4135 2005-11-14 Carlos Alberto Cortez <calberto.cortez@gmail.com>
4137 * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4138 we changed the signature of an icall.
4139 * icall.c: Modify to mono_double_ParseImpl return true/false
4140 depending on the success, instead of throwing the exception. This will
4141 help us in Double.TryParse methods.
4143 2005-11-14 Zoltan Varga <vargaz@gmail.com>
4145 * marshal.c (emit_marshal_object): Throw an exception when
4146 marshalling 'object' instead of crashing. Fixes #76696.
4148 2005-11-11 Zoltan Varga <vargaz@gmail.com>
4150 * class-internals.h: Add prototype for mono_type_get_full_name ().
4152 2005-11-11 Dick Porter <dick@ximian.com>
4154 * threads.c (mono_thread_manage): Make sure the main thread has
4155 abandoned all its mutexes when cleaning up. Fixes bug 74680.
4157 2005-11-11 Zoltan Varga <vargaz@gmail.com>
4159 * loader.c (mono_loader_set_error_type_load): Log a warning to the
4160 console about the missing type.
4161 (mono_loader_set_error_method_load): Ditto.
4163 2005-11-09 Miguel de Icaza <miguel@novell.com>
4165 * mono-config.c (mono_get_config_dir): Set the system defaults if
4168 * assembly.c (mono_set_dirs): New API entry point to set the
4169 assembly and the config directory in one call
4171 2005-11-09 Zoltan Varga <vargaz@gmail.com>
4173 * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4174 the ftnptr was created from a delegate in a domain other than the
4175 current domain. Fixes #75377.
4177 * exception.h exception.c: Add mono_get_exception_not_supported ().
4179 2005-11-08 Martin Baulig <martin@ximian.com>
4181 * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4183 2005-11-07 Sebastien Pouliot <sebastien@ximian.com>
4185 * security-manager.h: Added definitions to deal with strongname key
4186 pairs bigger (and smaller) than 1024 bits.
4187 * reflection.c: Remove hardcoded strongname size (128 bytes) and
4188 adjust wrt the public key length being used.
4190 2005-11-03 Atsushi Enomoto <atsushi@ximian.com>
4192 * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4193 Windows build (r51396-51397).
4195 2005-11-03 Martin Baulig <martin@ximian.com>
4197 * class.c (mono_class_setup_vtable_general): Also add generic
4198 methods to the vtable; fixes #76581.
4200 2005-11-01 Miguel de Icaza <miguel@novell.com>
4202 * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4203 sure that we lookup GetString method from the System.Text.Encoding
4204 class, not the derived class or we get an empty method.
4208 2005-10-25 Miguel de Icaza <miguel@novell.com>
4210 * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4211 if it has been previously set (embedders).
4213 Make mono_set_rootdir available also on Unix.
4215 005-10-24 Robert Jordan <robertj@gmx.net>
4217 * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4219 2005-10-30 Zoltan Varga <vargaz@freemail.hu>
4221 * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4222 only calls which are made to native code use this flag.
4224 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4226 2005-10-29 Zoltan Varga <vargaz@freemail.hu>
4228 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4229 Add support for FieldBuilders.
4231 2005-10-29 Martin Baulig <martin@ximian.com>
4234 (mono_debug_using_mono_debugger): New public method; returns
4235 whether we're running inside the debugger.
4237 2005-10-27 Zoltan Varga <vargaz@gmail.com>
4239 * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4240 for Method/Constructor/FieldBuilders.
4242 2005-10-26 Zoltan Varga <vargaz@gmail.com>
4244 * reflection.c (module_add_cattrs): Save custom attributes for global methods
4247 2005-10-26 Martin Baulig <martin@ximian.com>
4249 * mono-debug-debugger.c
4250 (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4252 2005-10-24 Raja R Harinath <harinath@gmail.com>
4254 * icall.c (base64_to_byte_array): Don't pass an out-of-range
4257 2005-10-21 Zoltan Varga <vargaz@gmail.com>
4259 * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4260 when passing valuetypes byref. Fixes #76502.
4262 2005-10-19 Jackson Harper <jackson@ximian.com>
4264 * profiler.c: Don't put a . in front of types that are not in a
4267 2005-10-18 Zoltan Varga <vargaz@gmail.com>
4269 * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4271 2005-10-15 Zoltan Varga <vargaz@freemail.hu>
4273 * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4275 (mono_marshal_get_ldflda_wrapper): Fix a warning.
4277 2005-10-13 Carlos Alberto Cortez <calberto.cortez@gmail.com>
4279 * assembly.c metadata-internals.h icall.c: Define an additional
4280 parameter for mono_assembly_name_parse_full, so we can avoid creating
4281 S.R.AssemblyName.Version when no version info wasn't passed.
4283 2005-10-09 Miguel de Icaza <miguel@novell.com>
4285 * class.c (mono_type_get_full_name): Reimplement method that was
4288 * image.c: Some docs
4290 2005-10-10 Zoltan Varga <vargaz@gmail.com>
4292 * profiler.c (output_newobj_profile): Fix printing of Total memory
4295 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
4297 * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4299 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
4301 * threads.c: remove debug output.
4303 2005-10-08 Zoltan Varga <vargaz@freemail.hu>
4305 * threads.c (mono_thread_manage): Fix crashes if more than 64
4306 threads need to be aborted. Hopefully fixes #75899.
4308 * assembly.c (mono_stringify_assembly_name): New helper function.
4310 * class.c: Use mono_stringify_assembly_name instead of the similar
4313 * assembly.h assembly.c: Add support for calling a postload search
4314 hook if an assembly cannot be loaded.
4316 * appdomain.c: Register new search hooks which call the AssemblyResolve
4317 events in AppDomain. Fixes #75231
4319 2005-10-07 Martin Baulig <martin@ximian.com>
4321 * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4322 methods without debug info.
4324 2005-10-07 Zoltan Varga <vargaz@gmail.com>
4326 * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4329 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4331 * file-io.c: now that we return symlinks, use lstat and, when the file
4332 is a symbolic link, stat, to get the file attributes. Also avoid the
4333 conversion to/from utf16/external.
4335 2005-10-06 Zoltan Varga <vargaz@gmail.com>
4337 * class.c (mono_class_layout_fields): Compute klass->has_references
4338 correctly if an embedded valuetype is not yet initialized. Fixes
4341 2005-10-04 Martin Baulig <martin@ximian.com>
4344 (mono_metadata_load_generic_param_constraints): New public
4345 function; splitted the constraints loading out from
4346 mono_metadata_load_generic_params().
4348 * class.c (mono_class_create_from_typedef): Call
4349 mono_metadata_load_generic_param_constraints() after setting up
4350 the type and creating our parent; fixes #75329.
4352 2005-10-04 Martin Baulig <martin@ximian.com>
4354 * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4355 non-dynamic parent classes.
4357 2005-10-04 Atsushi Enomoto <atsushi@ximian.com>
4359 * file-io.c : win32 build fix (ETXTBSY seems not found).
4361 2005-10-04 Martin Baulig <martin@ximian.com>
4364 (mono_image_get_methodspec_token): Make the cache actually work;
4367 2005-10-04 Martin Baulig <martin@ximian.com>
4369 * class.c (mono_class_name_from_token): Removed the unneccessary
4370 `MonoGenericContext *' argument.
4372 2005-10-04 Martin Baulig <martin@ximian.com>
4375 (method_from_methodspec): Make the caching work again; fixes the
4376 performance regression from #76262.
4378 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4382 * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4383 GetFileSystemEntries that performs the same work but without going
4384 into io-layer, locking, etc.
4386 2005-09-30 Zoltan Varga <vargaz@gmail.com>
4388 * threads.c (ves_icall_System_Threading_Thread_Abort): Handle
4389 ThreadState_Stopped as well. Fixes #76047.
4391 2005-09-29 Martin Baulig <martin@ximian.com>
4394 (inflate_generic_context): If the new context has a `gmethod', set
4395 its `container' that that gmethod's `container'.
4398 (mono_metadata_parse_generic_param): Simplify things;
4399 `generic_container = generic_context->container;' is just fine.
4401 * loader.c (method_from_methodspec): Code cleanups.
4403 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4405 * decimal.c: fix warning (and let gcc generate correct
4406 code on ARM with optimizations).
4408 2005-09-28 Martin Baulig <martin@ximian.com>
4411 (method_from_memberref): Added `MonoGenericContext *class_context'
4412 argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4413 (method_from_methodspec): If we're a memberref, use the enclosing
4414 context when parsing its parent. Fixes #76262; see gtest-206.cs.
4416 2005-09-28 Martin Baulig <martin@ximian.com>
4418 * object.c (mono_runtime_invoke_array): Added support for
4419 MONO_TYPE_GENERICINST; fixes #75917.
4421 2005-09-27 Martin Baulig <martin@ximian.com>
4423 * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4424 `k->byval_arg.type' to determine the actual type.
4426 * loader.c (method_from_methodspec): Removed some hacks.
4428 2005-09-27 Ben Maurer <bmaurer@ximian.com>
4430 * class-internals.h (mono_field_is_deleted): Do the test for
4431 rtspecialname before we check the actual name of the field. This
4432 prevents us from dereferencing a pointer into the string table,
4433 saving us from accessing a few pages
4435 * *.c: Replace the use of {Enter,Leave}CriticalSection with
4436 macros. This will allow a deadlock debugger to easily be plugged
4439 2005-09-27 Martin Baulig <martin@ximian.com>
4441 * loader.c (method_from_methodspec): Create a "signature"
4442 MonoGenericContainer and use mono_get_method_full(). Fixes #75584.
4444 2005-09-27 Martin Baulig <martin@ximian.com>
4447 (inflate_generic_class): Correctly set the new context's
4451 (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4452 instead of a `MonoGenericContext *'.
4453 (mono_method_signature_full): Take a `MonoGenericContainer *'
4454 instead of a `MonoGenericContext *'.
4457 (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4458 instead of a `MonoGenericContext *'.
4459 (mono_metadata_parse_method_signature_full): Likewise.
4461 2005-09-26 Martin Baulig <martin@ximian.com>
4464 (mono_class_from_generic_parameter): Set `klass->generic_container'
4465 (mono_class_from_generic_parameter): Likewise.
4466 (mono_bounded_array_class_get): We inherit the generic container
4467 from the element class.
4470 (find_method, find_method_in_class): Take a `MonoGenericContext *'
4471 argument rather than computing it here.
4472 (method_from_memberref): Correctly set the generic context before
4473 parsing the signature. Fixes #75681.
4475 2005-09-26 Zoltan Varga <vargaz@gmail.com>
4477 * object.c (mono_class_has_special_static_fields): Fix warnings.
4479 2005-09-26 Carlos Alberto Cortez <calberto.cortez@gmail.com>
4481 * assembly.c: Add parse_public_key function, to
4482 par the public keys. Also added mono_assembly_name_parse_full,
4483 to define it the parsed key should be freed or not.
4484 * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4485 to parse a long format assembly name.
4486 * metadata-internals.h: Keep mono_assembly_name_parse_full as
4487 private, since calling it to preserve the key requires
4488 freeing it manually.
4490 2005-09-26 Atsushi Enomoto <atsushi@ximian.com>
4492 * locales.c : removed HAVE_ICU part.
4494 2005-09-24 Zoltan Varga <vargaz@freemail.hu>
4496 * object.c (mono_class_create_runtime_vtable): Avoid calling
4497 field_is_special_static if the klass has no special static fields.
4499 * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4500 (MonoCachedClassInfo): Likewise.
4502 * object.c (mono_class_has_special_static_fields): New helper function.
4504 2005-09-23 Zoltan Varga <vargaz@gmail.com>
4506 * class.c (mono_class_create_from_typedef): Don't call
4507 interfaces_from_typedef_full for enums.
4508 (mono_class_create_from_typedef): Compute the base types of enums directly
4509 without calling mono_class_setup_fields ().
4510 (mono_class_find_enum_basetype): New helper function.
4512 * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4513 one place inside the string heap.
4515 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4517 * class.c: locking fixes, code cleanups, some docs added.
4518 Allocate some data structures in the image mempool.
4520 2005-09-23 Zoltan Varga <vargaz@gmail.com>
4522 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4525 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4527 * class-internals.h, class.c, reflection.c: reduce memory taken by
4530 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4532 * metadata.c, metadata.h, loader.h: documentation updates, code and
4535 2005-09-23 Zoltan Varga <vargaz@gmail.com>
4537 * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4540 * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4541 page faults caused by the runtime while reading metadata.
4543 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4545 * socket-io.c: the field names were changed 3 months ago and no one
4546 realized until bug #76077 got filed!
4548 2005-09-20 Martin Baulig <martin@ximian.com>
4550 * icall.c (assembly_icalls): Removed some unused debugger icalls.
4552 2005-09-20 Martin Baulig <martin@ximian.com>
4554 * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4555 write the rank into the class entry.
4557 2005-09-20 Martin Baulig <martin@ximian.com>
4559 * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4561 2005-09-19 Zoltan Varga <vargaz@gmail.com>
4563 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4565 * icall.c (custom_attrs_defined_internal): New icall.
4567 * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4569 (mono_custom_attrs_construct_by_type): New helper function.
4571 2005-09-17 Zoltan Varga <vargaz@freemail.hu>
4573 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4574 terminate the resulting string. Fixes #76123.
4576 2005-09-16 Martin Baulig <martin@ximian.com>
4579 (mono_debug_add_method): Ignore inflated methods for the moment.
4581 2005-09-14 Martin Baulig <martin@ximian.com>
4583 * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4585 2005-09-13 Zoltan Varga <vargaz@gmail.com>
4587 * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4588 return a success/failure indication.
4589 (mono_metadata_interfaces_from_typedef_full): Ditto.
4590 (get_constraints): Ditto.
4592 2005-09-12 Zoltan Varga <vargaz@gmail.com>
4594 * marshal.c (emit_marshal_array): Fix handling of null arrays.
4596 * marshal.c (emit_marshal_array): Add support for returning string
4597 arrays from delegates. Fixes #76063.
4599 * marshal.c: Use the emit_ldloc/stloc macros where possible.
4601 2005-09-11 Zoltan Varga <vargaz@gmail.com>
4603 * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4606 2005-09-09 Zoltan Varga <vargaz@gmail.com>
4608 * reflection.c icall.c: Fix after mono_get_exception_type_load
4611 * assembly.c (mono_assembly_get_assemblyref): New helper function.
4612 (mono_assembly_load_reference): Use the new helper.
4614 * class-internals.h (MonoLoaderError): New structure containing
4615 information about type loading errors.
4617 * class-internals.h loader.c: Add APIs to store per-thread loader
4620 * loader.c class.c: Set the loader error if needed.
4622 * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4624 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4626 * decimal.c: fixed to handle the broken ARM fp format.
4628 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4630 * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4633 2005-09-06 Martin Baulig <martin@ximian.com>
4635 * domain.c (supported_runtimes): Added v2.0.50727.
4637 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4639 * culture-info.h: reduce the size of some structures.
4641 2005-09-05 Martin Baulig <martin@ximian.com>
4643 Reflect latest API changes in the August CTP.
4646 ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4647 ("MonoType.HasGenericArguments"): Removed.
4648 ("MonoMethod.BindGenericParameters"): Renamed to
4649 "MakeGenericMethod".
4650 ("MethodBuilder.BindGenericParameters"): Renamed to
4651 "MakeGenericMethod".
4653 2005-09-05 Martin Baulig <martin@ximian.com>
4655 * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4657 2005-09-05 Martin Baulig <martin@ximian.com>
4659 Applying a patch from Michal Moskal <malekith@nemerle.org>.
4661 * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4662 generic_container is non-NULL.
4664 2005-09-05 Martin Baulig <martin@ximian.com>
4666 Applying a patch from Michal Moskal <malekith@nemerle.org>.
4668 * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4670 2005-08-29 Michal Moskal <malekith@nemerle.org>
4672 * reflection.c (encode_locals,
4673 mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4674 for large generic types.
4676 2005-09-05 Martin Baulig <martin@ximian.com>
4678 Applying a patch from Michal Moskal <malekith@nemerle.org>.
4680 * class.c (mono_dup_array_type): New public method.
4681 (mono_metadata_signature_deep_dup): New public method.
4682 (dup_type): Correctly duplicate array and function types.
4684 2005-09-05 Martin Baulig <martin@ximian.com>
4686 Applying a patch from Michal Moskal <malekith@nemerle.org>.
4688 * reflection.c (get_default_param_value_blobs): Handle generic types
4689 and generic methods.
4691 2005-09-02 Sebastien Pouliot <sebastien@ximian.com>
4693 * class.c: Fixed error reporting (method/class were inversed) for
4694 inheritance demands.
4695 * security-manager.c|h: Added the AppDomain when calling the managed
4696 System.Security.SecurityManager.InheritanceDemand method.
4698 2005-09-01 Raja R Harinath <rharinath@novell.com>
4700 * reflection.c (encode_marshal_blob): 'marshaltype' and
4701 'marshaltyperef' are alternate sources for the custom marshaler
4704 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4706 * class.c: fix creation of array classes with rank == 1
4707 (patch by Ankit Jain <jankit@novell.com>).
4709 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4711 * object.c: fix check for creating the bound data for arrays vs
4714 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4716 * object.c: configuration file name is now based on the executable name,
4717 not the image name. Fixes bug #75931.
4719 2005-08-29 Zoltan Varga <vargaz@gmail.com>
4721 * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4722 flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4724 2005-08-25 Zoltan Varga <vargaz@gmail.com>
4726 * rand.c: Use wincrypt.h instead of WinCrypt.h.
4728 2005-08-24 Ankit Jain <jankit@novell.com>
4729 Raja R Harinath <rharinath@novell.com>
4731 * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4732 called by it recursively.
4733 (mono_class_init): Remove special case in pending_init handling, since it's
4734 superseded by the fix to mono_class_from_typeref.
4736 2005-08-22 Zoltan Varga <vargaz@freemail.hu>
4738 * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the
4739 BROKEN_THREAD_START stuff.
4741 2005-08-21 Zoltan Varga <vargaz@freemail.hu>
4743 * class-internals.h object.c: Add a new kind of trampoline called a delegate
4746 * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4748 * object.c (mono_delegate_ctor): Replace the original function address with
4749 a delegate trampoline.
4751 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4753 * icall.c: add boolean argument to base64_to_byte_array and
4754 InternalFromBase64String to control whether a whitespace-only string
4755 is allowed (or should casue a FormatException to be thrown). We need
4756 this as the behavior has changed between MS.NET 1.x and 2.0, and we
4757 to match the MS behaviour in both profiles.
4758 * appdomain.c: Bump corlib version.
4760 2005-08-20 Carlos Alberto Cortez <calberto.cortez@gmail.com>
4762 This patch implements a big portion of publisher policy
4763 support, used to bind assembly versions and redirect
4764 one assembly from version A to version B.
4767 New GSList loaded_assembly_bindings, for storing the cached
4769 (assembly_binding_maps_name): New static function for checking if a
4770 assembly binding information maps an assembly name.
4771 (mono_assembly_binding_info_free): New function for freeing
4772 assembly binding information resources.
4773 (get_publisher_policy_info): New static function for retrieving
4774 assembly binding information from a MonoImage.
4775 (compare_versions): New static function for comparing an assembly
4776 binding information data and the version of an assembly name.
4777 (check_policy_versions): New static function for checking if an
4778 assembly binding info mapping an assembly name is valid for it.
4779 (mono_assembly_load_publisher_policy): New static function for
4780 loading the 'policy.major.minor.MyAssembly' image for an assembly
4781 with an assembly name 'aname'.
4782 (mono_assembly_bind_version): New static function for updating
4783 assembly redirection.
4784 (mono_assembly_apply_binding): New static function for applying
4786 (search_binding_loaded): New static function for searching
4787 loaded assembly binding infos in the cache domain.
4788 (mono_assembly_load_full): Don't apply assembly binding for
4789 reflection only assemblies.
4791 * metadata-internals.h: Add MonoAssemblyBindingInfo,
4792 which contains information about assembly binding. Also
4793 declare signature for mono_config_parse_publisher_policy ()
4794 function, used to retrieve pub policy info.
4797 (publisher_policy_start): New static function used to parse publisher
4798 policy config files.
4799 (publisher_policy_parser): New static MonoParseHandler containing
4800 the functions used when parsing config files.
4801 (mono_config_parse_publisher_policy): New function for parsing
4802 publisher policy files.
4804 2005-08-20 Zoltan Varga <vargaz@freemail.hu>
4806 * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4808 * marshal.c (mono_delegate_free_ftnptr): Ditto.
4810 * object.c (mono_get_addr_from_ftnptr): New helper function.
4812 * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4814 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4816 2005-08-19 Dick Porter <dick@ximian.com>
4818 * threads.c, threads.h, appdomain.c, appdomain.h,
4819 profiler-private.h, monitor.c, object.c, object-internals.h,
4820 profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4821 store the thread ID, so it can hold a 64 bit value if needed.
4823 2005-08-19 Zoltan Varga <vargaz@freemail.hu>
4825 * reflection.c (mono_reflection_create_dynamic_method): Store the
4826 handle class into the method references as well so ldtoken works in
4829 * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4832 2005-08-19 Ankit Jain <jankit@novell.com>
4835 * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature
4836 here rather than using the method signature of a arbitrary function
4837 named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with
4839 Hack done with Harinath.
4841 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4843 * threadpool.c: disable printing stack traces when we get a exception
4844 in a threadpool thread. I need to do more testing to figure out which
4845 cases actually print this. Fixes bug #75828.
4847 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4849 * icall.c: there might be ignored whitespace after the last '='. This
4850 fixes length computation and bug #75840.
4852 2005-08-18 Zoltan Varga <vargaz@freemail.hu>
4854 * assembly.c (mono_assembly_load_full): Consider .exe extension as
4857 * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4860 * reflection.c (create_custom_attr_data): Ditto.
4862 2005-08-17 Atsushi Enomoto <atsushi@ximian.com>
4864 * locales.c, culture-info.h : removed RegionLCIDMap.
4865 * culture-info-tables.h : regenerated.
4867 2005-08-16 Martin Baulig <martin@ximian.com>
4869 * class.c (mono_type_get_name_recurse): Small fix.
4871 2005-08-16 Atsushi Enomoto <atsushi@ximian.com>
4873 * locales.c : indentation fixie.
4875 2005-08-15 Atsushi Enomoto <atsushi@ximian.com>
4877 * object-internals.h,
4881 icall.c : added RegionInfo table support.
4882 * culture-info-table.h : regenerated for region support.
4884 2005-08-14 Kamil Skalski <nazgul@nemerle.org>
4886 * reflection.c (resolve_object): handle all kinds of MonoMethod
4887 including generic ones
4889 2005-08-12 Ankit Jain <jankit@novell.com>
4891 * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4892 (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY.
4894 2005-09-12 Lluis Sanchez <lluis@ximian.com>
4896 * process.c: Don't close a thread handle when it's NULL. This is a
4897 workaround for bug #75733.
4899 2005-08-11 Zoltan Varga <vargaz@freemail.hu>
4901 * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4903 2005-08-10 Zoltan Varga <vargaz@freemail.hu>
4905 * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4907 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4909 * threadpool.c: if a work item in the thread pool has a callback that
4910 catches a exception, don't propagate it after invoking the callback.
4913 2005-08-08 Zoltan Varga <vargaz@freemail.hu>
4915 * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4917 * class-internals.h (MonoCachedClassInfo): Add some new fields.
4919 * class.c (mono_class_init): Load field info lazily in the AOT case.
4921 * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4923 2005-08-03 Ankit Jain <jankit@novell.com>
4926 * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4927 PInvoke calling convention is 0.
4929 2005-08-02 Zoltan Varga <vargaz@freemail.hu>
4931 * socket-io.c (convert_sockopt_level_and_name): Applied patch from
4932 Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4934 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4936 * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4937 to handle threads not started by the GC (patch by Michael Meeks
4938 <michael.meeks@novell.com>).
4940 2005-07-31 Kamil Skalski <nazgul@omega.pl>
4942 * reflection.c: Make buffer used in emitting types larger for some
4943 big generic types (patch by Michal Moskal).
4945 2005-07-30 Zoltan Varga <vargaz@freemail.hu>
4947 * mono-debug.c: Fix some (not all) alignment problems.
4949 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
4951 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4952 Invoke mono_image_load_from_data_full passing the refonly
4956 (mono_assembly_open_from_bundle): Add the refonly argument,
4957 in order to pass it to other methods it calls to.
4958 (do_mono_assembly_open): Add the refonly argument, in order
4959 to pass it to other methods it calls to.
4960 (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4961 the refonly parameter to it.
4963 * image.c: Add loaded_images_refonly_hash and
4964 loaded_images_refonly_guid_hash to cache the reflection
4966 (mono_images_init): Initialize the hash tables used for
4967 caching the reflection only images.
4968 (load_modules): Invoke mono_image_open_full passing the refonly
4969 parameter to load the modules the correct way.
4970 (build_guid_table): Add the refonly argument, to re-build the
4972 (do_mono_image_open): Added the refonly argument, in order to
4973 define it for the loaded image.
4974 (mono_image_loaded_full): New function, which receives an
4975 additional parameter to look for the image in the refonly or
4976 non-refonly section.
4977 (mono_image_loaded): Updated, using mono_image_loaded_full.
4978 (mono_image_loaded_by_guid_full): The same case that happens
4979 with mono_image_loaded_full.
4980 (mono_image_loaded_by_guid): Likewise.
4981 (register_image): Use the ref_only variable inside MonoImage
4982 to decide in which hash table store the current image.
4983 (mono_image_open_from_data_full): Rename
4984 mono_image_open_from_data to mono_image_open_from_data_full,
4985 adding the refonly argument, to define the ref_only variable
4987 (mono_image_open_from_data): Return
4988 mono_image_open_from_data_full.
4989 (mono_image_open_full): Rename mono_image_open to
4990 mono_image_open_full, receiving the new refonly argument,
4991 to pass it to inner methods.
4992 (mono_pe_file_open): Update this function, to open
4993 a MonoImage as a non-refonly image.
4994 (mono_image_close): Use the refonly variable inside
4995 MonoImage to remove the image from the correct caches.
4997 * image.h: Add the signatures of mono_image_open_full,
4998 mono_image_open_from_data_full, mono_image_loaded_full,
4999 mono_image_loaded_by_guid_full.
5001 * metadata-internals.h: Add the ref_only field to
5004 2005-07-29 Carlos Alberto Cortez <calberto.cortez@gmail.com>
5006 * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
5007 Fix the last behavior, which used to load the assemblies and
5008 extract MonoReflectionAssemblyName information, instead of
5009 extract it from the metadata tables. Needed for Reflection
5012 2005-07-29 Martin Baulig <martin@ximian.com>
5014 * mono-debug-debugger.c
5015 (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
5019 (mono_debug_address_from_il_offset): Check whether we have
5020 debugging support before attempting to take the lock.
5021 (mono_debug_source_location_from_address): Likewise.
5022 (mono_debug_source_location_from_il_offset): Likewise.
5023 (mono_debug_il_offset_from_address): Likewise.
5024 (mono_debug_address_from_il_offset): Likewise.
5026 2005-07-29 Zoltan Varga <vargaz@freemail.hu>
5028 * class.c (mono_class_from_name_case): Add support for dynamic images.
5031 * object.c (mono_class_compute_gc_descriptor): Add a workaround
5034 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
5036 * reflection.c (mono_method_get_object): Fix warning.
5038 2005-07-28 Martin Baulig <martin@ximian.com>
5041 (mono_debug_add_wrapper): Also write the wrapper type.
5043 2005-07-28 Zoltan Varga <vargaz@freemail.hu>
5045 * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
5047 * class.c (mono_class_init): Avoid reading nested classes if the AOT
5048 data indicates the class has none.
5050 2005-07-26 Ben Maurer <bmaurer@ximian.com>
5052 * mono-debug.c, debug-mono-symfile.c: Replace the use of the
5053 loader lock with the debugger lock. Prevents deadlocks for beagle.
5055 Beagle can now run on an smp box for a weekend without any
5058 2005-07-26 Zoltan Varga <vargaz@freemail.hu>
5060 * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
5061 in a module. Fixes #75629.
5063 2005-07-26 Martin Baulig <martin@ximian.com>
5065 * mono-debug.c (mono_debug_add_wrapper): New static method.
5066 (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
5067 interncall or a wrapper.
5069 * mono-debug.h (MonoDebugWrapperData): New public typedef.
5070 (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
5071 (MONO_DEBUGGER_VERSION): Bump to 51.
5073 * mono-debug-debugger.c
5074 (mono_debugger_add_type): Removed this empty function.
5075 (mono_debugger_add_method): Likewise.
5077 2005-07-22 Zoltan Varga <vargaz@freemail.hu>
5079 * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable ()
5080 before accessing method->slot.
5082 2005-07-21 Jb Evain <jbevain@gmail.com>
5084 * reflection.c (method_encode_clauses/class): Handle filters clauses.
5087 2005-07-21 Zoltan Varga <vargaz@freemail.hu>
5089 * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5092 2005-07-20 Zoltan Varga <vargaz@freemail.hu>
5094 * image.h image.c: Add mono_image_get_guid () API function.
5096 2005-07-19 Ben Maurer <bmaurer@ximian.com>
5098 There were issues when multiple threads tried to load
5099 assemblies. A deadlock was created between assemblies_mutex and
5100 mono_domain_assemblies_lock. This fixes the issue by making the
5101 assembly ref counting be lock free. See bug 75586.
5103 * image.c (mono_image_close): The add ref function here was using
5104 Interlocked operations while the unref was using a mutex and a
5105 --. I don't think this was ever a bug that would be exposed in a
5106 non-pendantic way (ie, by an embedder doing a ref on one thread
5107 and an unref on another), but for the sake of correctness, this is
5110 * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5111 (mono_assembly_load_reference): Call mono_assembly_addref rather
5112 than touching the refcount ourselves.
5113 (mono_assembly_close): Use InterlockedDecrement to unref the
5114 assembly. Don't acquire the lock unless it is actually needed.
5116 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
5118 * class.c (mono_class_layout_fields): Fix calculation of has_references
5121 2005-07-12 Martin Baulig <martin@ximian.com>
5123 Applying a patch from Michal Moskal <malekith@nemerle.org>.
5126 (mono_type_hash): Provide better hashing for generic instances.
5127 (mono_generic_inst_hash): Improve hashing.
5128 (mono_generic_class_hash): Likewise.
5130 * reflection.c (mymono_metadata_type_hash): Improve hashing for
5133 2005-07-12 Martin Baulig <martin@ximian.com>
5135 * reflection.c (mono_reflection_create_runtime_class): Remove the
5136 hack for generic type definitions and non-`Run' assemblies.
5137 (mono_reflection_bind_generic_parameters): Also use
5138 `klass->wastypebuilder' to check for TypeBuilders.
5140 2005-07-12 Zoltan Varga <vargaz@freemail.hu>
5142 * class.c (mono_class_layout_fields): Fix calculation of has_references
5145 * class.c (inflate_generic_class): Fix a leak.
5146 (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5149 2005-07-11 Martin Baulig <martin@ximian.com>
5151 * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5154 2005-07-11 Martin Baulig <martin@ximian.com>
5156 * loader.c (find_method): Also lookup in
5157 `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5159 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
5161 * appdomain.c (mono_domain_unload): Don't free the error message
5162 before passing it to mono_get_exception_...
5164 * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5166 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5168 * threads.c: try to better guess an available RT signal (bug #75387).
5170 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
5172 * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5175 2005-07-07 Martin Baulig <martin@ximian.com>
5177 * class.c (mono_type_get_name_full): Return NULL for
5178 MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5181 2005-07-07 Zoltan Varga <vargaz@freemail.hu>
5183 * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5184 exit the appdomain as well being aborted.
5186 * threadpool.c: Create all threadpool threads inside the root appdomain, and
5187 change back to the root domain after calling managed code. This enables
5188 appdomains using threadpools to be unloaded.
5190 2005-07-07 Martin Baulig <martin@ximian.com>
5193 (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5194 into `MonoDynamicGenericClass' since we only need it for dynamic
5197 * reflection.c (mono_class_bind_generic_parameters): We don't need
5198 to compute the `parent' here.
5200 2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
5202 * culture-info-table.h : regenerated.
5204 2005-07-06 Martin Baulig <martin@ximian.com>
5207 (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5209 * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5211 2005-07-06 Martin Baulig <martin@ximian.com>
5213 * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5214 we're doing a signature-only comparision; fixes #74945.
5216 2005-07-06 Martin Baulig <martin@ximian.com>
5218 * class-internals.h (MonoGenericClass): Moved some things out into
5219 a new `MonoInflatedGenericClass' type.
5220 (MonoInflatedGenericClass): New type; the `klass' of a
5221 `MonoGenericClass' is now computed lazyly in
5222 mono_get_inflated_generic_class().
5224 * class.c (mono_get_inflated_generic_class): New public function.
5225 (mono_class_inflate_generic_method): Removed the unused
5226 `MonoClass *' argument.
5227 (setup_generic_vtable): Don't call mono_get_inflated_method() on
5229 (mono_class_create_generic): Make this static and merge it with
5230 mono_class_create_generic_2(); we're now called automatically from
5231 mono_get_inflated_generic_class().
5233 * loader.c (mono_method_signature): Call
5234 mono_get_inflated_method() here.
5236 2005-07-06 Zoltan Varga <vargaz@freemail.hu>
5238 * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5239 type of fields with RVA.
5241 * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5242 for this pseudo class.
5243 (my_mono_class_from_generic_parameter): Likewise.
5244 (mono_class_init): Allow interfaces to have cctors.
5246 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
5248 * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5249 lazily for AOT methods.
5251 2005-07-05 Martin Baulig <martin@ximian.com>
5253 * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5254 returns FALSE for a successful match, not TRUE.
5256 2005-07-05 Zoltan Varga <vargaz@freemail.hu>
5258 * loader.c (mono_method_get_index): Optimize this a bit.
5260 2005-07-04 Martin Baulig <martin@ximian.com>
5263 (class_compute_field_layout): Move the check for generic type
5264 definitions into mono_class_layout_fields(). Fixes #74684.
5265 (mono_class_from_generic_parameter): Correctly compute
5266 `klass->parent'; fixes #75457.
5268 * reflection.c (register_assembly, register_module): Make sure
5269 `domain->rejobject_hash' is already created.
5271 2005-07-02 Martin Baulig <martin@ximian.com>
5274 (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5275 `MonoDynamicGenericClass'.
5277 2005-07-01 Lluis Sanchez <lluis@ximian.com>
5279 * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5280 returned by a field getter is null, since null is a valid value.
5282 2005-07-01 Martin Baulig <martin@ximian.com>
5284 * reflection.c (mono_reflection_generic_class_initialize): Update
5285 the `dgclass->fields [i].parent' to the correct class.
5286 (mono_image_get_fieldref_token): Use the declaring type, not the
5289 2005-07-01 Martin Baulig <martin@ximian.com>
5291 * loader.c (find_method): Also look in the interfaces; fixes #75429.
5293 2005-06-30 Ben Maurer <bmaurer@ximian.com>
5295 * threads.c (thread_cleanup): assert that thread != NULL
5296 (wait_for_tids_or_state_change): We were using the wrong variable
5297 when accessing wait->threads. `i' was always out of the bounds of
5300 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5302 * loader.c: map user32 and kernel32 to libMonoSupportW
5304 2005-06-28 Zoltan Varga <vargaz@freemail.hu>
5306 * appdomain.c (unload_thread_main): Mark this as WINAPI.
5308 2005-06-28 Martin Baulig <martin@ximian.com>
5310 * loader.c (method_from_methodspec): Fix #75334.
5312 2005-06-28 Martin Baulig <martin@ximian.com>
5314 Fix #74953 - Arrays now implement the generic IList<T> interface
5315 on the 2.0 platform.
5317 * class-internals.h (MonoDefaults): Added `generic_array_class'.
5319 * reflection.c (mono_class_bind_generic_parameters): New public
5320 function; similar to mono_reflection_bind_generic_parameters(),
5321 but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5323 * domain.c (mono_init_internal): Try to initialize.
5324 `mono_defaults.generic_array_class' here; this'll only succeed if
5325 we're using the 2.0 corlib.
5328 (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5329 interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5330 (mono_lookup_internal_call): Added support for nested classes.
5333 (mono_get_method_from_token): Set `result->signature->pinvoke' if
5334 we're an interncall and have generic arguments.
5337 (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5338 (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5339 instance of System.Array.InternalArray<T> for arrays, so they
5340 implement the generic IList<T> interface.
5342 2005-06-27 Zoltan Varga <vargaz@freemail.hu>
5344 * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5345 (chastamar@yahoo.com). Fixes #75374.
5347 2005-06-27 Atsushi Enomoto <atsushi@ximian.com>
5349 * culture-info-table.h: regenerated.
5351 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5353 * icall.c: handle spaces correctly for base64 strings.
5355 2005-06-26 Ben Maurer <bmaurer@ximian.com>
5357 * *.c: Kill some warnings.
5359 2005-06-23 Duncan Mak <duncan@novell.com>
5361 * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5362 that this builds on Solaris 10 (x86).
5364 2005-06-23 Martin Baulig <martin@ximian.com>
5367 (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5368 generic type definitions.
5370 2005-06-23 Martin Baulig <martin@ximian.com>
5374 * metadata.c (mono_class_get_overrides): Renamed to
5375 mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5376 (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5377 pass it to mono_get_method_full().
5379 2005-06-22 Ben Maurer <bmaurer@ximian.com>
5381 * reflection.c (mono_reflection_create_runtime_class): take the
5382 mono_domain_lock in this method. Prevents deadlocks
5384 2005-06-22 Martin Baulig <martin@ximian.com>
5386 * loader.c (method_from_methodspec): Fix #75330.
5388 2005-06-22 Martin Baulig <martin@ximian.com>
5390 * reflection.c (type_get_qualified_name): Use
5391 mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5392 (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5393 argument; use it if we don't have an assembly name.
5395 2005-06-22 Lluis Sanchez Gual <lluis@novell.com>
5397 * object.c: In mono_message_init, set "copy out" flag for in
5398 parameters with the [Out] flag.
5400 2005-06-21 Martin Baulig <martin@ximian.com>
5403 (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5406 2005-06-21 Martin Baulig <martin@ximian.com>
5408 * class.c (mono_class_init): Don't initialize `class->fields' for
5409 generic instances since they're initialized again in
5410 compute_field_layout().
5411 (compute_field_layout): Set the field's `generic_info' here; fix
5414 2005-06-21 Martin Baulig <martin@ximian.com>
5417 (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5419 * metadata.c (mono_metadata_generic_method_equal): Also
5420 distinguish the `generic_class'; fixes #75334.
5422 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5426 * domain-internals.h:
5427 * reflection.c: 'domain_assemblies' field is now protected by its own
5428 lock. Don't call into managed code to run the AssemblyLoad event if we
5429 now there are no registered delegates for it.
5431 2005-06-20 Martin Baulig <martin@ximian.com>
5433 * class.c (mono_class_is_assignable_from): Use a custom version of
5434 mono_class_has_parent() to make things work for generic instances;
5437 2005-06-20 Martin Baulig <martin@ximian.com>
5439 * loader.c (method_from_methodspec): Apply a patch from
5440 Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5442 2005-06-20 Martin Baulig <martin@ximian.com>
5444 * class.c (mono_class_init): Reverted Zoltan's last change; it
5447 2005-06-19 Zoltan Varga <vargaz@freemail.hu>
5449 * threads.c (wait_for_tids_or_state_change): Add missing locking.
5451 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5453 * socket-io.c: fix the index in the socket array for writable/error
5454 sockets. Fixes bug #75306.
5456 2005-06-17 Zoltan Varga <vargaz@freemail.hu>
5458 * class.c (mono_class_init): Allow interfaces to have static ctors.
5460 2005-06-17 Martin Baulig <martin@ximian.com>
5462 * loader.c (method_from_methodspec): Use `context->container' when
5463 parsing the `gmethod->inst'.
5465 2005-06-17 Martin Baulig <martin@ximian.com>
5467 * class.c (mono_type_get_name_recurse): Don't add the assembly
5468 name for type arguments.
5470 2005-06-15 Martin Baulig <martin@ximian.com>
5472 * reflection.c (mono_image_get_inflated_method_token): Encode
5473 correct klass; fixes #75260.
5475 2005-06-13 Michal Moskal <malekith@nemerle.org>
5477 * icall.c: Make GetCorrespondingMethod/Constructor take
5478 MonoReflectionMethod method not MonoMethod. Removed
5479 MonoType.GetCorrespondingField, and make
5480 MonoGenericType.GetCorrespondingField take name not
5483 2005-06-13 Michal Moskal <malekith@nemerle.org>
5485 * reflection.c (field_encode_signature, encode_locals):
5486 Make sizes of buffers for types larger (for big generic types).
5487 (create_generic_typespec,
5488 mono_reflection_sighelper_get_signature_local,
5489 mono_reflection_sighelper_get_signature_field):
5490 Add asserts for too small buffers.
5492 2005-06-15 Martin Baulig <martin@ximian.com>
5494 * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5495 if our parent is not a dynamic type.
5497 2005-06-15 Martin Baulig <martin@ximian.com>
5499 * class-internals.h (MonoTypeNameFormat): New enum.
5502 (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5503 (mono_type_get_full_name): Removed.
5504 (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5505 argument instead of the boolean's.
5507 * icall.c (ves_icall_System_MonoType_getFullName):
5508 Added `gboolean assembly_qualified'.
5511 (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5513 * reflection.c (mono_reflection_parse_type): Parse the new type
5516 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5518 * icall.c: no need to convert from utf16 to utf8 and then back again
5519 after the call to GetLogicalDrives.
5521 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5523 * icall.c: frombase64. Fix problems exposed by new tests.
5525 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5527 * icall.c: added internal calls for converting char [] and strings in
5528 base64 into byte [].
5530 2005-06-10 Martin Baulig <martin@ximian.com>
5532 * class.c (mono_class_create_generic_2): Read the nested classes
5533 from the metadata rather than from `gklass->nested_classes' since
5534 `gklass' might not be initialized yet.
5536 2005-06-09 Duncan Mak <duncan@novell.com>
5538 * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5539 all public headers. Fixes #74919.
5541 2005-06-09 Lluis Sanchez Gual <lluis@novell.com>
5543 * domain.c: The key for proxy_vtable_hash is now a pointer
5544 array. Added new GHashFunc and GCompareFunc functions for this.
5546 * class.h: The list of interfaces in MonoRemoteClass is known in
5547 advance and can't grow (we create a new MonoRemoteClass if needed),
5548 so now the interface array can be allocated together with
5551 * object.c: Added a new method create_remote_class_key.
5552 Fixed mono_remote_class so it does not depend on
5553 mono_upgrade_remote_class.
5554 Removed extend_interface_array.
5555 Added new method clone_remote_class(), which makes a copy of a remote
5556 class and adds a new interface or class to it.
5557 mono_upgrade_remote_class() now creates a new remote class (or gets
5558 it from the cache) if an vtable upgrade is needed. In this way
5559 we make sure that other objects sharing the same remote class
5560 don't get the new vtable with unwanted interfaces.
5562 * object-internals.h:
5563 * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5565 * marshal.c: Track changes in mono_upgrade_remote_class().
5567 2005-06-08 Kamil Skalski <nazgul@nemerle.org>
5568 * icall.c: Add runtime methods for obtaining members of inflated
5569 class, which were created from supplied non-inflated members. It
5570 is used in internal Get{Method,Constructor,Field} methods in
5573 2005-06-09 Martin Baulig <martin@ximian.com>
5576 (mono_reflection_bind_generic_method_parameters): Fix #75169.
5578 2005-06-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
5579 * reflection.c (mono_image_basic_init): Define
5580 Version in MonoDynamicAssembly.
5582 2005-06-08 Martin Baulig <martin@ximian.com>
5587 (mono_method_signature_full): New public method; takes a
5588 `MonoGenericContext *'.
5589 (find_method): Use mono_method_signature_full() and pass the
5590 klass'es context to it.
5592 * class.c (mono_class_is_inflated_method): Use
5593 mono_method_signature_full() and pass the context to it.
5595 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5597 * object.c: add proper locking in mono_remote_class_vtable(),
5598 fixes possible memory corruption.
5600 2005-06-08 Michael Meeks <michael.meeks@novell.com>
5602 * marshal.c (mono_remoting_marshal_init): set
5603 initialized after initialization.
5605 2005-06-08 Atsushi Enomoto <atsushi@ximian.com>
5609 2005-06-06 Michael Meeks <michael.meeks@novell.com>
5611 * object.c (extend_interface_array): fix really silly
5612 memory corrupting / comparison bug.
5614 2005-06-07 Carlos Alberto Cortez <calberto.cortez@gmail.com>
5616 * reflection.c: Functions added to support the creation
5617 of CustomAttributeData, which includes Attribute data
5618 used by ReflectionOnly methods.
5620 * reflection.h: mono_reflection_get_custom_attrs_data and
5621 mono_custom_attrs_data_construct added (functions exposed).
5623 * icall.c: Added mono_reflection_get_custom_attrs_data
5626 2005-06-07 Zoltan Varga <vargaz@freemail.hu>
5628 * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5631 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
5633 * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5635 * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5636 dynamic DllImportAttribute.
5638 * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of
5639 dynamic DllImportAttribute.
5641 * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5644 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5646 * threads.c: avoid segfault when an unstarted thread is aborted.
5648 2005-06-05 Kornél Pál <kornelpal@hotmail.com>
5650 * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5651 Returns the name and version of the runtime for reporting.
5653 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5655 * appdomain.c: bump corlib version.
5656 * object-internals.h: new field in MonoReflectionAssembly.
5658 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5660 * object-internals.h: Carlos forgot to add this field.
5662 2005-06-03 Carlos Alberto Cortez <calberto.cortez@gmail.com>
5664 * icall.c: Added create_version to create instances
5665 of Version of MonoReflectionAssemblyName. This change helps
5666 the AssemblyName tests to keep running fine.
5668 2005-06-03 Lluis Sanchez Gual <lluis@novell.com>
5670 * object.c (mono_method_return_message_restore): A somehow less
5671 intrusive fix for #75138.
5673 2005-06-03 Raja R Harinath <rharinath@novell.com>
5675 * object.c (mono_method_return_message_restore): Fix computation
5676 of expected number of out args.
5678 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
5680 * reflection.c (mono_image_get_method_info): Fix the case when the
5683 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
5685 * object.c: Added missing null check in
5686 mono_method_return_message_restore.
5688 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
5690 * reflection.c (mono_image_get_method_info): Handle the case when
5693 2005-06-02 Lluis Sanchez Gual <lluis@novell.com>
5695 * object.c: When creating the vtable for a proxy, take into account
5696 all inherited interfaces, not only the ones registered in
5697 iclass->interfaces. This fixs bug #74996.
5698 Also, in mono_method_return_message_restore, verify that the array
5699 of out args has the expected lengh.
5701 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5703 * socket-io.c: update the timeout in Poll when the call is interrupte.
5705 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5707 * socket-io.c: support abort/suspend in Select_internal after last
5710 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5712 * threadpool.c: remove warning.
5714 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5717 * socket-io.[ch]: Select_internal uses poll() now when available, thus
5718 removing the 1024 limit from select(). Runtime part of the fix for
5721 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5723 * socket-io.c: when resolving the addresses for the same
5724 host returned by gethostname(), get the local IPs from the interface
5725 list. Loopback addresses are discarded if the are interfaces up with
5726 non-loopback ones. Fixes bug #63265.
5728 2005-05-27 Vladimir Vukicevic <vladimir@pobox.com>
5730 * appdomain.c, verify.c, object-internals.h, reflection.c:
5731 bumped corlib number to 36, and added new extra_flags field
5732 to ReflectionMethodBuilder and friends. Fixes #75060.
5734 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5736 * gc.c: register a new weak link only if the object is non-null
5739 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
5741 * culture-info.h : short time pattern too.
5743 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
5745 * culture-info.h : expand long time pattern string length.
5747 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
5749 * culture-info-table.h : update (more French date format; #72788).
5751 2005-05-25 Zoltan Varga <vargaz@freemail.hu>
5753 * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5754 the method is static. Fixes #75029.
5756 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
5758 * reflection.c: Update the table_idx field of method builders after
5759 saving the module, since it can change. This is a workaround for
5762 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
5764 * culture-info-table.h : update (additional French date format).
5766 2005-05-20 Zoltan Varga <vargaz@freemail.hu>
5768 * icall.c (ves_icall_type_Equals): Revert last change.
5770 * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5772 * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5774 2005-05-20 Sebastien Pouliot <sebastien@ximian.com>
5776 * class-internals.h: Added executioncontext_class field to
5777 MonoDefaults structure.
5778 * domain.c: Cache System.Threading.ExecutionContext class in
5780 * object.c: Capture the ExecutionContext for asynchroneous calls in
5781 mono_async_result_new.
5782 * object-internals.h: Added execution_context and original_context
5783 fields to MonoAsyncResult. Added execution_context to MonoThread.
5784 * security-manager.c|.h: Added mono_get_context_capture_method to
5785 return the capture method (if required by the security manager or by
5786 the framework version used).
5787 * threadpool.c: Apply capture (if present) ExecutionContext in
5788 mono_async_invoke and revert to original context after it completes.
5790 2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
5792 * culture-info-table.h : updated (real hacky solution for zh-CHT).
5794 2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
5796 * culture-info-table.h : zh-CHT related workaround.
5798 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
5800 * marshal.c (emit_marshal_custom): Add some error checking and call the
5801 methods in the ICustomMarshaler interface. Fixes #74875.
5803 * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5804 native->managed wrappers.
5806 2005-05-12 Martin Baulig <martin@ximian.com>
5808 * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5809 here and use the loader lock.
5811 * mono-debug.c: Properly lock when the debugger is not attached.
5812 (mono_debug_init): Release the initial lock if we're not running
5815 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
5817 * marshal.c (emit_marshal_custom): Pass through NULL values without
5818 calling the custom marshalling routines.
5820 * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5821 conversion in structures. Fixes #74882.
5823 2005-05-12 Atsushi Enomoto <atsushi@ximian.com>
5825 * culture-info-table.h : zh-* cultures were missing.
5827 2005-05-12 Lluis Sanchez Gual <lluis@novell.com>
5829 * threads.c: Added a new event background_change_event which is signaled
5830 when a thread changes its background mode.
5831 Moved here several checks previously done in managed code. The checks
5832 require the thread lock, and using the thread lock in managed code
5833 can result in deadlocks.
5834 Merged Start_internal and Thread_internal into a single method. Now
5835 Thread_internal does all work of creating and starting a thread.
5836 Added icalls for setting and getting the state of the object. Moved from
5837 managed code to avoid locking there.
5838 Added wait_for_tids_or_state_change() which is called instad of
5839 wait_for_tids when waiting for non-backround threads to end. This method
5840 will return if one of the threads ends or the background_change_event
5842 * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5843 the background mode. This method signals the background_change_event
5846 * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5847 removed Start_internal.
5849 2005-05-11 Martin Baulig <martin@ximian.com>
5851 * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5852 to order of some fields to get proper alignment on 64-bit machines.
5854 2005-05-11 Martin Baulig <martin@ximian.com>
5856 * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5857 changes as they're broken and completely fuck up the debugger.
5859 * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5861 2005-05-10 Martin Baulig <martin@ximian.com>
5863 * reflection.c (mono_reflection_generic_class_initialize): Don't
5864 call mono_class_setup_parent() here.
5866 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5868 * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5869 send/receive timeout use an integer in milliseconds. We were using a
5872 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5875 (internal_get_cultures): reserve the first slot of the array for the
5876 InvariantCulture, which will be filled in managed code.
5878 2005-05-06 Zoltan Varga <vargaz@freemail.hu>
5880 * reflection.c (mono_image_fill_module_table): Initialize the
5881 GENERATION field as well.
5883 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5885 * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5886 Monitor.Enter on the object.
5888 2005-05-05 Lluis Sanchez Gual <lluis@novell.com>
5890 * threads.c: Enable the wait for running threads when exiting.
5891 * icall.c: Suspend all threads before exiting.
5893 2005-05-05 Zoltan Varga <vargaz@freemail.hu>
5895 * assembly.c (mono_assembly_load_reference): Fix warning.
5897 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5899 * threadpool.c: changed the default number of threads per cpu. From now
5900 on, the default will be 20 + (5 * number of cpus) instead of 50.
5902 2005-05-04 Zoltan Varga <vargaz@freemail.hu>
5904 * loader.c (mono_method_get_signature_full): Add locking here.
5906 2005-05-03 Lluis Sanchez Gual <lluis@novell.com>
5908 * appdomain.c: Moved methods for parsing and freeing assembly
5909 names to assembly.c.
5910 * assembly.c, domain-internals.h: Created public methods for parsing
5911 assembly names. Fixed mono_assembly_load_with_partial_name:
5912 it now finds the best match, taking into account the version,
5913 token and culture specified in the partial name. Also return
5914 the latest version if no version information is specified.
5916 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5918 * threadpool.c: replace check for SocketAsyncCall class.
5920 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5922 * threadpool-internals.h:
5923 * Makefile.am: added threadpool-internals.h
5925 * threadpool.c: call mono_unhandled_exception on exceptions not handled
5926 that happen in threadpool threads (tested on MS).
5927 (mono_thread_pool_remove_socket): new function that dispatch any pending
5928 AIO call on a socket that is closing. By now only epoll really needs it,
5929 as select/poll wake up when the socket closes.
5932 * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5934 2005-05-01 Zoltan Varga <vargaz@freemail.hu>
5936 * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5938 2005-05-01 Lluis Sanchez Gual <lluis@novell.com>
5940 * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5942 2005-04-30 Lluis Sanchez Gual <lluis@novell.com>
5944 * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5945 has an abort request, convert it into a suspend request.
5947 2005-04-30 Ben Maurer <bmaurer@ximian.com>
5949 * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5950 warning for the usage of `UnmanagedFunctionPointerAttribute' which
5951 is not supported yet.
5953 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5955 * image.c: register assemblies loaded from data (bundles) in the loaded
5956 assemblies hash. Fixes bug #74772.
5958 2005-04-29 Martin Baulig <martin@ximian.com>
5960 * class.c (mono_type_get_name_recurse): Update to the new naming
5961 schema from the latest .NET 2.x beta2.
5962 (mono_class_setup_vtable_general): If we're a generic instance,
5963 copy the vtable from our generic type definition and inflate all
5966 * loader.c (find_method): Update to the new naming schema from the
5967 latest .NET 2.x beta2.
5969 2005-04-29 Raja R Harinath <harinath@gmail.com>
5971 * class.c (mono_class_init): Add a mono_loader_unlock to the
5974 2005-04-28 Zoltan Varga <vargaz@freemail.hu>
5976 * icall.c (ves_icall_System_Environment_Exit): Remove the
5977 suspend_all_other_threads () call for the time being, since it can hang.
5979 * threads.c (mono_thread_manage): Similarly, disable the waiting for
5980 the background threads to exit, since it can also hang.
5982 * class.c (mono_class_init): Applied patch from Ankit Jain
5983 (radical@gmail.com). Avoid pending init errors when a field refers
5984 to a nested class using a typeref. Fixes #74734.
5986 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5987 this for dynamic modules.
5989 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5991 * threads.c: don't wait for threads that are in the process of aborting
5992 or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5993 and waiting for background threads to finish. This makes xsp and
5994 mod-mono-server exit without random length delays and/or hangs.
5996 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5998 * icall.c: remove duplicate assignment from GetReferencedAssemblies.
6000 2005-04-25 Zoltan Varga <vargaz@freemail.hu>
6002 * class.c (mono_class_is_assignable_from): Call is_assignable_to for
6003 dynamic types to prevent infinite loops. Fixes #74727.
6005 * reflection.c (mono_reflection_call_is_assignable_from): Rename to
6006 ..._is_assignable_to.
6008 2005-04-25 Sebastien Pouliot <sebastien@ximian.com>
6010 * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
6012 2005-04-25 Martin Baulig <martin@ximian.com>
6014 Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
6017 (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
6019 * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
6021 * reflection.c (build_compressed_metadata): Set metadata header
6024 2005-04-23 Zoltan Varga <vargaz@freemail.hu>
6026 * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
6027 number into an integral and a decimal part. Fixes #70473.
6029 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
6031 2005-04-23 Atsushi Enomoto <atsushi@ximian.com>
6033 * culture-info-table.h : reflected the latest locale-builder output.
6035 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6037 * threadpool.c: check for SuspendRequested too when deciding if
6038 mono_thread_interruption_checkpoint should be called.
6040 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6042 * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
6043 * threads.c: remove interruption_mutex and use Interlocked instead. When
6044 suspending all the threads, wait for all the suspended events at once.
6045 If we're shutting down and get an APC that is going to be queued,
6046 call mono_thread_execute_interruption immediately, as the thread might
6047 be sleeping on a pthread condition or mutex.
6049 * icall.c: call mono_runtime_set_shutting_down before suspending the
6052 Fixes bug #74693. And now xsp is happier when exiting.
6054 2005-04-22 Zoltan Varga <vargaz@freemail.hu>
6056 * loader.c (mono_stack_walk): Fix #74690.
6058 2005-04-22 Martin Baulig <martin@ximian.com>
6060 * mono-debug.h (MonoDebugMethodJitInfo): Added
6061 `MonoDebugMethodJitInfo *jit'.
6063 * mono-debug.c (mono_debug_read_method): Cache the
6064 MonoDebugMethodJitInfo in `address->jit'.
6065 (mono_debug_free_method_jit_info): New public method.
6067 2005-04-22 Martin Baulig <martin@ximian.com>
6069 * class.c (mono_class_is_assignable_from): Disallow
6070 type parameter -> interface.
6072 2005-04-21 Dick Porter <dick@ximian.com>
6074 * threads.c (mono_thread_create): Turn an assertion into an error.
6076 2005-04-20 Zoltan Varga <vargaz@freemail.hu>
6078 * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
6080 * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c:
6081 Fix some gcc 4.0 warnings.
6083 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
6085 * file-io.c: fix alt dir separator char on unix systems
6086 and cleanup (fixes bug #71214).
6088 2005-04-19 Lluis Sanchez Gual <lluis@novell.com>
6090 * marshal.c: Use CALLVIRT instead of CALL when dispatching
6091 a call to a remote domain, since the method may be an
6092 interface method in the client domain. This fixes bug #74192.
6094 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6096 * threadpool.c: recv/send are now performed before going back to managed
6097 code to save one transition.
6099 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6101 * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6103 * metadata/threadpool.c: removed hack to workaround the bug above.
6107 2005-04-16 Zoltan Varga <vargaz@freemail.hu>
6109 * reflection.c reflection.h: Fix handling of parameter defaults in
6110 dynamic methods. Also fixes handling of parameter attributes.
6113 * mono-debug.c (mono_debug_close_image): Fix warning.
6115 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6117 * socket-io.h: replaced old unused field with new 'blocking'.
6118 * threadpool.c: restore socket blocking state on windows(tm).
6120 2005-04-14 Sebastien Pouliot <sebastien@ximian.com>
6122 * icall.c: don't return the codebase in the AssemblyName[] returned by
6123 ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6124 * object-internals.h: Removed FIXME (fields were presents) and fixed
6125 versioncompat declaration.
6127 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6129 * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6130 not closed, so don't cleanup when it happens.
6132 2005-04-13 Chris Toshok <toshok@ximian.com>
6134 * mono-debug-debugger.h: change prototype for
6135 mono_debugger_lookup_type.
6137 * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6138 this function, although it should probably be named
6139 mono_debugger_init_type.
6141 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6143 * threadpool.c: fix non-AIO case.
6145 2005-04-13 Zoltan Varga <vargaz@freemail.hu>
6147 * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6148 the built-in profiler to measure just JIT compilation times.
6150 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6152 * threadpool.c: the epollfd might be closed by another thread at
6153 any time, so ignore EBADF at treat it as a "we're closing" sign.
6155 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6157 * threadpool.c: release the semaphores with a count equals to the number
6158 of working threads in both IO and regular pools. Fixed typo that messed
6159 up the count of IO pool threads. Don't initialize the pipe handles if
6162 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6164 * threadpool.c: some systems don't like a NULL when deleting the socket
6167 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6169 * threadpool.c: fix semaphore allocation.
6171 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6173 * threadpool.c: added epoll() based implementation for asynchronous IO
6174 that is used instead of the default poll() when available.
6175 It can be disabled by setting MONO_DISABLE_AIO.
6177 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6179 * threadpool.c: windows needs 'closesocket' and instead of returning
6180 0 when the stream is closed while in select, it returns -1. Fixes bug
6183 2005-04-12 Zoltan Varga <vargaz@freemail.hu>
6185 * class.c (class_compute_field_layout): Fix the regression caused by
6188 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6190 * threadpool.c: separate pool for socket async. IO.
6191 * threadpool.h: mono_max_worker_threads is not a global any more.
6193 2005-04-10 Zoltan Varga <vargaz@freemail.hu>
6195 * class.c (class_compute_field_layout): Fix #74549.
6197 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6199 * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6200 use 2 connected sockets instead.
6202 2005-04-08 Miguel de Icaza <miguel@novell.com>
6204 * mono-config.c: Add new entry point for mkbundle
6205 mono_config_parse_memory.
6207 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6209 * threadpool.c: removed another unused function.
6211 2005-04-08 Ankit Jain <radical@corewars.org>
6213 * reflection.c (get_default_param_value_blobs): Add 'types'
6214 parameter to get the types encoded in the constant table.
6215 (mono_param_get_objects): Use the type from the constant table,
6216 not the type of the parameter, when creating default values.
6217 Handle null default values correctly.
6219 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6226 * socket-io.c: removed dead code for async IO.
6228 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6230 * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6232 * threadpool.c: intercept socket async. calls and pass them to a thread
6233 that is polling and dispatching the job items to the threadpool as
6234 socket become ready. Fixes bugs #71217, #71933.
6236 * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6237 between char and short/ushort arrays.
6239 * socket-io.c: remove dead code.
6241 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
6244 icall.c : removed InternalToUpper_Comp() and
6245 InternalToLower_Comp().
6247 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
6249 * char-conversions.h : The tables were incorrectly generated. Should
6250 be generated against invariant culture.
6252 2005-04-04 Zoltan Varga <vargaz@freemail.hu>
6254 * object.c (mono_runtime_invoke_array): Fix return value when
6255 passing pre-created valuetype objects to ctors.
6257 * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer
6258 (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6261 2005-03-30 Sebastien Pouliot <sebastien@ximian.com>
6263 * domain.c: removed g_assert for runtimesecurityframe_class. This is
6264 only used with --security and hides the wrong corlib version error.
6266 2005-03-30 Joshua Tauberer <tauberer@for.net>
6268 * class.c: Changed mono_class_name_from_token so that types
6269 outside of a namespace don't have an initial period. Improved
6270 the g_warning message used in _mono_class_get when loading
6272 * assembly.c: In mono_assembly_load_reference, when an assembly
6273 can't be found, "No such file or directory" is misleading and
6274 unhelpful because a few paths were checked for the presence of
6275 the assembly. When that happens (ENOENT), display a nicer
6276 message indicating the directories that were searched. In all
6277 cases, the warning is made easier to read for non-hackers.
6279 2005-03-29 Sebastien Pouliot <sebastien@ximian.com>
6281 * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6283 * appdomain.h|domain.c: Removed inline from functions.
6284 * appdomain.c: Reduced warnings when compiling on windows.
6285 * icall.c: Fixed output_debug declaration to gunichar2*.
6286 * mono-config.c: Reduced warnings when compiling on windows.
6287 * rand.c: Added missing "windows.h". Added missing return value.
6288 * rawbuffer.c: Added missing winsock2.h for windows.
6289 * sysmath.h: Added mono-compiler.h header to allow/ease
6290 compilation with non-GCC compilers.
6291 * threads.c: Fixed declarations to compile with VS.NET C compiler.
6292 Removed cast warnings.
6294 Adapted from the work of J Lothian (for VC6).
6296 2005-03-29 Zoltan Varga <vargaz@freemail.hu>
6298 * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6301 2005-03-27 Zoltan Varga <vargaz@freemail.hu>
6303 * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6306 2005-03-27 Raja R Harinath <harinath@gmail.com>
6308 * Makefile.am (assembliesdir): Fix. If it is arch-dependent it
6309 has to be in $(exec_prefix). $(prefix) is for arch-independent
6310 stuff, and it would probably use $(prefix)/share rather than
6313 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6315 * console-io.c: added 2 includes that might be missing.
6317 2005-03-24 Zoltan Varga <vargaz@freemail.hu>
6319 * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6322 * reflection.c (create_custom_attr): Allocate the params array using
6323 alloca so it gets GC tracking.
6325 2005-03-23 Chris Toshok <toshok@ximian.com>
6327 * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6330 2005-03-24 Raja R Harinath <rharinath@novell.com>
6332 * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6333 changes to pick up any changes in prefix, etc.
6335 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
6337 * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6339 * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6340 * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6342 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
6344 * class-internals.h object-internals.h class.c reflection.c: Extend the
6345 mono_lookup_dynamic_token () function to return the class of the
6348 * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6351 2005-03-23 Sebastien Pouliot <sebastien@ximian.com>
6353 * security-manager.c: Skip inheritance checks for intra-corlib
6354 class inheritance and method overrides. This skips a lot of checks
6355 and (anyway) permissions cannot work until corlib is loaded.
6357 2005-03-23 Martin Baulig <martin@ximian.com>
6359 * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6360 MONO_TYPE_GENERICINST.
6362 2005-03-23 Martin Baulig <martin@ximian.com>
6364 * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6366 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6368 * class.c: added locking comments to some functions.
6369 Cache the interface offsets arrays (saves about 20 KB
6370 of runtime memory in a typical app).
6371 Reduce the time overhead in mono_class_setup_supertypes ().
6373 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6375 * icall.c: speedup and fix leaks in GetMethodsByName and
6376 GetPropertiesByName.
6378 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6380 * reflection.c: some locking fixes.
6382 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6384 * metadata.c: added missing break in case statement.
6386 2005-03-22 Zoltan Varga <vargaz@freemail.hu>
6388 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6389 typedbyref return values. Fixes #73941.
6391 2005-03-17 Sebastien Pouliot <sebastien@ximian.com>
6393 * security-manager.c|h: Added demandunmanaged method and
6394 suppressunmanagedcodesecurity class to MonoSecurityManager.
6395 Renamed aptc class to allowpartiallytrustedcallers.
6397 2005-03-17 Martin Baulig <martin@ximian.com>
6399 * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6401 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6403 * file-io.c: disabled file async. IO using aio_*. It uses the
6404 threadpool now. Workaround for bug #73718.
6406 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6408 * assembly.h, mono-config.c: added code to deal with bundled configs
6409 for bundled assemblies.
6411 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6413 * *.c, private.h: cleanup, removing old private.h header file.
6415 2005-03-16 Zoltan Varga <vargaz@freemail.hu>
6417 * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6418 and throw_on_unmappable_char attributes.
6420 2005-03-13 Sebastien Pouliot <sebastien@ximian.com>
6422 * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6423 _ProcessName_internal.
6425 2005-03-13 Zoltan Varga <vargaz@freemail.hu>
6427 * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6430 * icall.c threads.c threads-types.h: Remove slothash icalls as they
6433 2005-03-11 Zoltan Varga <vargaz@freemail.hu>
6435 * object.c (compute_class_bitmap): Add support for generics. Fixes
6438 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
6440 * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6442 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6444 * filewatcher.c: commented out the code for windows watcher, as we don't
6445 use it (we use the managed implementation instead).
6447 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
6449 * object-internals.h (MonoThread): Remove 'unused1' field.
6451 * appdomain.c: Bump corlib version.
6453 * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6455 * reflection.c (mono_reflection_create_runtime_class): Remove the
6456 AssemblyBuilder.Save optimization since it causes too many problems.
6458 2005-03-10 Sebastien Pouliot <sebastien@ximian.com>
6460 * exception.c|h: Added mono_get_exception_reflection_type_load to
6461 create a ReflectionTypeLoadException object.
6462 * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6463 to return NULL is a InheritanceDemand fails during reflection. Updated
6464 ves_icall_System_Reflection_Assembly_GetTypes to throw a
6465 ReflectionTypeLoadException if an InheritanceDemand fails during
6466 reflection. Added icall mapping for GetLinkDemandSecurity.
6467 * security-manager.c|h: Added ves_icall_System_Security_
6468 SecurityManager_GetLinkDemandSecurity internal call to return the
6469 class and methods permissions set for a LinkDemand. Removed unused
6470 fields in MonoSecurityManager.
6472 2005-03-10 Martin Baulig <martin@ximian.com>
6474 * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6475 it's a generic instance.
6477 2005-03-09 Zoltan Varga <vargaz@freemail.hu>
6479 * reflection.c (mono_get_object_from_blob): Applied patch from
6480 Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6482 * class.c (mono_class_is_assignable_from): Another try at fixing
6483 #73469 without breaking anything.
6485 2005-03-08 Zoltan Varga <vargaz@freemail.hu>
6487 * class.c: (mono_class_is_assignable_from): Revert the last changes
6488 since they don't work with generics.
6490 * class.c (mono_class_is_assignable_from): Fix build bustage.
6492 * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6493 the managed IsAssignableFrom method. Fixes #73469.
6495 * reflection.c (mono_reflection_call_is_assignable_from): New helper
6498 2005-03-04 Zoltan Varga <vargaz@freemail.hu>
6500 * object.c (mono_load_remote_field_new): Fix returning uninitialized
6501 memory when the remoting callback does not sets the out arguments.
6504 * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6507 * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6509 * object-internals.h (MonoStackFrame): Sync with managed object layout.
6511 * appdomain.c: Bump corlib version.
6513 2005-03-03 Zoltan Varga <vargaz@freemail.hu>
6515 * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6518 * threads.c (mono_thread_attach): Detect threads which are not started
6519 by the GC pthread wrappers.
6521 2005-03-03 Sebastien Pouliot <sebastien@ximian.com>
6523 * icall.c: Added new icall for RNG.
6524 * rand.c|h: Added new icall to open the RNG. This allows to share a
6525 single handle on Linux to access /dev/urandom and fix #73183.
6527 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6529 * object.c: setting the new vtable in a transparent proxy object must
6530 not change the GC descriptor.
6532 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6534 * object.c: fixed compilation without GCJ support.
6535 * reflection.c: for runtime-created types ensure klass->has_references
6536 is correct (bug #73215).
6538 2005-03-02 Martin Baulig <martin@ximian.com>
6540 * class.c (mono_class_is_assignable_from): Make this work if
6541 `oklass' is a generic instance; fixes #72831.
6543 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
6545 * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6548 * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6550 * marshal.c: Reorganize native->managed marshalling code to also use
6551 the emit_marshal_... functions.
6553 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6555 * object.c: typed allocs have issues with bitmap sizes > 30,
6556 so check for max_set >= 30.
6558 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
6560 * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6561 managed code. Fixes #73012.
6563 * metadata.h (MonoMarshalSpec): Add elem_mult field.
6565 * metadata.c reflection.c: Load/Emit elem_mult as well.
6567 * metadata.h (MonoMarshalSpec): Add comment.
6569 * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6571 * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6572 num_elem to -1 if not given.
6574 * object-internals.h (MonoReflectionMarshal): Add has_size field.
6576 * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6579 2005-03-01 Marek Safar <marek.safar@seznam.cz>
6581 * null-gc.c (mono_gc_free_fixed): Was not compilable.
6583 2005-02-28 Zoltan Varga <vargaz@freemail.hu>
6585 * reflection.c (encode_marshal_blob): Encode param_num field as well.
6587 * object-internals.h (MonoReflectionMarshal): Add param_num field.
6589 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6591 * object.c: generalized the reference bitmap creation
6592 and added hooks for the new GC.
6593 * class-internals.c: removed the gc_bitmap field from MonoClass.
6595 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6597 * domain.c: help the compiler to produce better code
6598 in mono_jit_info_table_find ().
6600 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6602 * object.c: make all allocations look typed.
6604 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6606 * socket-io.c: load Mono.Posix if it's not loaded already
6609 2005-02-24 Martin Baulig <martin@ximian.com>
6611 * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6612 * reflection.c (dup_type): Likewise.
6614 2005-02-24 Zoltan Varga <vargaz@freemail.hu>
6616 * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6617 Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6619 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6621 * domain.c, threads.c, object-internals.h: make the critical thread
6622 local vars use the fast access mode (even when we're compiled in
6623 a lib). Provide accessors to be used by the jit during codegen.
6625 2005-02-24 Carlos Alberto Cortez <calberto.cortez@gmail.com>
6627 * appdomain.c: Changed hook functios behavior to include
6628 support for the reflection only assemblies. Some icalls were changed
6629 to support the mentioned assemblies too. Signatures of static methods
6630 try_assembly_resolve and real_load now have an additional parameter:
6633 * assembly.c: General changes to mono_assembly_ methods to support
6634 reflection only api. Functions mono_assembly_open, mono_assembly_load,
6635 mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6636 suffix, to support an additional gbool parameter to specify whether
6637 the assembli is reflection only or not. Created some new hook functions
6638 to add support for reflection only assemblies. Signatures of static
6639 methods load_in_path, search_loaded, and mono_assembly_load_from_gac
6640 have now an additional parameter: refonly.
6642 * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6643 indicating whether the assembly is reflection only or not.
6645 * exception.c: Add mono_get_exception_invalid_operation.
6647 * icall.c: Throw an InvalidOperationException when trying to invoke
6648 a property/method/event, or trying to set/get the value of a field.
6649 Also add an icall to retrieve the ref_only flag to the
6650 MonoReflectionAssembly.
6652 2005-02-23 Chris Toshok <toshok@ximian.com>
6654 Part of fix for #72827.
6655 * mono-debug.c (mono_debug_add_method): add lexical block data to
6656 the info we write. Kind of a hack at the moment - we copy the
6657 lexical block info from the MonoDebugMethodInfo to the
6658 MonoDebugMethodJitInfo here, before writing it.
6659 (mono_debug_read_method): read the lexical block info.
6661 * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6663 * debug-mono-symfile.h: add lexical block support.
6665 * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6668 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
6670 * loader.c (mono_lookup_pinvoke_call): Fix warning.
6672 * object.c (mono_runtime_free_method): Call mono_free_method () and
6673 put the TODOs there.
6675 * loader.c (mono_free_method): Free up most memory allocated for
6678 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6680 * reflection.c: properly flag a Type argument to a
6681 named custom attr value (bug #72248).
6683 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6685 * reflection.c: reduce code duplication in named custom
6688 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6690 * reflection.c: properly encode custom attrs of type object
6693 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
6695 * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6697 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6699 * socket-io.c: load System.dll if it's not loaded already
6700 (bug #72850 and #70477).
6702 2005-02-21 Martin Baulig <martin@ximian.com>
6704 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6707 2005-02-21 Martin Baulig <martin@ximian.com>
6709 * reflection.c (mono_image_build_metadata): We also need to
6710 "fixup" the MethodImpl table after we computed the final method
6711 indices. Call fixup_methodimpl() to do that.
6712 (fixup_methodimpl): New private method.
6714 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6716 * assembly.c: special case mscorlib.dll (bug#72536),
6717 patch from Carlos Alberto Cortez.
6719 2005-02-20 Zoltan Varga <vargaz@freemail.hu>
6721 * threads-types.h threads.c: Fix build bustage.
6723 * threads.c: Use a union for long<->double conversions.
6725 * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6726 functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6728 * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock
6729 containing the checkpoint call with NOT_TAKEN.
6731 * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt
6732 checkpoint before pushing the arguments, so they won't have to be
6735 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6737 * domain.c, assembly.c, domain-internals.h: make some data
6738 const and relocation-free.
6740 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6742 * object.c, appdomain.c, class-internals.h: introduce the
6743 MonoClassRuntimeInfo structure to hold the info needed to
6744 use a class at runtime. Made mono_class_vtable() lock-free
6745 for all the appdomains.
6747 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6749 * metadata-internals.h, image.c: introduce a per-image mempool to
6750 be used for memory that has the same lifetime as the image.
6752 2005-02-18 Lluis Sanchez Gual <lluis@novell.com>
6754 * domain.c: In mono_init_internal(), instead of selecting the first
6755 runtime version supported by an executable, get a list of all
6756 supported versions and select the one for which an mscorlib exists
6757 (since even if the runtime supports a given version, it doesn't mean
6758 that the framework for that version is installed).
6759 Modified get_runtimes_from_exe to support this behavior.
6760 In supported_runtimes, added information about additional system
6763 * assembly.c: Added support for more than one system assembly version
6764 per runtime version. Updated the assembly list.
6765 In mono_assembly_remap_version, removed the initial version check,
6766 since we don't know to which version we need to compare until we
6767 get the version set on which the assembly is based.
6768 Moved the code for loading corlib into the new method
6769 mono_assembly_load_corlib(), so it can be used by the initialization
6772 * domain-internals.h: Updated data structures and added declaration
6773 for mono_assembly_load_corlib.
6775 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
6777 * reflection.c (resolve_object): Fix the creation of the signature in
6778 the SignatureHelper case.
6780 * assembly.c (mono_assembly_remap_version): Fix binary search.
6782 2005-02-17 Sebastien Pouliot <sebastien@ximian.com>
6784 * class.c: Added inheritance check when a method is overloaded (from a
6785 virtual method or when implementing an interface) and when a class is
6786 inherited. Added functions to set a failure for a class and to
6787 retreive the exception from a failure.
6788 * class-internals.h: Added fields to MonoClass to keep the exception
6789 information status for inheritance (or other exceptions) to be thrown
6790 later (i.e. not at load time).
6791 * object.c: Throw the inheritance SecurityException when a type is to
6792 be created with either class or method inheritance violations.
6793 * reflection.c|h: Fix when getting declsec from a class. Removed
6794 unrequired code for class. Improved sanity in parameter naming.
6795 * security-manager.c|h: Added functions to check for class and method
6798 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
6800 * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6801 and has_finalize in dynamic types as well.
6803 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
6805 * culture-info-table.h : fixed currency format for en-GB (and so on).
6807 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6809 * gc.c: ensure the GC handles never have 0 as a value.
6811 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
6813 * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6814 a pointer to a struct to unmanaged code. Fixes #72625.
6816 2005-02-16 Martin Baulig <martin@ximian.com>
6818 * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6820 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
6822 * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6824 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
6826 * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6828 * marshal.c (mono_ftnptr_to_delegate): If the delegate has the
6829 UnmanagedFunctionPointerAttribute, use it for determining calling convention
6832 * reflection.c (mono_custom_attrs_get_attr): New helper function.
6834 * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6836 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6838 * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6839 changes to make the current context a field in MonoThread.
6841 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
6843 * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6846 * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6847 extracted from mono_marshal_get_native_wrapper.
6849 * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6850 to create wrappers around native functions.
6852 * marshal.c (mono_ftnptr_to_delegate): Add support for creating
6853 delegates for arbitrary function pointers. Fixes #71472.
6855 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6857 * threads.c: cleaned up the code a little.
6859 2005-02-15 Martin Baulig <martin@ximian.com>
6861 * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6864 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6865 allocate larger chunks if needed.
6867 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
6869 * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6872 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6874 * domain.c: keep the domains in an array and ensure the domain ids
6875 are kept small, so they can be used as indexes to domain-specific data
6876 with a small memory overhead.
6878 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
6880 * icall.c: Handle byref types in Type icalls. Fixes #72544.
6882 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6884 * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6886 2005-02-13 Zoltan Varga <vargaz@freemail.hu>
6888 * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6890 * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6893 * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6895 2005-02-12 Ben Maurer <bmaurer@ximian.com>
6897 * domain-internals.h: add the hashtable here.
6899 * class-internals.h: Remove `info' from MonoMethod
6901 * domain.c: Add a new hashtable, jit_trampoline_hash
6903 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6905 * object.c: don't set the value of static fields
6908 2005-02-11 Martin Baulig <martin@ximian.com>
6910 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6911 (mono_debug_add_method): Silently ignore the method if it's too big.
6912 (mono_debug_add_type): Likewise.
6914 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6916 * threads.c, appdomain.c: remove #ifdefs from the code.
6918 2005-02-10 Sebastien Pouliot <sebastien@ximian.com>
6920 * metadata-internals.h: Added flags to MonoAssembly to cache the most
6921 common security informations. This allows us to stay in unmanaged code
6922 when doing LinkDemand and it's special cases (except for the first
6923 time for initialization). The flags a very much used with --security.
6924 * reflection.c|h: Added code to get declarative security attributes
6925 for LinkDemand and InheritanceDemand. This required to refactor the
6926 existing code for Demand.
6927 * security-manager.c|h: Added new method fields for the special cases
6930 2005-02-10 Martin Baulig <martin@ximian.com>
6932 * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6933 (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6935 2005-02-10 Martin Baulig <martin@ximian.com>
6937 * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6938 debugging code; this is almost a complete rewrite.
6940 * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6942 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6944 * domain.c, object.h: expose mono_string_equal () and
6945 mono_string_hash ().
6946 * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6947 it's implemented in managed code.
6949 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6951 * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6952 lo leak objects between appdomains.
6954 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6956 * assembly.c: old compilers compilation fix from
6957 robertj@gmx.net (Robert Jordan).
6959 2005-02-09 Ben Maurer <bmaurer@ximian.com>
6961 * class-internals.h: Little reminder for the future.
6963 * debug-helpers.c: Fix up wrapper_type_names
6965 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6967 * image.c, metadata-internals.h: when loading an image from a file,
6968 mmap all of it and use the same codepaths as when using a
6969 in-memory image: the code is simpler and we use less memory
6970 (both writable and readonly).
6972 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6974 * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6975 API to alloc runtime data structures that need to be tracked by the
6976 GC and contain pointers.
6977 * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6978 make the code more readable and eventually use a different GC.
6980 2005-02-09 Zoltan Varga <vargaz@freemail.hu>
6982 * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6985 2005-02-09 Lluis Sanchez Gual <lluis@novell.com>
6987 * object.c: In release_type_locks(), don't release the cctor lock
6988 if it has already been released. This fixes a crash in the
6991 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6993 * gc.c, marshal.c, icall.c: register a delegate for finalization
6994 only when the native function pointer has been allocated for it.
6996 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6998 * object.c: cleaned up some code, allocate objects that are
6999 pointer free with the atomic malloc variant. Allocate memory
7000 for static data from the mempool if it's pointer-free.
7001 Allocate the bounds array at the end of the array data, when needed.
7002 * object-internals.h, object.h: move a private function in a private
7004 * class.c: handle missing case in tracking references in fields.
7006 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7008 * class.c, class-internals.h: keep track if a type has
7009 reference fields in either the instance or static fields.
7011 2005-02-07 Lluis Sanchez Gual <lluis@novell.com>
7013 * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
7014 and renamed to MonoRuntimeInfo. Added fields to store the expected
7015 framework assembly version. Changed mono_get_framework_version and
7016 mono_get_runtime_version for a single mono_get_runtime_info method.
7018 * assembly.c: Added method to remap system assembly versions to the
7019 current executing runtime version. Removed old mapping code.
7020 Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
7022 * icall.c, reflection.c: Track api changes.
7024 2005-02-06 Miguel de Icaza <miguel@novell.com>
7026 * loader.c (method_from_memberref): Improve error reporting,
7027 produce the class name instead of the typeref/typedef index.
7029 2005-02-07 Zoltan Varga <vargaz@freemail.hu>
7031 * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
7033 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
7035 * loader.c (mono_lookup_pinvoke_call): Allow for combination of
7036 stdcall and charset name mangling. Reorganize the code and add
7039 2005-02-05 Ben Maurer <bmaurer@ximian.com>
7041 * monodiet.c: More iters!
7043 * marshal.c: Iter usage.
7045 * icall.c: Iter usage.
7047 * object.c: Use iters.
7049 * debug-helpers.c: More iters
7051 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
7053 * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
7056 2005-02-05 Ben Maurer <bmaurer@ximian.com>
7058 * mono-debug-debugger.c: use iters
7060 * class.c, class-internals.h: mono_class_setup_events is static
7063 * All callers: use iters
7065 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
7067 * class.c string-icalls.c marshal.c reflection.c: Applied patch from
7068 Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
7070 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
7072 * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
7074 * marshal.h: Add prototypes for ldfld/stfld_remote.
7076 * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
7077 this is called during startup.
7079 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
7081 * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
7082 MonoThreadsSync struct private in monitor.c. Changed the way
7083 MonoThreadsSync is allocated so it's faster and there is no
7084 need to keep track of it with a finalizer and it uses less memory.
7085 This also finally allows us to allocate mono objects as ptrfree when
7086 there are no reference fields.
7088 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7090 * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7091 disappearing link to the GC interface and use them to simplify
7094 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
7096 * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7097 stfld_remote which call mono_load/store_field_new. This allows methods
7098 calling ldfld/stfld wrappers to be AOTed.
7100 * console-io.c: Include sys/filio.h under solaris.
7102 * console-io.c: Include curses.h if needed correctly.
7104 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
7106 * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7107 method->klass as well.
7109 * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7111 * class.c (mono_class_init): Switch on lazy initialization of
7114 * class.c (mono_class_get_finalizer): Handle the case when the
7115 finalizer is inherited.
7117 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7119 * console-io.c: <curses.h> is needed by term.h on solaris.
7121 2005-02-03 Ben Maurer <bmaurer@ximian.com>
7123 * icall.c, class-internals.h, monodiet.c, class.c: Remove
7124 mono_class_setup_properties where possible. Remove this ftn from
7125 the header file, and make it static.
7127 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
7129 * loader.c: Add missing setup_... call.
7131 * class.c: Add missing setup_... calls.
7133 * class.c (mono_class_init): Switch on lazy initialization of
7136 * class.c (mono_class_init): Fix generics broken by the recent changes.
7138 * monodiet.c (handle_type): Add missing setup_... calls.
7140 * class.c: Back out garbage in previous patch.
7142 * class.c: Add missing setup_... calls.
7144 * class.c (mono_class_get_method_from_name_flags): Avoid calling
7145 mono_class_setup_methods () if possible.
7147 * class-internals.h (MonoClass): Add 'has_cctor' flag.
7149 * class-internals.h (MonoCachedClassInfo): New structure.
7151 * class.c: Initialize properties and events fields of MonoClass lazily.
7153 * class.c: Add infrastructure for lazily initializing the methods and
7154 vtable fields of MonoClass. Not yet used.
7156 * class.c (mono_class_get_finalizer): New helper function.
7158 * class.c: Add infrastructure for loading some class related data from
7161 * object.c: Add infrastructure for initializing the vtable from data
7164 * gc.c (run_finalize): Use mono_class_get_finalizer ().
7166 * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7167 appropriate initialization function before accessing parts of the
7168 MonoClass structure.
7170 * marshal.c: Fix warnings.
7172 * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7174 * mono-debug-debugger.c (get_exception_message): Use
7175 mono_class_get_method_from_name_flags ().
7177 2005-02-02 Ben Maurer <bmaurer@ximian.com>
7179 * reflection.c, appdomain.c: Replace a few manual searches that
7180 Zoltan missed. (Paolo approved this part of my initial patch).
7182 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7184 * profiler.c: disable recording statistical events at report time.
7186 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7188 * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7189 to byteswap arrays of enum values, too (bug #72080).
7191 2005-02-02 Zoltan Varga <vargaz@freemail.hu>
7193 * appdomain.c (set_domain_search_path): Allow this to be called if
7194 domain->setup is not yet set.
7196 * loader.c (mono_method_get_index): New helper function.
7198 * loader.c reflection.c: Use mono_method_get_index ().
7200 * class.c (mono_class_get_method_from_name_flags): New helper method.
7202 * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7205 * class.c (mono_class_get_cctor): New helper method.
7207 * string-icalls.c object.c class.c marshal.c reflection.c: Use
7208 mono_class_get_method () to look up methods.
7210 2005-02-01 Miguel de Icaza <miguel@novell.com>
7212 * console-io.c: Fix the build, this should work on Windows.
7214 2005-01-31 Ben Maurer <bmaurer@ximian.com>
7216 * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7217 be set to null to keep things valid
7219 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7221 * icall.c: added Console 2.0 icalls.
7222 * Makefile.am: added console-io.[ch]
7223 * console-io.[ch]: internal calls for Console 2.0 API.
7225 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7227 * class.c: make sure we consider all the interfaces
7228 when calculating max_interface_id (bug found by
7229 Jeroen Frijters running ikvm).
7231 2005-01-31 Zoltan Varga <vargaz@freemail.hu>
7233 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7234 valuetype fields to null.
7236 * object.c (set_value): Ditto. Fixes #71669.
7238 2005-01-31 Martin Baulig <martin@ximian.com>
7240 * metadata.c (mono_metadata_has_generic_params): New public
7241 function; checks whether something is a generic method.
7243 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7245 * appdomain.c: fix infinite recursion when adding assemblies.
7247 2005-01-30 Sebastien Pouliot <sebastien@ximian.com>
7249 * object.c: Fix small typo to return all items for Environment.
7252 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7254 * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7255 reflection.c: more domain and assembly-unload related fixes
7256 and memory leaks plugs.
7258 2005-01-30 Zoltan Varga <vargaz@freemail.hu>
7260 * 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.
7262 2005-01-29 Ben Maurer <bmaurer@ximian.com>
7264 * loader.c (mono_method_signature): Make this method lazy
7265 (mono_get_method_from_token): Don't computate the signature here.
7267 Doing this saves quite a bit of memory. I got 90 kb on starting up
7268 monodoc. It should also save some disk reads on startup.
7270 * *: MonoMethod->signature might be NULL now. You *MUST* use
7271 mono_method_signature.
7273 2005-01-29 Zoltan Varga <vargaz@freemail.hu>
7275 * object.c (mono_runtime_get_main_args): Return an array from the
7276 current domain here. Fixes #71938.
7278 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7280 * monitor.c: formatting changes to comply with the
7281 mono coding style and remove #ifdefs from the code.
7283 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7285 * metadata.c, private.h: remove some unneeded data
7286 and use a more compact representation for table schemas.
7288 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7290 * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7291 to get a better distribution in hash tables.
7292 * *.c: use mono_aligned_addr_hash() where appropriate.
7293 * assembly.c: make var static.
7295 2005-01-28 Zoltan Varga <vargaz@freemail.hu>
7297 * domain-internals.h: Put MonoJitInfo on a diet.
7299 * domain.c: Fix a warning.
7301 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7303 * gc.c: rework the gc handles code to reuse handles
7306 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7308 * domain.c: fixed long standing bug in mono_string_equal() which
7309 was brought to light with the ldstr changes.
7311 2005-01-26 Sebastien Pouliot <sebastien@ximian.com>
7313 * reflection.c: Remove warning by adding missing include for marshal.h
7315 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7317 * domain.c, object.c: change the ldstr_table to hold
7318 MonoString* as keys: makes the runtime isinterned lookup
7319 faster and simplifies memory management.
7321 2005-01-25 Sebastien Pouliot <sebastien@ximian.com>
7323 * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7324 possible to add imperative security checks before calling the icall.
7325 * reflection.c: Return security attributes on the original MonoMethod
7326 (and not the wrapped one). This fix permissions on icalls.
7328 2005-01-25 Dick Porter <dick@ximian.com>
7330 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7331 the check for mktime() support actually test the mktime() return
7332 value. "Fixes" bug 71682, though the output is still different to
7335 2005-01-25 Martin Baulig <martin@ximian.com>
7337 * class.c (mono_class_is_assignable_from): Make this work for
7340 2005-01-24 Ben Maurer <bmaurer@ximian.com>
7342 * marshal.c (mono_string_utf8_to_builder)
7343 (mono_string_builder_to_utf16): We might not have ownership of the
7344 string. In thise case, we need to create a new buffer.
7346 * object-internals.h (mono_stringbuilder_capacity): sb->str might
7347 be null, in which case, use the default capacity.
7349 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7351 * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7352 GC events to the profiler.
7354 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7356 * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7357 if you don't want the GC to run.
7359 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7361 * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7362 start providing a GC API and keeping different implementations in
7364 * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7366 2005-01-22 Ben Maurer <bmaurer@ximian.com>
7368 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7369 mmap rather than allocating a huge buffer.
7370 (mono_debug_close_mono_symbol_file): Free the buffer allocated
7373 2005-01-22 Sebastien Pouliot <sebastien@ximian.com>
7375 * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7376 and CheckExecutionRights.
7377 * reflection.c|h: Keep the index of the declarative security to be
7378 used, instead of the pointer, when AOT compiler is used. Also add
7379 class initialization when requesting demands.
7380 * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7381 CheckExecutionRights. Both properties are now FALSE by default, and
7382 unmodifiable, unless the --security option is used.
7384 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7386 * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7387 reflection.c: properly refcount images and assemblies, many leaks fixed.
7389 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7391 * threadpool.c: increase the timeout for threads in the thread pool to
7392 10s. Fixes bug #67159.
7394 2005-01-20 Bernie Solomon <bernard@ugsolutions.com>
7396 * class-internals.h: Sun's compiler insists on explicit
7397 signed on bit fields to handle then correctly.
7399 2005-01-19 Miguel de Icaza <miguel@ximian.com>
7401 * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7402 Make the size of the array fit only the number of invalid path
7405 * class.c (_mono_class_get): Improve the error reporting when a
7406 class referenced is not found, to assist debugging.
7408 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7410 * threads.c: fix off-by-one error.
7411 * domain.c: free data allocated in the domain.
7413 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
7415 * reflection.c (mono_method_body_get_object): Fill out exception info
7418 * object-internals.h: Add MonoReflectionExceptionHandlingClause
7421 2005-01-19 Martin Baulig <martin@ximian.com>
7423 * loader.c (mono_get_method_constrained): Make this work again.
7425 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
7427 * object-internals.h (_MonoReflectionMethodBody): Make local_index a
7428 guint16 to match the managed side.
7430 * reflection.c (mono_reflection_body_get_object): Fill out local
7433 * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7436 * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7437 'local_var_sig_token'.
7439 2005-01-18 Zoltan Varga <vargaz@freemail.hu>
7441 * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks
7444 * reflection.c (mono_method_body_get_object): Handle abstract and
7447 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7449 * marshal.c, loader.c, class-internals.h, reflection.c:
7450 store the emthod data for a wrapper in an array instead of a list.
7452 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7454 * marshal.c: change the code to allocate memory more
7455 conservatively for method wrappers.
7457 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7459 * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7460 fields from MonoClass to the marshal info structure where they belong.
7462 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7464 * class.c, object.c, class-internals.h, marshal.c: rearrange
7465 some fields and tweak some types to lower memory usage.
7467 2005-01-17 Zoltan Varga <vargaz@freemail.hu>
7469 * threads.c (signal_thread_state_change): Handle the case when the
7470 target thread is the current thread.
7472 * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7474 * marshal.c: Rename emit_ptr_to_str_conv and its pair to
7475 emit_ptr_to_object_conv.
7477 * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7478 marshalling. Fixes #71352.
7480 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7482 * metadata.h, blob.h: move table enum to blob.h so it can be included
7484 * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7485 cut the size of MonoImage/MonoDynamicImage.
7487 2005-01-16 Zoltan Varga <vargaz@freemail.hu>
7489 * profiler.c (mono_profiler_install_simple): Fix default arguments.
7491 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7493 * reflection.c, reflection.h, icall.c: add a function to check
7494 if an attribute type is defined for a metadata object.
7496 2005-01-14 Lluis Sanchez Gual <lluis@novell.com>
7498 * object-internals.h: Added some needed fields from StringBuilder class.
7499 * marshal.c: Set the maxCapacity when creating a StringBuilder.
7501 2005-01-13 Zoltan Varga <vargaz@freemail.hu>
7503 * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7504 threads before shutting down the runtime.
7506 * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7508 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7510 * object-internal.h, threads.c: implement stacksize and
7511 parameterized thread start functionality (requires
7512 matching corlib). Marked broken code for later removal.
7514 2005-01-12 Martin Baulig <martin@ximian.com>
7516 * class-internals.h (MonoGenericClass): Moved the `initialized'
7517 flag to MonoDynamicGenericClass, removed `init_pending'.
7518 (MonoGenericInst): Added `is_reference' flag.
7520 2005-01-12 Zoltan Varga <vargaz@freemail.hu>
7522 * reflection.c (mono_image_create_pefile): Only set the pe_offset
7523 inside the MSDOS header. Fixes #71201.
7525 * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7527 (mono_domain_finalize): Ditto.
7529 2005-01-12 Martin Baulig <martin@ximian.com>
7531 * class.c (mono_get_shared_generic_class): Use the cache for
7532 non-dynamic generic classes.
7534 * class-internals.h (mono_class_create_generic_2): Removed
7535 function prototype, this function is now static inside class.c.
7537 * class.c (mono_class_create_generic_2): Made this static, only
7538 call it from mono_class_init() and mono_class_setup_parent().
7539 (collect_implemented_interfaces_aux): Call mono_class_init() on
7540 the interfaces we collect.
7541 (mono_class_setup_vtable): Call mono_class_init (class->parent).
7543 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
7545 * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7546 it a real thread handle.
7548 * domain-internals.h: Move exvar_offset from MonoJitInfo to
7549 MonoJitExceptionInfo, since each catch clause needs its own variable.
7551 2005-01-11 Dick Porter <dick@ximian.com>
7553 * image.c (mono_pe_file_open): New variant on mono_image_open()
7554 that does not set up the CLI metadata; used for FileVersionInfo so
7555 it can get the data for windows binaries too.
7557 * process.c (process_read_string_block): Don't read off the end of
7558 the StringTable block.
7560 These both fix bug 70766.
7562 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7564 * gc.c: set some fields to NULL at GC cleanup time.
7565 * threads.c: if we quit the main thread, call exit ().
7567 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
7569 * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7571 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7573 * threads.h, threads.c, object.c: added accessor and settor for
7574 main_thread. Handle it specially when exiting from it: wait
7575 for other foreground threads to exit.
7577 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7579 * process.c, verify.c: remove some bloat.
7581 2005-01-09 Zoltan Varga <vargaz@freemail.hu>
7583 * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7584 the calling convention to cdecl under win32.
7586 2005-01-08 Ben Maurer <bmaurer@ximian.com>
7588 * object.c (mono_object_get_size): New function to get the size of
7591 * profiler.c (simple_allocation): Use above.
7593 2005-01-08 Sebastien Pouliot <sebastien@ximian.com>
7595 * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7596 ves_icall_System_AppDomain_getRootDomain (as it's not required to
7597 get an appdomain by it's id and we can't assume the root's id is 0).
7598 * domain-internals.h: Change the function prototype to match.
7599 * icall.c: Change the icall table for AppDomain.
7601 2005-01-08 Miguel de Icaza <miguel@ximian.com>
7603 * locales.c (string_invariant_compare_char): Only compute
7604 GUnicodeTypes in the case where we need them. Test for ordinality
7605 first and return if so.
7610 * FIXME: here we must use the information from c1type and c2type
7611 * to find out the proper collation, even on the InvariantCulture, the
7612 * sorting is not done by computing the unicode values, but their
7613 * actual sort order.
7616 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7618 * loader.c: for P/Invoke methods, allow the "Internal" shared
7619 library name to refer to the calling process symbol namespace.
7621 2005-01-07 Sebastien Pouliot <sebastien@ximian.com>
7623 * Makefile.am: Add the security manager to the build.
7624 * security-manager.c|h: New. Initialization of the security manager.
7626 2005-01-07 Dick Porter <dick@ximian.com>
7629 * monitor.c: Update thread state during Monitor and WaitHandle
7630 waits. Fixes bug 71031.
7632 2005-01-07 Zoltan Varga <vargaz@freemail.hu>
7634 * reflection.c (property_encode_signature): Correctly handle when the
7635 property has no methods.
7637 2005-01-06 Zoltan Varga <vargaz@freemail.hu>
7639 * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7641 * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7642 fields from mb, not rmb. Fixes #71017.
7644 * marshal.c (emit_ptr_to_str_conv): Add support for
7645 ByValTStr -> string conversion. Fixes #71015.
7647 * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7649 * mempool.c (mono_mempool_contains_addr): New helper function.
7651 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
7653 * metadata.c (mono_metadata_compute_size): Fix size calculation of
7654 HasSematics encoded fields.
7656 * metadata.c (mono_type_to_unmanaged): Improve error message for
7657 invalid string marshalling.
7659 * metadata.c: Fix warnings.
7661 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7663 * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7666 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
7668 * domain.c object.c domain-internals.h: Revert part of r38077 since the
7669 keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7672 2005-01-03 Zoltan Varga <vargaz@freemail.hu>
7674 * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7675 so methods containing these can be AOTed.
7677 2005-01-03 Martin Baulig <martin@ximian.com>
7679 * loader.c (find_method): Removed the hack for generic instances.
7680 (method_from_memberref): If our parent is a generic instance, pass
7681 its generic type definition to find_method() and then inflate the
7683 (mono_get_method_constrained): Pass the generic type definition to
7684 find_method() and inflate the method later.
7686 * class-internals.h (MonoStats): Added `generic_class_count'.
7688 * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7689 Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7691 * reflection.c (mono_custom_attrs_from_params): Don't ignore
7692 generic type definitions.
7694 2004-12-30 Zoltan Varga <vargaz@freemail.hu>
7696 * loader.c icall.c: Fix warnings.
7698 2004-12-29 Zoltan Varga <vargaz@freemail.hu>
7700 * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7701 blittable types. Fixes #70864.
7703 2004-12-29 Martin Baulig <martin@ximian.com>
7706 (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7708 * reflection.c (mono_method_get_object): Create a
7709 "System.Reflection.MonoGenericMethod" for inflated methods; don't
7710 call mono_get_inflated_method().
7712 * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7714 2004-12-27 Martin Baulig <martin@ximian.com>
7716 * class-internals.h (MonoMethod): Added `is_inflated' flag.
7717 (MonoMethodInflated): Added `inflated' field.
7719 * class.c (mono_class_inflate_generic_method): Don't really
7720 inflate the method here; just set the `is_inflated' flag in the
7722 (mono_class_get_inflated_method): Actually inflate the method here
7723 if it's not already inflated; we use the MonoMethodInflated's new
7724 `inflated' field as a cache.
7726 2004-12-26 Martin Baulig <martin@ximian.com>
7729 (inflate_generic_class): Moved some code out of inflate_generic_type().
7730 (mono_class_inflate_generic_method): If we're already inflated,
7731 inflate the context and use the declaring method; ie. make sure
7732 the declaring method of an inflated method is always the generic
7734 (mono_class_create_from_typedef): Create
7735 `class->generic_container->context->gclass'.
7737 2004-12-24 Ben Maurer <bmaurer@ximian.com>
7739 * metadata-internals.h, marshal.c, reflection.c: More
7740 MonoGHashTable->GHashTable.
7742 * domain-internals.h, class.c: Change MonoGHashTable's into
7743 GHashTables for some cases where no gc stuff is used
7745 All users: update apis
7747 2004-12-23 Ben Maurer <bmaurer@ximian.com>
7749 * metadata.c (builtin_types): Make this `const'. Makes this get
7750 put into the shareable section.
7751 (mono_metadata_init): Casts to make gcc happy.
7753 2004-12-22 Zoltan Varga <vargaz@freemail.hu>
7755 * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7757 2004-12-21 Sebastien Pouliot <sebastien@ximian.com>
7759 * icall.c: Added an internal call to retrieve the position and length
7760 of assembly-level declarative security attributes (RequestMinimum,
7761 RequestOptional and RequestRefuse). This is used by the Assembly class
7762 to re-create the corresponding permission sets.
7764 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7766 * marshal.c: fix the stelemref wrapper to be type correct
7769 2004-12-20 Ben Maurer <bmaurer@ximian.com>
7771 * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7772 to do key & 0x7fffffff. Hashtable already does this. It just
7773 results in longer code.
7775 2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
7777 * appdomain.c: Bump corlib version.
7778 * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7779 * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7780 * reflection.c|h: Add functions to get declarative security infos
7781 (blob position and length) for assemblies, classes and methods.
7783 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7785 * reflection.c: sort the constant table (bug #70693).
7787 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7789 * object-internals.h, threads.c, domain.c: add accessors for
7790 the MonoThread and MonoDomain tls keys.
7792 2004-12-18 Martin Baulig <martin@ximian.com>
7794 * class.c (inflate_generic_type): If we're inflating a generic
7795 instance, set `ngclass->context->container = context->container';
7796 ie. the container we inflated into.
7798 * metadata.c (mono_metadata_parse_generic_param): Reflect above
7799 inflate_generic_type() changes.
7801 2004-12-17 Martin Baulig <martin@ximian.com>
7804 (MonoGenericClass): Replaced `MonoType *generic_type' with
7805 `MonoClass *generic_class'. Removed `dynamic_info'; if
7806 `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7807 (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7809 2004-12-16 Zoltan Varga <vargaz@freemail.hu>
7811 * exception.c (mono_exception_from_token): New helper function.
7813 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
7815 * assembly.c (mono_assembly_load_with_partial_name): Call
7816 mono_assembly_loaded before invoking the preload hooks. Fixes
7819 * object-internals.h (MonoThread): Change culture_info and
7820 ui_culture_info into an array.
7822 * threads.c: Cache culture info objects from more than one appdomain.
7824 * threads.c threads-types.h icall.c: Add icalls for manipulating the
7827 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
7829 * threads.h threads.c appdomain.c: Clear the culture_info field of
7830 all threads during unloading if they point to an object in the dying
7833 2004-12-13 Ben Maurer <bmaurer@ximian.com>
7835 * culture-info.h (TextInfoEntry): New struct
7836 * object-internals.h: sync with managed
7837 * locales.c: fill the `text_info_data' field
7838 * culture-info-tables.h: update
7840 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7842 * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7845 2004-12-12 Ben Maurer <bmaurer@ximian.com>
7847 * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7848 (ves_icall_ModuleBuilder_getMethodToken): Ditto
7850 2004-12-12 Martin Baulig <martin@ximian.com>
7852 * mono-debug-debugger.c (write_type): If we're an enum and the
7853 builtin types have already been initialized, call mono_class_init().
7855 2004-12-11 Martin Baulig <martin@ximian.com>
7857 * metadata.c (mono_metadata_load_generic_params): Added
7858 `MonoGenericContainer *parent_container' argument; automatically
7859 compute `container->is_method'; pass the correct owner to
7862 * reflection.c (compare_genericparam): Sort the GenericParam table
7863 according to increasing owners.
7865 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7867 * profiler.c: allow disabling the default profiler.
7869 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7871 * decimal.c, icall.c: allow disabling System.Decimal support.
7873 2004-12-09 Marek Safar <marek.safar@seznam.cz>
7875 * reflection.c: Add support for null attribute arguments.
7877 2004-12-09 Martin Baulig <martin@ximian.com>
7879 * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7880 names to get rid of compiler warnings.
7882 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
7884 * marshal.c (mono_marshal_get_struct_to_ptr): Call
7885 mono_marshal_load_type_info (). Fixes #69625.
7886 (mono_marshal_get_ptr_to_struct): Likewise.
7888 2004-12-08 Martin Baulig <martin@ximian.com>
7890 * mono-debug.h: Bumped version number to 47.
7892 * mono-debug-debugger.c
7893 (mono_debugger_event_handler, mono_debugger_event): Take two
7894 guint64 arguments insteed of a gpointer and a guint32.
7896 2004-12-08 Martin Baulig <martin@ximian.com>
7898 * debug-mono-symfile.h
7899 (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7900 `address' to `native_offset'.
7902 2004-12-08 Martin Baulig <martin@ximian.com>
7904 * class.c (mono_class_create_from_typespec): Only inflate if we
7905 either have `context->gclass' or `context->gmethod'.
7907 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
7909 * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7911 * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7913 * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7915 * reflection.c (mono_assembly_get_object): Remove the workaround put
7918 * appdomain.c: Use the corlib_internal field from MonoAssembly.
7920 * appdomain.c: Bump corlib version.
7922 * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7923 be visible in other appdomains.
7925 2004-12-07 Ben Maurer <bmaurer@ximian.com>
7927 * threads.c: Interlocked inc and dec for longs were messed up,
7928 use a KISS based impl for this. Fixes 70234
7930 2004-12-07 Zoltan Varga <vargaz@freemail.hu>
7932 * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7934 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7936 * icall.c: fix to follow policy not to allow struct
7937 arguments in icalls.
7939 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7941 * process.c: make the patch that handles spaces in file paths work
7942 on mono/windows too.
7944 2004-12-06 Martin Baulig <martin@ximian.com>
7946 * class.c (mono_class_create_generic): Call
7947 mono_class_setup_supertypes() if we're dynamic.
7948 (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7950 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
7952 * object-internals.h: Add new fields to MonoThread.
7954 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7956 * icall.c threads-types.h threads.c: Add new icalls.
7958 * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7960 * object-internals.h (MonoReflectionAssembly): Sync object layout with
7963 * appdomain.c: Bump corlib version.
7965 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7966 internal assemblies. Fixes #69181.
7968 2004-12-05 Martin Baulig <martin@ximian.com>
7970 * class.c (mono_class_inflate_generic_signature): Make this a
7971 no-op if `context' is NULL or we don't have any type parameters;
7972 also copy `sentinelpos'.
7974 2004-12-04 Zoltan Varga <vargaz@freemail.hu>
7976 * image.c: Add unbox_wrapper_cache.
7978 * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7980 * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7983 * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7986 * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7988 2004-12-04 Martin Baulig <martin@ximian.com>
7990 * loader.c (mono_method_get_signature_full): New public function;
7991 like mono_method_get_signature(), but with an additional
7992 `MonoGenericContext *' argument.
7994 * class.c (mono_class_inflate_generic_signature): Formerly known
7995 as inflate_generic_signature(); make this public.
7997 2004-12-04 Martin Baulig <martin@ximian.com>
8000 (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
8001 instead of a `MonoGenericContainer *'.
8002 (mono_metadata_parse_array_full): Likewise.
8003 (mono_metadata_parse_signature_full): Likewise.
8004 (mono_metadata_parse_method_signature_full): Likewise.
8005 (mono_metadata_parse_generic_inst): Likewise.
8006 (mono_metadata_parse_generic_param): Likewise.
8007 (mono_metadata_parse_mh_full): Likewise.
8008 (mono_type_create_from_typespec_full): Likewise.
8010 2004-12-03 Martin Baulig <martin@ximian.com>
8012 * class-internals.h (MonoGenericContainer): Replaced the
8013 `MonoGenericContext * pointer with a `MonoGenericContext'
8014 structure and made it the first element.
8016 2004-12-03 Martin Baulig <martin@ximian.com>
8019 (inflate_generic_type): Set the `context->container' when creating
8020 a new MonoGenericContext.
8021 (mono_class_inflate_generic_method): Likewise.
8022 (mono_class_create_from_typespec): Just use `context->container'
8023 to get the container.
8025 * loader.c (method_from_methodspec): Set `context->parent' from
8026 `context->container' - and if that's a method container, use its
8027 parent. Also set the `context->container' when creating a new
8029 (mono_get_method_from_token): Use just `context->container' to get
8032 * metadata.c (do_mono_metadata_parse_generic_class): Also set
8033 `gclass->context->container'.
8035 * reflection.c (do_mono_reflection_bind_generic_parameters): Set
8036 the `context->container' when creating a new MonoGenericContext.
8038 2004-12-03 Zoltan Varga <vargaz@freemail.hu>
8040 * reflection.c (compare_genericparam): Sort params with identical
8041 owner by their number. Fixes gen-111 on sparc.
8043 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
8045 * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
8046 around the domain changes.
8048 * appdomain.c (mono_domain_unload): Handle the case when the thread
8049 calling Unload is itself being aborted during unloading. Fixes #70022.
8051 * appdomain.h: Add prototype for mono_install_runtime_cleanup.
8053 * marshal.c (emit_thread_interrupt_checkpoint_call): Call
8054 checkpoint_func as an icall so it gets a wrapper.
8055 (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
8056 in the cross-appdomain wrappers too.
8058 * threads.c (mono_thread_has_appdomain_ref): Make this public.
8060 * assembly.c (mono_assembly_open_from_bundle): Fix warning.
8062 * reflection.c: Fix some memory leaks.
8064 2004-12-02 Martin Baulig <martin@ximian.com>
8066 * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
8068 * metadata.c (generic_class_cache): New static hashtable.
8069 (mono_metadata_lookup_generic_class): New public method.
8071 2004-12-02 Martin Baulig <martin@ximian.com>
8073 * class.c (mono_class_create_from_typedef): Call
8074 mono_class_setup_parent() and mono_class_create_mono_type() before
8075 parsing the interfaces.
8077 2004-12-02 Martin Baulig <martin@ximian.com>
8079 * metadata.c (generic_inst_cache): New static hashtable.
8080 (mono_metadata_lookup_generic_inst): New public function.
8081 (mono_metadata_inflate_generic_inst): New public function.
8082 (mono_metadata_parse_generic_inst): New public function.
8083 (do_mono_metadata_parse_generic_class): Use the new
8084 mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
8085 since this'll also use the cache.
8087 * reflection.c (mono_reflection_bind_generic_method_parameters):
8088 Use mono_metadata_lookup_generic_inst() to use the new cache.
8090 * class.c (inflate_mono_type): Use
8091 mono_metadata_inflate_generic_inst() to inflate a generic
8092 instance; this'll also use the new cache.
8094 * loader.c (method_from_methodspec): Use
8095 mono_metadata_parse_generic_inst() and
8096 mono_metadata_inflate_generic_inst() rather than parsing it
8097 manually, so we can use the new cache.
8099 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
8101 * threads.c (wait_for_tids): Do not incorrectly free threads when
8104 2004-12-01 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8106 * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8107 iter->args based on whether parameters are passed in registers (i.e.
8108 MONO_ARCH_REGPARMS is defined)
8110 2004-12-01 Zoltan Varga <vargaz@freemail.hu>
8112 * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8113 the exception message. Fixes #70070.
8114 (method_from_methodspec): Fix warnings.
8116 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8118 * process.c: (complete_path) return the path quoted
8120 2004-12-01 Martin Baulig <martin@ximian.com>
8122 * class-internals.h (MonoGenericInst): New structure.
8123 (MonoGenericClass): Replaced `type_argc', `type_argv' and
8124 `is_open' with `MonoGenericInst *inst'.
8125 (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8126 `is_open' with `MonoGenericInst *inst'.
8128 2004-11-30 Martin Baulig <martin@ximian.com>
8130 Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8132 * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8133 to `generic_class_cache'.
8136 (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8137 (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8138 (mono_generic_inst_is_valuetype): Renamed to
8139 mono_generic_class_is_valuetype().
8142 (MonoGenericInst): Renamed to MonoGenericClass.
8143 (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8144 (MonoClass): Renamed `generic_inst' to `generic_class'.
8145 (MonoGenericContext): Renamed `ginst' to `gclass'.
8147 * object-internals.h
8148 (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8150 * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8151 mono_reflection_generic_class_initialize().
8153 * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8154 now known as "System.Reflection.MonoGenericClass".
8155 (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8157 2004-11-29 Sebastien Pouliot <sebastien@ximian.com>
8159 * class-internals.h: Added a flag field to MonoClass to cache the
8160 declarative security attributes actions associated with the class.
8161 * domain-internals.h: Added booleans to MonoJitInfo to cache the
8162 (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8163 applicable to the JITted method.
8164 * reflection.c|h: Added functions to extract (as flags) which security
8165 actions are available (declaratively) for a method, class or assembly.
8166 * metadata.c|h: Added functions to search the declarative security
8167 table in the metadata.
8169 2004-11-29 Ben Maurer <bmaurer@ximian.com>
8171 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8172 EXPORTEDTYPES are already in the class name cache, so there is no
8173 need to add extra code here to look at them. Just removes a bit of
8176 (ves_icall_System_Environment_get_TickCount): No need for #if
8177 WINDOWS. We already have the code in io-layer.
8179 2004-11-28 Martin Baulig <martin@ximian.com>
8182 (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8185 2004-11-27 Miguel de Icaza <miguel@ximian.com>
8187 * assembly.c (do_mono_assembly_open): Instead of having a
8188 conditional WITH_BUNDLE, incorporate support for bundles here, by
8189 having a global `bundles' variable holding a pointer to the actual
8192 (mono_register_bundled_assemblies): New API call used by the
8195 See mkbundle.1 for details.
8197 2004-11-27 Martin Baulig <martin@ximian.com>
8199 * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8200 the vtable for generic methods.
8202 2004-11-26 Martin Baulig <martin@ximian.com>
8205 (mono_metadata_generic_method_hash): New public function.
8206 (mono_metadata_generic_method_equal): Likewise.
8209 (MonoGenericContainer): Added `GHashTable *method_hash'.
8211 * reflection.c (ReflectionMethodBuilder): Added
8212 `MonoGenericContainer *generic_container'.
8213 (reflection_methodbuilder_to_mono_method): Don't create a new
8214 MonoGenericContainer each time we're called.
8215 (mono_reflection_bind_generic_method_parameters): Use
8216 `container->method_hash' to cache the results so we don't create a
8217 different method if we're called several times with the same
8220 * loader.c (method_from_methodspec): Use the new
8221 `container->method_hash' here, too.
8223 2004-11-26 Martin Baulig <martin@ximian.com>
8225 * class.c (inflate_generic_signature): Correctly compute
8226 `res->has_type_parameters'.
8227 (mono_class_vtable): Use the `has_type_parameters' flag to
8228 determine whether we're a generic method.
8230 * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8232 2004-11-25 Zoltan Varga <vargaz@freemail.hu>
8234 * object.c (mono_runtime_run_main): Fix a small memory leak.
8236 2004-11-25 Martin Baulig <martin@ximian.com>
8238 * class.c (set_generic_param_owner): Fixed the loop.
8240 2004-11-25 Martin Baulig <martin@ximian.com>
8242 * object.c (mono_class_vtable): Don't create any JIT wrappers for
8245 2004-11-24 Zoltan Varga <vargaz@freemail.hu>
8247 * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8248 names. Fixes #69787.
8250 2004-11-24 Martin Baulig <martin@ximian.com>
8252 * class.c (mono_class_create_generic_2): If we don't have a
8253 `ginst->parent', inflate `gklass->parent' to get our parent.
8255 2004-11-24 Martin Baulig <martin@ximian.com>
8257 * reflection.c (compare_genericparam): Correctly sort the
8258 GenericParam table; fixes #69779.
8260 2004-11-23 Ben Maurer <bmaurer@ximian.com>
8262 * reflection.c: When writing a PE file, don't create a huge
8263 buffer in memory. Just write the arrays we have to the file.
8264 This reduces memory usage.
8266 * metadata-internals.h: MonoDynamicStream pefile is no longer used
8269 2004-11-17 Martin Baulig <martin@ximian.com>
8271 * class.c (mono_class_init): Don't setup `class->parent' for
8272 dynamic instances; moved this to mono_class_generic_2().
8273 (mono_class_create_generic): Also set `klass->inited' for dynamic
8275 (mono_class_create_generic_2): Don't do anything for dynamic
8276 generic instances. Set `klass->parent' here and also call
8277 mono_class_setup_parent() here.
8279 * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8280 `MonoType *parent' argument; set `ginst->parent' before calling
8281 mono_class_create_generic_2(), so we set the correct parent.
8283 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8285 * reflection.c: allow getting attributes from ModuleBuilder
8288 2004-11-17 Martin Baulig <martin@ximian.com>
8290 * class.c (mono_class_create_from_typedef): If a type parameter is
8291 inherited from an outer class, set its owner to that class.
8293 2004-11-17 Atsushi Enomoto <atsushi@ximian.com>
8295 * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8296 for (int*) written size. This fixes bug #69592.
8298 2004-11-15 Sebastien Pouliot <sebastien@ximian.com>
8300 * icall.c: Added IsAuthenticodePresnet internal call.
8301 * image.c|h: New function that check a MonoImage for an Authenticode
8302 signature in the certificate PE data directory.
8303 * security.c|h: New internal call to ask the runtime if an
8304 Authenticode signature seems referenced in the PE header.
8306 2004-11-15 Zoltan Varga <vargaz@freemail.hu>
8308 * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8310 * reflection.c (mono_image_create_pefile): Free the assembly streams
8311 after writing out the assembly file.
8313 * object.c (mono_runtime_run_main): Fix small memory leak.
8315 * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8316 property access modifiers. Fixes #69389.
8318 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8320 * domain.c, object.c, object-internals.h, domain-internals.h,
8321 object.h, marshal.c: keep dynamic code info per domain.
8323 2004-11-15 Martin Baulig <martin@ximian.com>
8325 * class.c (mono_type_get_name_recurse): Put type arguments in
8326 `[',`]' instead of in `<','>'. Thanks to Atsushi for the patch,
8329 2004-11-15 Martin Baulig <martin@ximian.com>
8331 * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8332 (mono_class_setup_vtable): When computing `the_cname' for a
8333 generic instance, don't include the namespace since we'd otherwise
8336 2004-11-15 Martin Baulig <martin@ximian.com>
8338 * class.c (mono_class_create_generic): Changed return type to void.
8339 (mono_class_create_generic_2): New public function; setup
8340 `class->method', `class->field' and `class->interfaces' here
8341 instead of in mono_class_init().
8343 * class.h (mono_class_create_generic): Moved to class-internals.h.
8345 2004-11-14 Ben Maurer <bmaurer@ximian.com>
8347 * reflection.c (mono_image_create_pefile): take a file HANDLE.
8348 rather than writing to memory, write to this file. Right now,
8349 we are just writting into a buffer, and copying that. However
8350 we can avoid the buffer later.
8352 (mono_dynamic_stream_reset): new function
8354 * icall.c, object-internals.h: update for the above.
8356 2004-11-13 Ben Maurer <bmaurer@ximian.com>
8358 * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8359 have been using gc'd memory. First it is slower, unlikely
8360 the comment in the source code said, secondly, it increases
8361 our footprint to do it in the gc.
8363 * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8364 the method so that it does not have to copy to managed code.
8366 2004-11-12 Zoltan Varga <vargaz@freemail.hu>
8368 * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8370 2004-11-12 Martin Baulig <martin@localhost>
8372 * reflection.c (mono_image_create_token): Allow generic method
8373 definitions here, since they may appear in an `.override'; see
8374 gen-98/gen-99 for an example.
8376 2004-11-11 Zoltan Varga <vargaz@freemail.hu>
8378 * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8381 * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8384 2004-11-11 Martin Baulig <martin@ximian.com>
8386 * class.c (mono_class_setup_vtable): In an explicit interface
8387 implementation, the method name now includes the arity.
8389 2004-11-10 Zoltan Varga <vargaz@freemail.hu>
8391 * object.c (mono_array_full_copy): Fix warning.
8393 2004-11-10 Lluis Sanchez Gual <lluis@novell.com>
8395 * appdomain.c: Removed look_for_method_by_name(). Use the new method
8396 mono_class_get_method_from_name() instead.
8398 * class-internals.h: Added two new types of wrappers.
8399 Added MonoRemotingTarget enum. Added new trampoline function type, which
8400 takes an additional MonoRemotingTarget value as parameter, so it is
8401 possible to request a trampoline for a specific target.
8403 * class.c: Added new mono_class_get_method_from_name() method.
8405 * class.h: In MonoRemoteClass, we can have now to vtables, one for
8406 general remoting sinks and one specific for cross domain calls.
8408 * debug-helpers.c: Added new wrapper names.
8410 * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8413 * image.c: Porperly delete value objects form the remoting invoke hashtable.
8415 * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8416 with several other methods (mono_marshal_get_xappdomain_dispatch,
8417 mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8418 and others) can generate a fast remoting wrapper for cross domain calls.
8419 More information can be found in docs/remoting.
8420 Other changes: Removed mono_find_method_by_name, and used
8421 mono_class_get_method_from_name instead.
8422 Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8423 is stored in the remoting invoke hashtable.
8425 * marshal.h: published the new method for getting the xdomain wrapper,
8426 and also added a method for getting the adequate wrapper for a given
8429 * object-internals.h, object.c: Added a couple of methods for capying and
8431 Modified mono_install_remoting_trampoline, which takes the new remoting
8432 trampoline that has a remoting target as parameter.
8433 mono_class_proxy_vtable now also takes a remoting target as parameter, and
8434 will return the most suitable vtable for the target.
8435 Added mono_remote_class_vtable, which returns the vtable of a remote class
8436 (which can be the normal remoting vtable or the xdomain vtable).
8438 * threads.c: the xdomain invoke and dispatch wrappers must also be
8439 protected against interruptions.
8441 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8443 * icall.c: use memmove in BlockCopyInternal when the source and
8444 destination arrays are the same.
8446 2004-11-09 Martin Baulig <martin@ximian.com>
8448 * class-internals.h (MonoGenericContainer): Removed `method' and
8449 `signature', replaced them with `is_method' and `is_signature'
8450 flags. Added `context'.
8452 * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8453 instead of a `MonoGenericContainer *'.
8455 * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8456 for dynamic type parameters.
8457 (mono_metadata_load_generic_params): Setup `container->context'.
8459 * reflection.c (mono_reflection_setup_generic_class): Setup
8460 `tb->generic_container->context'.
8461 (do_mono_reflection_bind_generic_parameters): Use
8462 mono_class_inflate_generic_type() to correctly inflate types,
8463 rather than using our own hack just for MONO_TYPE_VAR.
8465 2004-11-09 Martin Baulig <martin@ximian.com>
8467 * class.c (mono_class_inflate_generic_method): Small fix; don't
8471 (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8472 (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8473 (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8474 (ves_icall_Type_BindGenericParameters): Likewise.
8475 (ves_icall_Type_get_IsGenericInstance): Likewise.
8476 (ves_icall_Type_GetGenericParameterPosition): Likewise.
8477 (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8478 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8479 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8481 2004-11-09 Zoltan Varga <vargaz@freemail.hu>
8483 * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8484 assembly versions and public key tokens. Fixes #69113.
8486 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8488 * metadata.c: fix bug introduced with the type cache changes
8491 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8493 * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8494 the MonoClass pointer instead of the token in exception clauses.
8495 * reflection.c: updates for the above and make the code not depend
8496 on the structure of MonoExceptionClause.
8498 2004-11-08 Zoltan Varga <vargaz@freemail.hu>
8500 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8501 Add support for dynamic assemblies. Fixes #69114.
8503 * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8505 2004-11-07 Ben Maurer <bmaurer@ximian.com>
8507 * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8508 since most only those methods use it. the code member of
8509 MonoMethodPInvoke was dead, so that can be removed too. Also,
8510 remove inline_count (again, not used), and move slot so that it
8511 can share bits with some other flags. This saves 8 bytes in the
8512 structure and gives us about 50 kb back for mcs helloworld.cs
8514 * *.[ch]: Do naming changes for the above.
8516 * loader.c (mono_method_get_header): Lazily init the header
8518 (mono_get_method_from_token): don't init the header here
8519 (mono_free_method): the header may never be allocated
8521 Overall, this saves 150 kb of unmanaged allocations
8522 for mcs helloworld.cs. That accounts for 10% of the unmanaged
8525 * loader.c, loader.h (mono_method_get_header): new accessor.
8527 * *.[ch]: use the above method. Prepares us to lazily load
8530 * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8531 three warnings, which are actual bugs (see 69206).
8533 * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8534 unused. Saves a cool 4 bytes / method.
8536 2004-11-06 Ben Maurer <bmaurer@ximian.com>
8538 * metadata.c (builtin_types): Add types for System.Object here.
8539 (mono_metadata_parse_type_full): Cache MonoType*'s that are
8540 for a class or valuetype from klass->this_arg or klass->byval_arg.
8542 On mcs for a hello world, this gets us down from 21836 MonoType's
8545 (mono_metadata_free_type): Account for the above change.
8547 2004-11-06 Zoltan Varga <vargaz@freemail.hu>
8549 * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an
8550 exception instead of asserting if name is null.
8551 (ves_icall_System_AppDomain_GetData): Ditto.
8553 2004-11-05 Zoltan Varga <vargaz@freemail.hu>
8555 (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8558 * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly):
8559 Return NULL when the domain does not have entry_assembly set.
8561 * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal):
8562 Add a 'resource_modules' argument.
8563 (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8565 * reflection.c (mono_reflection_create_runtime_class): Move setting
8566 of wastypebuilder here, so mono_get_type_object () returns a MonoType
8569 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8570 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8571 Throw an ArgumentNullException if 'ptr' is null.
8573 * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8574 assemblies here. Fixes #69020.
8576 2004-11-05 Geoff Norton <gnorton@customerdna.com>
8578 * reflection.c (build_compressed_metadata): Fix the previous patch for
8579 big endian systems. GUINT32_FROM_LE isn't needed on strlen and was overwriting
8582 2004-11-04 Zoltan Varga <vargaz@freemail.hu>
8584 * assembly.c (mono_assembly_names_equal): Allow a match if one of
8585 the cultures is false. Fixes #69090.
8587 * reflection.c (build_compressed_metadata): Fix invalid memory read
8588 detected by valgrind.
8590 * reflection.c (mono_reflection_get_type): Avoid triggering a
8591 TypeResolve multiple times for the same type. Fixes #65577.
8593 2004-11-04 Ben Maurer <bmaurer@ximian.com>
8595 * marshal.c: Avoid using ldftn to call managed functions. It is
8596 much slower than just a call.
8598 * reflection.c (mono_module_get_object): free the basename we
8599 allocate here from glib.
8601 * reflection.c (ensure_runtime_vtable): make sure to free
8602 overrides. Also, we were allocating an array of MonoMethod not an
8603 array of MonoMethod*.
8605 * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8607 * image.c (mono_image_close): free image->guid here.
8609 2004-11-02 Zoltan Varga <vargaz@freemail.hu>
8611 * reflection.c: Fix some spec conformance issues with the PE file
8612 structures so mcs compiled apps run on the Net 2.0 beta.
8614 2004-11-01 Zoltan Varga <vargaz@freemail.hu>
8616 * string-icalls.c (ves_icall_System_String_ctor_encoding):
8617 Implement this. Fixes #67264.
8619 * debug-helpers.h debug-helpers.c marshal.c: Move
8620 mono_find_method_by_name to debug-helpers.c.
8622 2004-10-31 Zoltan Varga <vargaz@freemail.hu>
8624 * object.c (mono_release_type_locks): type_initialization_hash is
8627 * reflection.c object.c object-internals.h: Fix warnings.
8629 * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8630 without accessors. Fixes #61561.
8632 * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8633 application base from the root domain if not set. Fixes #65641.
8634 (mono_runtime_init): Fix warning.
8636 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8638 * appdomain.c: call mono_thread_pool_init.
8639 * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8640 of worker threads based on the number of CPUs and the environment
8641 variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8642 for non-windows (windows) systems.
8644 2004-10-27 Chris Toshok <toshok@ximian.com>
8646 * mono-debug-debugger.c (write_class): don't call mono_class_init
8647 here, as even with the check for (!klass->init_pending), we get
8648 into a situation where we're hitting cycles in class
8649 initialization. Fixes #68816.
8651 2004-10-25 Zoltan Varga <vargaz@freemail.hu>
8653 * image.c: Avoid overwriting values in the loaded_images_hash when an
8654 assembly is loaded multiple times. Fixes #61152.
8656 * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8657 so multiple satellite assemblies for the same name can be loaded.
8660 * mono_domain_assembly_preload: Actually return the loaded assembly,
8663 * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8664 (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8666 * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8667 pending finalizers are not invoked after the appdomain has been
8668 unloaded. Fixes #67862.
8670 2004-10-22 Martin Baulig <martin@ximian.com>
8672 * mono-debug-debugger.c
8673 (mono_debugger_runtime_invoke): Don't box valuetypes.
8675 2004-10-22 Chris Toshok <toshok@ximian.com>
8677 * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8678 don't hide private methods.
8680 2004-10-22 Sebastien Pouliot <sebastien@ximian.com>
8682 * icall.c: Allows the runtime to "share" (when known) the public key
8683 token of an assembly. This avoid the need to recalculate the token
8684 (from the public key) in managed code.
8686 2004-10-21 Chris Toshok <toshok@ximian.com>
8688 * debug-helpers.c (append_class_name): argh, revert last patch.
8690 2004-10-21 Chris Toshok <toshok@ximian.com>
8692 * debug-helpers.c (append_class_name): use '+' as the delimiter,
8693 not '/', so that it matches what the debugger uses to look up
8696 2004-10-21 Martin Baulig <martin@ximian.com>
8698 * mono-debug-debugger.c (mono_debugger_throw_exception): New
8699 public method; this is called each time an exception is thrown and
8700 allows the debugger to use exception catch points.
8702 2004-10-21 Martin Baulig <martin@ximian.com>
8704 * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8705 the stack pointer and the exception object in some struct and pass
8706 that to the debugger.
8708 2004-10-21 Chris Toshok <toshok@ximian.com>
8710 * mono-debug-debugger.c (do_write_class): add instance/static
8711 event support. We don't expose "raise" or "other" yet.
8712 (event_is_static): new method.
8714 2004-10-20 Bernie Solomon <bernard@ugsolutions.com>
8716 * mono-debug-debugger.c
8717 (mono_debugger_handle_exception): Remove
8718 bogus return value for fussy compilers.
8720 2004-10-20 Martin Baulig <martin@ximian.com>
8722 * mono-debug-debugger.c
8723 (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8724 (mono_debugger_handled_exception): Likewise.
8726 2004-10-20 Martin Baulig <martin@ximian.com>
8728 * mono-debug-debugger.h (MonoDebuggerEvent): Added
8729 MONO_DEBUGGER_EVENT_EXCEPTION.
8731 * mono-debug-debugger.c (mono_debugger_handle_exception): New
8732 public function to send the debugger a notification for an
8733 exception and inform it about a catch/finally clause.
8735 2004-10-19 Zoltan Varga <vargaz@freemail.hu>
8737 * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8738 Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8741 * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8743 2004-10-18 Zoltan Varga <vargaz@freemail.hu>
8745 * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8746 marshalled as [In,Out]. Fixes #58325.
8748 2004-10-14 Zoltan Varga <vargaz@freemail.hu>
8750 * reflection.c (mono_method_body_get_object): Implement some fields.
8752 2004-10-12 Martin Baulig <martin@ximian.com>
8754 * reflection.c (mono_reflection_bind_generic_parameters): Small
8755 fix, correctly retrieve our parent from a generic instance.
8757 2004-10-12 Martin Baulig <martin@ximian.com>
8759 * metadata.c (mono_metadata_generic_param_equal): We always have
8763 (mono_class_from_generic_parameter): We need to have an owner.
8764 (my_mono_class_from_generic_parameter): Likewise.
8766 * reflection.c (mono_reflection_setup_generic_class): Renamed to
8767 mono_reflection_create_generic_class() and added a new
8768 mono_reflection_setup_generic_class().
8769 (mono_reflection_initialize_generic_param): If we're a nested
8770 generic type and inherited from the containing class, set our
8771 owner to the outer class.
8773 2004-10-11 Zoltan Varga <vargaz@freemail.hu>
8775 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8777 * reflection.c (mono_method_body_get_object): New function to create
8778 a MethodBody object.
8780 * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8782 2004-10-11 Martin Baulig <martin@ximian.com>
8784 * metadata.c (_mono_metadata_type_equal): Renamed to
8785 do_mono_metadata_type_equal() and made static.
8787 2004-10-11 Martin Baulig <martin@ximian.com>
8789 * appdomain.c: Bump corlib version number to 28.
8791 2004-10-10 Martin Baulig <martin@ximian.com>
8794 (MonoGenericInst): Added `MonoGenericContainer *container'.
8795 (MonoGenericMethod): Likewise.
8796 (MonoGenericContext): Likewise.
8797 (MonoGenericParam): Added `MonoGenericContainer *owner'.
8800 (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8801 (do_mono_metadata_parse_generic_inst): Likewise.
8802 (mono_metadata_parse_type_full): New public method. This is the actual
8803 mono_metadata_parse_type() implementation - with an additional
8804 `MonoGenericContainer *' argument.
8805 (mono_metadata_parse_array_full): Likewise.
8806 (mono_metadata_parse_signature_full): Likewise.
8807 (mono_metadata_parse_method_signature_full): Likewise.
8808 (mono_metadata_parse_mh_full): Likewise.
8809 (mono_type_create_from_typespec): Likewise.
8810 (mono_metadata_interfaces_from_typedef_full): New public method;
8811 this is similar to the other _full() methods, but we take a
8812 `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8813 (mono_metadata_parse_generic_param): Take an additional
8814 `MonoGenericContainer *' argument and lookup the MonoGenericParam
8815 from that container.
8816 (mono_metadata_generic_param_equal): New static method to compare
8817 two type parameters.
8818 (_mono_metadata_type_equal): New static method; takes an
8819 additional `gboolean signature_only' argument - if true, we don't
8820 compare the owners of generic parameters.
8821 (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8822 with a TRUE argument - do a signature-only comparision.
8824 * loader.c: Use the new _full() methods and pass the
8825 MonoGenericContainer to them.
8827 * object-internals.h (MonoReflectionTypeBuilder): Added
8828 `MonoGenericContainer *generic_container' field.
8829 (MonoReflectionMethodBuilder): Likewise.
8831 2004-10-08 Zoltan Varga <vargaz@freemail.hu>
8833 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8834 case initial images of dynamic assemblies.
8836 * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8838 * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8840 * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8841 length of event->other array.
8842 (typebuilder_setup_events): Ditto.
8844 * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8845 'assembly_by_name' and add an 'assemblies' list.
8847 * assembly.h assembly.c: Add a new search hook for determining whenever
8848 an assembly is already loaded. Use this instead of searching in the
8849 loaded_assemblies list.
8851 * domain.c appdomain.c: Implement the new search hook so loaded
8852 assemblies are now scoped by appdomain. Fixes #67727.
8854 2004-10-07 Zoltan Varga <vargaz@freemail.hu>
8856 * threads.c (mono_thread_attach): Initialize synch_lock field so
8857 mono_thread_detach works again.
8859 * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8860 'lib' too. Fixes #63130.
8862 2004-10-06 Jackson Harper <jackson@ximian.com>
8864 * culture-info-tables.h: regenerated.
8866 2004-10-06 Zoltan Varga <vargaz@freemail.hu>
8868 * icall.c (ves_icall_Type_GetInterfaces): Include interfaces
8869 implemented by other interfaces in the result. Fixes #65764.
8871 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8872 Handle unloadable modules without crashing.
8874 * image.c (load_modules): Revert the previous patch since modules must
8875 have a fixed index inside the array.
8877 * image.c (load_modules): Don't include native modules in the modules
8880 2004-10-05 Zoltan Varga <vargaz@freemail.hu>
8882 * reflection.h: Add param_defaults field.
8884 * reflection.c: Add support for parameter defaults in dynamic methods.
8887 * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8888 an empty string when a type has no namespace. Fixes #64230.
8890 2004-10-04 Sebastien Pouliot <sebastien@ximian.com>
8892 * tabledefs.h: Added "internal" security actions to support non-CAS
8893 permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance.
8894 Note: they do not seems to be used anymore in 2.0 (new metadata format)
8896 2004-10-04 Zoltan Varga <vargaz@freemail.hu>
8898 * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8899 constructor of abstract class. Fixes #61689.
8901 2004-10-04 Martin Baulig <martin@ximian.com>
8903 * class-internals.h (MonoGenericContainer): New type.
8904 (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8905 `MonoGenericContainer *generic_container'.
8906 (MonoClass): Replaced `gen_params' and `num_gen_params' with
8907 `MonoGenericContainer *generic_container'.
8909 * metadata.c (mono_metadata_load_generic_params): Return a
8910 `MonoGenericContainer *' instead of a `MonoGenericParam *';
8911 removed the `num' argument.
8913 2004-10-03 Zoltan Varga <vargaz@freemail.hu>
8915 * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8918 * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8921 * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8923 * reflection.c: Save pe_kind and machine values into the generated
8926 * appdomain.c: Bump corlib version number.
8928 * object-internals.h: Reorganize layout of LocalBuilder.
8930 * class-internals.h class.c (mono_class_get_implemented_interfaces):
8931 New helper function.
8933 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8934 created MonoType for dynamic types. Fixes #66180.
8936 2004-10-02 Ben Maurer <bmaurer@ximian.com>
8938 * threadpool.c: the ares hashtable needs a critical section around it.
8939 this prevents some nasty segfaults
8941 2004-10-02 Massimiliano Mantione <massi@ximian.com>
8943 * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8944 on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8947 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
8949 * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8951 2004-09-30 Lluis Sanchez Gual <lluis@novell.com>
8953 * image.c: Always canonicalize image file names, to avoid loading
8954 the same assembly twice when referenced using a relative path.
8956 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
8958 * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8960 * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8962 * marshal.c: Fix warnings.
8964 2004-09-29 Geoff Norton <gnorton@customerdna.com>
8966 * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8967 attempting to marshal the delegate_trampoline as the method_addr.
8968 This patch has a static hashtable of marshalled delegates so that
8969 we can map delegate_trampoline addresses back to delegates. This
8970 allows a delegate passed to managed code to be passed back into native
8973 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
8975 * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8977 * reflection.c (method_encode_code): Align method headers properly.
8980 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
8982 * marshal.c: In the runtime invoke wrapper, reset the abort
8983 exception if it is cached. This avoids the automatic rethrowal of
8984 the exception after the catch of the wrapper. Also check for pending
8985 interruptions before calling the managed method. This is done using
8986 the new method emit_thread_force_interrupt_checkpoint, since the
8987 normal checkpoint method is ignored when running the invoke wrapper.
8988 * object.c: If the abort exception is rethrown, set the abort_exc
8989 field of the thread, so it will be rethrown aftere every catch.
8990 * threadpool.c: Only run an interruption checkpoint if what has been
8991 requested is a stop of the thread (aborts will be ignored).
8992 * threads.c: By default, a thread will now never be interrumped while
8993 running the runtime invoke wrapper (this ensures that runtime_invoke
8994 will always return to the caller if an exception pointer is provided).
8995 There is a new special method mono_thread_force_interruption_checkpoint()
8996 to force an interruption checkpoint even if running a protected
8997 wrapper, which is used by the same runtime invoke wrapper to do a check
9000 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
9002 * object.c, object-internals.h: Implemented mono_release_type_locks,
9003 which releases the cctor locks held by a thread.
9004 * threads.c, threads.h: In thread_cleanup, release cctor locks held
9005 by a thread. Added mono_thread_exit() method to be used to safely stop
9008 2004-09-28 Raja R Harinath <rharinath@novell.com>
9010 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9011 Move null check before dereference. Avoid indexing beyond the end
9012 of the 'modules' array.
9014 2004-09-28 Raja R Harinath <rharinath@novell.com>
9016 * metadata-internals.h (MonoImage): Add module_count field.
9017 * image.c (load_modules): Set image->module_count.
9018 (mono_image_load_file_for_image): Use image->module_count.
9019 * reflection.c (mono_image_load_module): Append to image->modules array
9020 of dynamic assembly.
9021 (mono_module_get_object): Fix loop to actually increment index.
9022 Use image->module_count.
9023 * assembly.c (mono_assembly_load_references): Use image->module_count.
9024 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9027 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
9029 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
9030 Avoid assert on generic types.
9032 2004-09-26 Zoltan Varga <vargaz@freemail.hu>
9034 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
9036 * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
9038 * reflection.c (mono_reflection_marshal_from_marshal_spec): New
9039 function to convert a MarshalSpec structure to its managed counterpart.
9041 * reflection.c: Fix warnings.
9043 * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
9046 * icall.c (mono_create_icall_signature): Fix build.
9048 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
9050 * icall.c: Add MakePointType icall.
9052 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
9055 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9057 * threadpool.c: reuse allocated slots in the queue.
9059 2004-09-24 Zoltan Varga <vargaz@freemail.hu>
9061 * object-internals.h (MonoReflectionDllImportAttribute): New structure.
9063 * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
9065 * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
9068 * tabledefs.h: Add constants for pinvoke attributes BestFit and
9069 ThrowOnUnmappableChar.
9071 * icall.c (ves_icall_Type_GetPacking): New icall.
9073 2004-09-24 Martin Baulig <martin@ximian.com>
9075 * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
9077 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9080 (mono_domain_set): allow setting a domain that is being unloaded.
9081 (mono_domain_unload): invoke the DomainUnload callbacks in the domain
9084 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
9086 * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
9087 the GetCustomAttributes icall.
9089 2004-09-23 Martin Baulig <martin@ximian.com>
9091 * object-internals.h (MonoReflectionGenericParam): Replaced
9092 'has_ctor_constraint', `has_reference_type' and `has_value_type'
9093 with `guint32 attrs'.
9095 2004-09-23 Martin Baulig <martin@ximian.com>
9097 * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9099 2004-09-23 Martin Baulig <martin@ximian.com>
9101 * object-internals.h (GenericParameterAttributes): New enum.
9103 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
9105 * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9107 * class.c (init_events): Fill out event->other field.
9109 * class.c: Fix warnings.
9111 * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9113 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9115 * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9116 walk which doesn't supply the IL offset.
9118 2004-09-22 Martin Baulig <martin@ximian.com>
9120 * reflection.c (mono_reflection_setup_internal_class): If we're
9121 System.ValueType, System.Object or System.Enum, set
9122 `klass->instance_size' and create the vtable.
9123 (mono_reflection_create_internal_class): If we're an enum type,
9124 get the base class from our current corlib.
9126 2004-09-22 Zoltan Varga <vargaz@freemail.hu>
9128 * reflection.h (MonoResolveTokenError): New type.
9130 * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9133 * icall.c: Add an 'error' argument to the ResolveToken icalls.
9135 2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
9137 * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9138 Support also calling constructors, but only for already allocated objects.
9140 2004-09-17 Geoff Norton <gnorton@customerdna.com>
9142 * reflection.c (type_get_qualified_name): If the klass is null
9143 return the typename to avoid a NullRefEx.
9144 (encode_cattr_value): Get the qualified name of the boxed type,
9145 not the underlying enumtype. Fixes #62984.
9147 2004-09-21 Zoltan Varga <vargaz@freemail.hu>
9149 * marshal.c: Fix problems with previous checkin.
9151 2004-09-21 <vargaz@freemail.hu>
9153 * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9154 existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9156 * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9158 2004-09-21 Geoff Norton <gnorton@customerdna.com>
9160 * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9161 should only return a type for pointers, arrays, and passbyref types.
9164 2004-09-21 Martin Baulig <martin@ximian.com>
9166 * domain.c (mono_debugger_check_runtime_version): New public
9169 * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.
9171 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
9173 * reflection.c: Added missing sort to the declarative security
9174 attributes table. MS implementation stops seeing the attributes if the
9175 token number regress in the table (as shown by ildasm and permview).
9177 2004-09-20 Zoltan Varga <vargaz@freemail.hu>
9179 * object-internals.h (MonoReflectionModule): Add 'token' field.
9181 * reflection.c (mono_reflection_get_token): Add support for Module
9183 (mono_module_get_object): Set 'token' field.
9184 (mono_module_file_get_object): Set 'token' field.
9186 * icall.c: Add new Assembly and Module icalls.
9188 * appdomain.c: Bump corlib version.
9190 2004-09-19 Zoltan Varga <vargaz@freemail.hu>
9192 * loader.h loader.c class.h class.c: Add helper functions for obtaining
9193 tokens of metadata objects.
9195 * reflection.h reflection.c (mono_reflection_get_token): New function
9196 to obtain the token of a metadata object.
9198 * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9200 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
9202 * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9204 * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9206 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
9208 * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9209 * object-internals.h: Added 3 MonoArray* members to MonoReflection
9210 AssemblyBuilder to access the permissions set in the class lib.
9211 * reflection.c: Added security attributes encoding step in
9212 mono_image_build_metadata.
9213 * tabledefs.h: Added new security actions defined in 2.0:
9214 LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9216 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
9218 * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9221 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
9223 * locales.c: nullify the ICU_collator member of CompareInfo when it is
9224 finalized. There where random SIGSEVs at program termination, when
9225 an object being finalized was trying to do a string comparison and
9226 the current culture was already finalized.
9228 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9230 * threads.c: call thread_cleanup before finishing the thread if we get
9233 2004-09-16 Zoltan Varga <vargaz@freemail.hu>
9235 * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9236 assemblies from the parent. Fixes #65665.
9238 2004-09-15 Zoltan Varga <vargaz@freemail.hu>
9240 * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9243 2004-09-14 Bernie Solomon <bernard@ugsolutions.com>
9245 * reflection.h: add prototype for mono_get_dbnull_object
9246 * reflection.c: add prototypes for get_default_param_value_blobs
9247 and mono_get_object_from_blob for fussier compilers
9249 2004-09-14 Lluis Sanchez Gual <lluis@novell.com>
9251 * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9252 false deadlock checks in class initialization.
9254 2004-09-13 Zoltan Varga <vargaz@freemail.hu>
9256 * image.c (mono_image_addref): Fix comment.
9258 * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9261 2004-09-12 Jambunathan K <kjambunathan@novell.com>
9263 * reflection.c (mono_param_get_objects): Modified to return
9264 ParameterInfo.DefaultValue object.
9266 (get_default_param_value_blobs):
9267 (mono_get_object_from_blob):
9268 (mono_get_dbnull_object): New helper routines.
9270 * object.c (mono_get_constant_value_from_blob): New helper routine
9271 carved out from get_default_field_value ()
9273 * object-internals.h (mono_get_constant_value_from_blob): Added
9274 function declaration.
9276 2004-09-11 Zoltan Varga <vargaz@freemail.hu>
9278 * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load
9279 referenced assemblies. Fixes #62135.
9281 * exception.h exception.c (mono_get_exception_file_not_found2): New
9284 2004-09-10 Zoltan Varga <vargaz@freemail.hu>
9286 * class.h class.c: Add mono_type_get_underlying_type ().
9288 2004-09-09 Geoff Norton <gnorton@customerndna.com>
9290 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9291 Fix GetTypes() to support dynamically created assemblies.
9293 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
9295 * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9297 * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9300 * reflection.h reflection.c loader.c: Allow dynamic construction of
9301 pinvoke methods. Fixes #65571.
9303 * reflection.c (mono_reflection_get_type): Revert previous change since
9304 it causes regressions.
9306 2004-09-08 Martin Baulig <martin@ximian.com>
9308 * class.c (class_compute_field_layout): Don't call
9309 mono_class_layout_fields() for open generic instances.
9311 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9312 * threads.c appdomain.c: fix typo in GC macro
9314 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9316 * threads.c: don't call mono_thread_detach() in start_wrapper(),
9317 avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9319 2004-09-08 Zoltan Varga <vargaz@freemail.hu>
9321 * image.c (mono_image_close): Applied patch from
9322 vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9323 assembly is loaded multiple times from data.
9325 * image.c (mono_image_open): Fix warning.
9327 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
9329 * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9332 * reflection.c (mono_reflection_create_runtime_class): Initialize
9333 klass->nested_classes. Fixes #61224.
9335 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9337 * threads.c: sched_yield() on exit, to allow threads to quit.
9339 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
9341 * object.c (mono_unhandled_exception): Remove leftover debug code.
9343 2004-09-07 Atsushi Enomoto <atsushi@ximian.com>
9345 * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9347 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
9349 * marshal.c (emit_marshal_array): Really null terminate string arrays.
9351 * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9353 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
9355 * marshal.c (emit_marshal_array): Null terminate string arrays.
9357 * marshal.c (raise_auto_layout_exception): Fix warning.
9359 * reflection.c (mono_param_get_objects): Initialize the default value
9360 with DBNull.Value, not null. Fixes #62123.
9362 2004-09-01 Miguel de Icaza <miguel@ximian.com>
9364 * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9365 throw an exception with a cute explanation.
9367 2004-09-06 Dick Porter <dick@ximian.com>
9369 * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9370 Close the new process's thread handle, as we don't use it. The
9371 handle stays around forever otherwise.
9373 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
9375 * object.c (arith_overflow): Fix warning.
9377 * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9378 calling conventions in method refs. Fixes #65352.
9380 * reflection.c: Fix warnings.
9382 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
9384 * icall.c: Add a new icall for Array.Clear
9386 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
9388 * object.c: When allocating an array, we have to throw
9389 an overflow exception if any of the lengths are < 0.
9391 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
9393 * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9394 properly. Also move implementation of string array marshalling to
9395 managed code. Fixes #42316.
9397 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9399 * assembly.c: provide more information when loading an assembly fails.
9401 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9403 * filewatcher.c: don't expect the development fam package to be
9406 2004-09-03 Zoltan Varga <vargaz@freemail.hu>
9408 * marshal.c: Make a copy of the signature cookie since it will be
9409 freed by the caller.
9411 * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9413 * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9415 * metadata.c (mono_metadata_free_marshal_spec): New function to free
9418 * marshal.c: More refactoring.
9420 * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9423 2004-09-03 Lluis Sanchez Gual <lluis@novell.com>
9425 * object.c: In mono_message_invoke, fill the output parameter array after
9426 calling the managed method (it was done before the call). This fixes
9429 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
9431 * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9434 2004-09-02 Martin Baulig <martin@ximian.com>
9436 * class.c (mono_class_instance_size): Don't allow generic type
9437 definitions or open generic instances.
9438 (mono_class_array_element_size): If we're a value type, call
9439 mono_class_instance_size() on the original class.
9441 * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9442 handle generic instances.
9444 * mono-debug-debugger.c (write_type): Handle generic instances
9447 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
9449 * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9450 the allocation request fails. Fixes #65089.
9452 * object.c (mono_runtime_free_method): Do not call mono_free_method.
9454 * object.c (mono_runtime_free_method): New function to free a dynamic
9457 * marshal.c (mono_delegate_free_ftnptr): New function to free the
9458 delegate trampoline.
9460 * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9461 with hasthis as dynamic,
9463 * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9465 * domain.c (mono_jit_info_table_remove): New function to remove an
9466 entry from the jit info table.
9468 * class-internals.h (MonoMethod): Add 'dynamic' field.
9470 * loader.c: Fix warnings.
9472 2004-09-01 Martin Baulig <martin@ximian.com>
9474 * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9475 instead of mono_debugger_lock() because the latter one is a no-op
9476 unless running in the debugger.
9478 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
9480 * class.c (class_compute_field_layout): Classes with auto-layout or
9481 reference fields are not blittable.
9483 2004-09-01 Dick Porter <dick@ximian.com>
9485 * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9486 mono_image_get_filename() to get the assembly location.
9489 * metadata.h: Fix compile warnings
9491 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
9493 * class.c (class_compute_field_layout): System.Object is blittable.
9495 * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9496 as in/out. Fixes #59909.
9498 2004-09-01 Martin Baulig <martin@ximian.com>
9500 * metadata.h (MONO_TYPE_ISREFERENCE): Call
9501 mono_metadata_generic_inst_is_valuetype() if we're a generic
9502 instance to check whether our underlying type is a reference type.
9504 2004-09-01 Martin Baulig <martin@ximian.com>
9506 * metadata.c (mono_type_size): If we're a generic instance, call
9507 mono_class_value_size() for value types.
9509 2004-08-31 Zoltan Varga <vargaz@freemail.hu>
9511 * marshal.c: Implement more custom marshalling functionality. Fixes
9514 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9516 * mono-debug.c, debug-mono-symfile.c: add some locking love.
9518 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
9520 * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9522 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9524 * icall.c: Fix some warnings.
9526 * threads.c (abort_appdomain_thread): Fix unref errors.
9527 (mono_thread_current): Fix THREAD_DEBUG define.
9529 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
9531 * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9533 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9535 2004-08-28 Zoltan Varga <vargaz@freemail.hu>
9537 * marshal.c (mono_marshal_get_native_wrapper): Add support for byref
9540 2004-08-28 Martin Baulig <martin@ximian.com>
9543 (mono_metadata_generic_inst_is_valuetype): New public function.
9545 * metadata.h (MONO_TYPE_ISSTRUCT): Call
9546 mono_metadata_generic_inst_is_valuetype() if we're a generic
9547 instance to check whether our underlying type is a valuetype.
9549 2004-08-26 Zoltan Varga <vargaz@freemail.hu>
9551 * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9554 2004-08-25 Martin Baulig <martin@ximian.com>
9556 * loader.c (mono_get_method_from_token): Abstract methods can also
9557 be generic and thus have type parameters.
9559 * metadata-internals.h
9560 (MonoDynamicImage): Added `GPtrArray *gen_params'.
9562 * reflection.c (mono_image_get_generic_param_info): Don't create a
9563 metadata row, just add an entry to the `gen_params' array.
9564 (build_compressed_metadata): Sort the `gen_params' array and then
9565 actually create the metadata.
9567 2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9569 * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9571 2004-08-25 Zoltan Varga <vargaz@freemail.hu>
9573 * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9575 2004-08-24 Martin Baulig <martin@ximian.com>
9577 * class.cs (mono_class_is_subclass_of): Like an interface, a
9578 generic instance also derives from System.Object.
9580 2004-08-23 Zoltan Varga <vargaz@freemail.hu>
9582 * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9583 custom modifiers to be in any order. Fixes #61990.
9585 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
9587 * object.c: Register mono_object_new_fast icall.
9589 * object.c (mono_class_get_allocation_ftn): Return to calling
9590 mono_object_new_fast, since it seems faster to compute the object
9591 size in unmanaged code than passing it as a parameter.
9593 * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9595 * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9596 this function with Boehm as the oom handler, so we don't have to check
9597 the result of GC_malloc.
9599 * object.c: Remove checks for oom.
9601 * object.h object.c (mono_class_get_allocation_ftn): New function to
9602 return the icall which can be used to allocate an instance of a given
9605 * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9607 * class-internals.h: Add 'enabled' field.
9609 2004-08-19 Zoltan Varga <vargaz@freemail.hu>
9611 * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9613 2004-08-18 Jambunathan K <kjambunathan@novell.com>
9614 * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9617 2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
9619 * appdomain.c: use the Tls function for appdomain too,
9620 at Zoltan's request. Actually return in mono_context_get
9622 * appdomain.c, profiler.c, threads.c: use __thread
9624 2004-08-18 Zoltan Varga <vargaz@freemail.hu>
9626 * appdomain.c threads.c: Call GC_CreateThread on windows.
9628 * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9629 multiple libraries since this don't work on windows.
9631 2004-08-18 Martin Baulig <martin@ximian.com>
9634 (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9637 * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9638 MonoMethodNormal since we also need it for abstract and interface
9642 (build_compressed_metadata): Sort the GenericParam table.
9643 (mono_image_create_token): Added `gboolean create_methodspec'
9644 argument; this is false when generating a MethodImpl token.
9645 (reflection_methodbuilder_to_mono_method): Abstract and interface
9646 methods may also have generic parameters.
9648 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
9650 * appdomain.c: thread local alloc
9652 2004-08-17 Martin Baulig <martin@ximian.com>
9654 * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9657 (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9660 * class.c (mono_type_get_full_name): New public function.
9661 (mono_type_get_name): Don't include the type arguments.
9663 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
9665 * Makefile.am: Build static versions of libmetadata and libmonoruntime
9666 for inclusion into the mono executable.
9668 2004-08-16 Martin Baulig <martin@ximian.com>
9670 * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9671 MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9673 2004-08-14 Martin Baulig <martin@ximian.com>
9675 * class.c (dup_type): Also copy the `byref' field.
9677 2004-08-15 Zoltan Varga <vargaz@freemail.hu>
9679 * reflection.c (create_dynamic_mono_image): Revert the last change
9680 since it breaks bootstrap.
9682 2004-08-14 Zoltan Varga <vargaz@freemail.hu>
9684 * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9686 * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9687 not free them with g_free.
9689 2004-08-11 Martin Baulig <martin@ximian.com>
9691 * reflection.c (mono_reflection_setup_internal_class): Also call
9692 mono_class_setup_mono_type() if we already have a `tb->type.type'.
9694 2004-08-09 Sebastien Pouliot <sebastien@ximian.com>
9696 * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when
9697 called during default (first) AppDomain creation. Keep track of
9698 Evidence when loading assemblies.
9700 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9702 * opcodes.c, opcodes.h: reduce runtime relocations.
9704 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9706 * culture-info.h, locales.c: fixes and chages to sue the new
9707 optimized format of the locale data.
9708 * culture-info-tables.h: regenerated.
9710 2004-08-06 Geoff Norton <gnorton@customerdna.com>
9712 * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9714 2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
9716 * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9717 ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9718 * domain-internals.h: icall declaration.
9719 * icall.c: icall registration.
9720 * object-internals.h: New fields in MonoAssembly for CAS.
9722 2004-08-05 Duncan Mak <duncan@ximian.com>
9724 * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9727 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9729 * reflection.c: fix to deal with object[] arrays in custom ctors
9732 2004-08-05 Martin Baulig <martin@ximian.com>
9734 * class.c (mono_class_array_element_size): Added support for
9735 generic instances and correctly handle "recursive" types.
9737 2004-08-05 Zoltan Varga <vargaz@freemail.hu>
9739 * assembly.c: Fix warnings.
9741 2004-08-04 Martin Baulig <martin@ximian.com>
9744 (mono_type_get_name_recurse): Added `gboolean include_arity'
9745 argument specifying whether or not we should include the generic
9746 arity in the type name.
9747 (_mono_type_get_name): New static function.
9748 (mono_class_setup_vtable): If we're a generic instance, don't
9749 include the generic arity in the names of explicit method
9752 2004-08-03 Martin Baulig <martin@ximian.com>
9754 * class.c (mono_type_get_name_recurse): Enclose the generic type
9755 arguments in `<', '>'.
9757 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9759 * gc.c: make GC warning messages use the trace API, they are just
9760 noise to most of the users.
9762 2004-08-03 Martin Baulig <martin@ximian.com>
9764 * debug-mono-symfile.c (read_string): Correctly read the string.
9766 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
9768 * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9770 * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9772 (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9774 2004-07-30 Martin Baulig <martin@ximian.com>
9776 * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9777 Reflect latest symbol writer changes.
9779 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9781 * object.c: always create an object if null is passed
9782 to Invoke() where a valuetype is expected.
9784 2004-07-29 Bernie Solomon <bernard@ugsolutions.com>
9786 * marshal.c (mono_marshal_init): make managed
9787 signatures match native ones better for 64bits.
9789 2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9791 * appdomain.c: hack to build correctly the private bin path on windows.
9794 2004-07-28 Lluis Sanchez Gual <lluis@novell.com>
9796 * assembly.c: Load mscorlib from the correct framework directory
9797 (mono/<version>/mscorlib.dll).
9798 * appdomain.h: Added prototypes for new functions.
9799 * internals.h: Added some prototypes.
9800 * domain.c: When initializing the runtime, get from the executable and
9801 the configuration files the runtime version that the app supports.
9802 Added support methods for reading app.exe.config. Added list of versions
9803 supported by the JIT. Added two new methods: mono_init_from_assembly,
9804 which initializes the runtime and determines the required version from
9805 the provided exe file, and mono_init_version, which initializes
9806 the runtime using the provided version.
9807 * icall.c: Get machine.config from version-specific directory.
9808 * reflection.c: When generating an image, embed the version number
9809 of the current runtime.
9811 2004-07-28 Dick Porter <dick@ximian.com>
9814 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9815 returned sockaddr size before creating the remote address object.
9816 Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9819 2004-07-28 Dick Porter <dick@ximian.com>
9821 * locales.c (string_invariant_compare_char): Fix invariant char
9822 compares between upper and lower cases. Fixes bug 61458.
9824 2004-07-27 Ben Maurer <bmaurer@ximain.com>
9826 * marshal.c: actually cache stelem.ref wrappers.
9828 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9830 * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image
9831 sections and remove the mono_cli_rva_map () function.
9833 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9835 * debug-mono-symfile.c: fix one more endianess issue, from a patch
9836 by Geoff Norton (<gnorton@customerdna.com>).
9838 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9840 * class.c: fix class loads for pointer types (typeof(int) !=
9843 2004-07-27 Martin Baulig <martin@ximian.com>
9845 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9846 reading the debugging information from an external ".mdb" file.
9848 2004-07-24 Martin Baulig <martin@ximian.com>
9850 * reflection.c (mono_image_get_type_info): Only write a class
9851 layout entry if we actually have a size or a packing size.
9853 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
9855 * reflection.c (type_get_fully_qualified_name):
9856 insert cast to get type checking of ?: with non-gcc compilers
9858 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
9860 * rand.c: use g_getenv for both lookups of
9863 2004-07-17 Martin Baulig <martin@ximian.com>
9865 * reflection.c (mono_reflection_bind_generic_method_parameters):
9866 Set `gmethod->reflection_info'.
9868 2004-07-17 Martin Baulig <martin@ximian.com>
9870 * class.c (mono_class_create_from_typedef): Insert the newly
9871 created class into the hash table before computing the interfaces
9872 since we could be called recursively.
9874 2004-07-16 Ben Maurer <bmaurer@ximain.com>
9876 * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9877 function to implement stelem.ref in managed code
9878 * class-internals.h, debug-helpers.c: a new wrapper type
9881 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9883 * gc.c: allow GC handles to work even when no GC is compiled in.
9884 Fix part of bug #61134 (GetAddrOfPinnedObject).
9886 2004-07-13 Peter Williams <peter@newton.cx>
9888 * process.c (complete_path): Make sure we don't attempt to execute
9891 2004-07-12 Geoff Norton <gnorton@customerdna.com>
9893 * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone
9894 boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary
9895 and will add/subtract the hour if needed
9897 2004-07-12 Martin Baulig <martin@ximian.com>
9899 * reflection.c (mono_field_get_object): If we have
9900 `field->generic_info', take the attributes from
9901 `field->generic_info->generic_type'.
9903 2004-07-12 Martin Baulig <martin@ximian.com>
9905 * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9906 This function must be called before initializing the runtime.
9907 (mono_debug_init_1): New function; call this after initializing
9908 the runtime, but before loading the assembly. It tells the
9909 debugger to load corlib and the builtin types.
9911 * mono-debug-debugger.c: Did some larger changes in the debugging
9912 code; support recursive class declarations, make sure we actually
9915 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9917 * debug-helpers.c: undo my previous patch and fixed the real issue in
9918 ../mini/exceptions-x86.c
9920 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9922 * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9923 when no HOME env. variable was set and a NullRef was thrown in a .cctor
9924 called from other .cctors.
9926 2004-07-09 Miguel de Icaza <miguel@ximian.com>
9928 * loader.c: Removed the mono_loader_wine_init hack now that we are
9929 doing a managed version of Windows.Forms.
9931 2004-07-09 Ben Maurer <bmaurer@ximian.com>
9933 * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9934 threadpool.c, threads.c: remove static data from rootset.
9936 2004-07-09 Dick Porter <dick@ximian.com>
9938 * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9939 Don't do any more processing if the matched length was 0. It was
9940 increasing the size of the string before. Fixes bug 61167.
9942 2004-07-09 Dick Porter <dick@ximian.com>
9946 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9947 Add support for SO_PEERCRED if its available.
9949 2004-07-09 Peter Bartok <pbartok@novell.com>
9950 * loader.c: winelib.exe.so error message is now only displayed if
9951 MONO_DEBUG is set. To help us avoid questions when people are trying
9952 out the new Managed.Windows.Forms.
9954 2004-07-08 Zoltan Varga <vargaz@freemail.hu>
9956 * class-internals.h debug-helpers.c marshal.c: Add new wrapper types
9957 for isinst and castclass wrappers.
9959 * class-internals.h icall.c: Move registration and lookup of JIT icalls
9960 to libmetadata from the JIT, so they could be used by the marshalling
9961 code and the interpreter.
9963 * marshal.c: Register marshalling related JIT icalls here instead of
9964 in mini.c. Use CEE_MONO_ICALL instead of the family of
9965 CEE_MONO_PROC<x> opcodes to call marshalling functions.
9967 * metadata.h: Remove unneeded marshalling conversions.
9969 * opcodes.c: Update for new opcodes.
9971 2004-07-08 Martin Baulig <martin@ximian.com>
9973 * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9974 (mono_debug_get_domain_data): Make this function static.
9976 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9978 * gc.c, object.h: add nice GC handle API for embedders.
9980 2004-07-06 Ben Maurer <bmaurer@ximian.com>
9982 * reflection.c: more changes for the new api
9984 * object.c: When we reflect on a field w/ a constant value, it
9985 will not have a memory location, so we must access metadata. Also,
9986 allow easier reading of strings so that we can read them from
9989 * class.c (mono_class_layout_fields): no need for literal fields here.
9991 * class-internals.h: api changes for const fields
9993 * icall.c (ves_icall_get_enum_info): use new apis for const fields
9995 2004-07-06 Martin Baulig <martin@ximian.com>
9997 * mono-debug.h: Increment version number to 44.
9999 * mono-debug.c (mono_debug_add_wrapper): The second argument is
10000 now a gpointer, rewrote this whole method.
10002 * mono-debug-debugger.c (mono_debugger_add_wrapper): New
10003 function. Add information about the wrapper in a new "misc table".
10005 * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
10006 for the new misc table.
10008 2004-07-05 Zoltan Varga <vargaz@freemail.hu>
10010 * metadata-internals.h image.c: Add a cache for helper signatures.
10012 * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
10014 2004-07-03 Zoltan Varga <vargaz@freemail.hu>
10016 * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
10017 delegates from a delegate. Fixes #61033.
10019 * marshal.c: Fix managed->native stringbuilder marshalling. Implement
10020 marshalling of stringbuilder arrays. Fixes #59900.
10022 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
10024 * icall.c: Add EnumBuilder:setup_enum_type icall.
10026 2004-06-30 Ben Maurer <bmaurer@ximian.com>
10028 * icall.c: Added a new icall for the property version of
10029 OffsetOfStringData.
10031 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
10033 * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
10034 it has a constant size across platforms.
10036 * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
10039 2004-06-29 Martin Baulig <martin@ximian.com>
10041 * mono-debug.c (mono_debug_add_method): Protect the whole function
10042 in mono_debugger_lock(), not just parts of it.
10044 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10046 * reflection.c: make sure padding bytes in heaps are zeroed.
10048 2004-06-24 David Waite <mass@akuma.org>
10050 * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
10051 image.c, loader.c, locales.c, marshal.c, metadata.c,
10052 mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
10053 string-icalls.c, threads.c: change to C90-style comments from C99 /
10056 2004-06-24 Dick Porter <dick@ximian.com>
10059 (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
10060 return createdNew. Fixes bug 60412.
10063 * icall.c: Add createdNew parameter to CreateMutex icall
10065 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10067 * reflection.c, object-internals.h: save default value in params.
10069 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10071 * appdomain.c: for paths in PrivateBinPath that are absolute, there's
10072 no need to build a new path combining that with the application base.
10075 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
10077 * reflection.c: fixed minor standard compliance issues.
10079 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10081 * reflection.c: fixed issue with encoding some custom attributes
10082 (arrays in properties and fields, bug #60411).
10084 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10086 * reflection.c: fix start address when copying the public key token.
10088 2004-06-23 Martin Baulig <martin@ximian.com>
10090 * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10091 the `exc' object in a static object to put it into the GC's root set.
10093 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10095 * reflection.c: make mono_reflection_setup_internal_class ()
10096 callable a second time to setup a new parent class.
10098 2004-06-23 Dick Porter <dick@ximian.com>
10100 * threads.c: Check for WAIT_IO_COMPLETION return values.
10102 2004-06-22 Sebastien Pouliot <sebastien@ximian.com>
10104 * appdomain.c: Removed the g_free on the public key token. Now copy
10105 the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10106 * assembly.c: Added public key token string value when loading
10107 assemblies. Fix bug #60439.
10108 * icall.c: Added missing informations (like public key) in
10109 GetReferencedAssemblies. Fix #60519.
10110 * image.h: Changed definition for public key token from const char*
10111 public_tok_value to guchar public_key_token [17];
10112 * reflection.c: Updated for changes to public key token.
10114 2004-06-22 Lluis Sanchez Gual
10116 * icall.c: In ves_icall_InternalExecute, when setting a filed, also look
10117 for the field in base classes.
10119 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10121 * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10122 mark headers as not supported, they are installed only for use by the
10125 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10127 * *.c, *.h: avoid namespace pollution in public headers.
10129 2004-06-21 Martin Baulig <martin@ximian.com>
10131 * exception.c (mono_get_exception_security): It's in
10132 "System.Security", not in "System".
10134 * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10135 the exception classes.
10137 2004-06-21 Martin Baulig <martin@ximian.com>
10139 * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10140 Protect the exception object from being finalized.
10142 2004-06-21 Martin Baulig <martin@ximian.com>
10144 * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10147 2004-06-21 Sebastien Pouliot <sebastien@ximian.com>
10149 * reflection.c: Load the assembly in mono_reflection_type_from_name,
10150 if it was not loaded before. Fix parts of #60439.
10152 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10154 * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10155 code that was broken since Ben's change: wrappers are now
10156 dependent on the method signature only again.
10158 2004-06-21 Martin Baulig <martin@ximian.com>
10160 * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10161 added interface support.
10163 2004-06-21 Martin Baulig <martin@ximian.com>
10165 * class.c (mono_vtable_get_static_field_data): New public method.
10167 2004-06-20 Atsushi Enomoto <atsushi@ximian.com>
10169 * filewatcher.c : Windows build fix to be compliant with API changes.
10171 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10173 * class.h, class.c: more accessors.
10174 * metadata.h, metadata.c: prepare for hiding MonoType and
10175 MonoMethodSignature: people should use the accessors from now on
10176 outside of the tree.
10178 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10180 * *.c, *.h: more API cleanups.
10182 2004-06-18 Jackson Harper <jackson@ximian.com>
10184 * assembly.c: Trace loading assemblies.
10185 * loader.c: Trace loading native libraries.
10186 * mono-config.c: Trace loading config files.
10188 2004-06-18 Dick Porter <dick@ximian.com>
10190 * locales.c: Tell ICU the lengths of strings, it can cope with
10191 embedded \0 then. Fixes bug 59274, and doesn't break bug 55822.
10193 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10195 * image.c: swapped name/filename;
10197 2004-06-18 Martin Baulig <martin@ximian.com>
10199 * mono-debug-debugger.c (write_class): Write the parent class at
10200 the end of the header.
10202 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10204 * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10206 2004-06-17 Raja R Harinath <rharinath@novell.com>
10208 * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la.
10209 (bundle_obj): New conditional define.
10210 (BUILT_SOURCES): Remove.
10211 ($(bundle_srcs)): Make parallel-make safe.
10212 (libmonoruntime_la_LIBADD): Make unconditional.
10213 (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj).
10214 (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10216 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
10218 * culture-info-tables.h: It was inconsistent with the latest
10221 2004-06-17 Zoltan Varga <vargaz@freemail.hu>
10223 * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10226 * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10229 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10231 * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10232 cleaned up public header threads.h.
10234 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10236 * Makefile.am, *.c, *.h: more API cleanups.
10238 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10240 * Makefile.am: removed monosn from compilation.
10241 * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10242 debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10243 image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10244 metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10245 mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10246 reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10248 2004-06-15 Jackson Harper <jackson@ximian.com>
10250 * assembly.c: Make locales lower case when searching the GAC for
10251 assemblies. gacutil will always make locales lowercase when
10252 installing so this effectively makes them case insensitive.
10254 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
10256 * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10257 * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10258 parameter which allows to choose whether the wait can be interrupted or
10259 not. Also added the method mono_monitor_enter(), which locks the monitor
10260 using an infinite wait and without allowing interruption.
10261 In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10263 * object.h: Added new fields in MonoThread. suspend_event holds the event
10264 used to susped/resume the thread. synch_lock is the lock object to use for
10265 modifying the thread state.
10266 * threads.c: Use the new synch_lock object for locking, instead of "this",
10267 which can generate deadlocks.
10268 Moved thread state change in Thread.Sleep and Thread.Join from managed
10269 to unmanaged code. This avoids a deadlock when the thread was suspended
10270 just after acquiring the thread lock.
10271 In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10272 Implemented Thread.Suspend using an event instead of ThreadSuspend,
10273 which is not fully implemented in the io-layer.
10274 * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10276 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10278 * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10279 threads-types.h: more API cleanups.
10281 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10283 * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10284 domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10285 threadpool.c, threads.c: first pass at the exported API cleanup.
10287 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10289 * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10291 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10293 * icall.c: added internalGetHome.
10295 2004-06-14 Dick Porter <dick@ximian.com>
10297 * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10298 possible to return successfully when '.' or '..' were the only
10299 entries in a directory, but were skipped. The MonoIOStat was not
10300 filled in in that case. Now return ERROR_NO_MORE_FILES instead.
10303 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10305 * reflection.c: make binaries run on .Net 1.1 by default.
10307 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10309 * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10311 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10313 * marshal.c: keep track of struct size with explicit layout
10316 2004-06-12 Martin Baulig <martin@ximian.com>
10318 * mono-debug-debugger.c: Comment out a debugging g_message().
10320 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10322 * reflection.c, reflection.h: do not free custom attrs that are cached.
10323 * icall.c: use braces to make code clearer.
10325 2004-06-11 Martin Baulig <martin@ximian.com>
10327 * class.h (MonoInflatedField): New type.
10328 (MonoClassField): Replaced `MonoType *generic_type' with
10329 `MonoInflatedField *generic_info'.
10332 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10334 2004-06-11 Martin Baulig <martin@ximian.com>
10336 * reflection.c (mono_image_create_method_token): Correctly encode
10339 2004-06-11 Martin Baulig <martin@ximian.com>
10341 * metadata.c (mono_metadata_parse_method_signature): When parsing
10342 a MethodDef which has VarArgs, also set sentinelpos if we don't
10343 have any parameters.
10345 2004-06-11 Martin Baulig <martin@ximian.com>
10347 * verify.c (mono_method_verify): In CEE_CALL, use
10348 mono_method_get_signature() to get the method's signature, unless
10349 we're a PInvoke method.
10351 2004-06-10 Jackson Harper <jackson@ximian.com>
10353 * assembly.c: Use <path>/lib/mono/gac for the extra paths
10354 lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10355 logical name as the supplied path is just a prefix to the gac not
10356 the direct path to it.
10358 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10360 * reflection.c: make the token for a created method match
10361 the token of the MethodBuilder it was created from
10362 (IKVM requires this behaviour now).
10364 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10366 * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10367 reflection.c, socket-io.c: leak fixes.
10369 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10371 * icall.c: handle sentinel pos in vararg methods in position different
10374 2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10376 * culture-info-tables.h: freshly generated.
10378 2004-06-09 Martin Baulig <martin@ximian.com>
10380 * loader.c (mono_get_method_constrained): Call `mono_class_init
10381 (constrained_class)'.
10383 2004-06-08 Gert Driesen <drieseng@users.sourceforge.net>
10385 * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10386 any methods. Fixes #59629.
10388 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
10390 * culture-info-tables.h: reflecting locale-builder updates.
10392 2004-06-08 Dick Porter <dick@ximian.com>
10395 * locales.c: Fixed compile warnings, including a real bug in
10396 CompareInfo_internal_compare.
10398 2004-06-08 Dick Porter <dick@ximian.com>
10401 (ves_icall_System_Globalization_CompareInfo_internal_index):
10402 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10403 Double-check the resuls of usearches, because ICU currently
10404 ignores most of the collator settings here. Fixes bug 59720.
10406 2004-06-08 Dick Porter <dick@ximian.com>
10409 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10410 Fix memory leak and segfault-causing typo. No idea how this one
10411 lasted so long without being noticed.
10413 2004-06-09 Zoltan Varga <vargaz@freemail.hu>
10415 * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10416 any methods. Fixes #59629.
10418 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10421 (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10422 own the critical section before). Removed dead code (that's done
10423 in the preload hook).
10425 (mono_assembly_load_with_partial_name): call the preload hook.
10427 2004-06-08 Martin Baulig <martin@ximian.com>
10429 * metadata.c (mono_metadata_signature_alloc): Default
10430 `sentinelpos' to -1.
10432 * reflection.c (mono_image_get_array_token): Likewise.
10434 2004-06-08 Martin Baulig <martin@ximian.com>
10436 * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10438 * metadata.c (mono_metadata_parse_method_signature): When parsing
10439 a MethodDef which has VarArgs, set sentinelpos.
10441 * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10442 `gint16' since we're using -1 for non-varargs methods.
10445 (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10446 (method_encode_signature): Added varargs support.
10447 (method_builder_encode_signature): Likewise.
10448 (mono_image_get_varargs_method_token): New static method.
10449 (mono_image_create_method_token): New public method; this is
10450 called via an icall instead of mono_image_create_token() when
10451 calling a varargs method.
10453 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
10455 * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10457 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
10459 * culture-info-tables.h : Reflecting the latest locale-builder that
10460 fixed empty array representation ({} to {0}).
10462 2004-06-07 Jackson Harper <jackson@ximian.com>
10464 * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10465 looking up extra gac paths. This allows MONO_GAC_PATH to act
10466 exactly like a prefix.
10468 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
10470 * reflection.c (mono_reflection_type_from_name): Make a copy of the
10471 type name before modifying it. Fixes #59405.
10473 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
10475 * culture-info.h: added fields for "all datetime patterns".
10476 * locales.c: ( ves_icall_System_Globalization_CultureInfo
10477 _construct_datetime_format ()): fill xxx_patterns fields.
10478 * object.h: added fields for "all datetime patterns" to
10479 MonoDateTimeFormatInfo.
10480 * culture-info-tables.h: reflecting locale-builder updates.
10482 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
10484 * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10485 the event has no add and remove methods. Fixes #59629.
10487 2004-06-05 Sebastien Pouliot <sebastien@ximian.com>
10489 * object.c: Fixed possible integer overflow when allocating large
10492 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
10494 * culture-info-tables.h: reflecting locale-builder updates.
10496 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
10498 * culture-info-tables.h: reflecting locale-builder updates.
10500 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
10502 * culture-info-tables.h: reflecting locale-builder updates.
10504 2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
10506 * threads.c: Made Thread.Sleep abortable.
10508 2004-06-02 Martin Baulig <martin@ximian.com>
10510 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10512 * debug-mono-symfile.h: Bumped symbol file version number to 37.
10514 2004-05-31 Zoltan Varga <vargaz@freemail.hu>
10516 * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10518 2004-05-30 Jackson Harper <jackson@ximian.com>
10520 * reflection.c: Do not hardcode assembly versions or public key
10521 tokens anymore. All of this except the corlib section was dead
10524 2004-05-29 Zoltan Varga <vargaz@freemail.hu>
10526 * object.c (mono_runtime_invoke_array): Automatically create boxed
10527 objects for byref valuetypes if needed. Fixes #59300.
10529 * object.c (mono_method_return_message_restore): Handle
10530 MONO_TYPE_OBJECT as well.
10532 2004-05-28 Jackson Harper <jackson@ximian.com>
10534 * reflection.c: The modified type encoding was causing build
10535 problems. Reverted for now.
10537 2004-05-28 Jackson Harper <jackson@ximian.com>
10539 * reflection.c/h: Take an assembly ref so that we dont create
10540 fully qualified names when encoding types in the same assembly as
10541 the custom attribute being emitted.
10542 * appdomain.c: Increment version number.
10544 2004-05-26 Duncan Mak <duncan@ximian.com>
10547 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10548 Set the full version number (major, minor, build, revision).
10550 2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
10552 * marshal.c (emit_struct_conv): increment src/dst after blit
10553 (mono_marshal_get_managed_wrapper,
10554 mono_marshal_get_native_wrapper): make sure we have marshalling
10555 info before marshalling params (info computation affects
10558 * class.c (class_compute_field_layout): correctly deal with
10560 (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10561 value types (as per what windows dows by default)
10562 (mono_class_setup_mono_type): System.ValueType is blittable
10563 (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10566 * marshal.c (mono_marshal_load_type_info): flag types as
10567 non-blittable if the native layout doesn't match the managed
10570 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10572 * appdomain.c: don't add stuff in the private search path that is
10573 above the application base. If application base is not set, there's
10574 no private search path.
10576 2004-05-28 Zoltan Varga <vargaz@freemail.hu>
10578 * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10579 byref struct arguments in native->managed marshalling.
10581 2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com>
10583 * marshal.c (mono_marshal_get_runtime_invoke): correctly
10584 cache methods using signature (special case for methods
10585 that are value type or string class)
10587 * image.c (mono_image_close): clean up allocated GSList's
10588 in runtime_invoke_cache.
10590 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10592 * mono-config.c: set the correct path for mono_cfg_dir on windows when
10593 there's no MONO_CFG_DIR environment variable defined.
10595 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10597 * threads.c: windows version must be >= 0x0500 to include OpenThread.
10599 2004-05-28 Lluis Sanchez Gual <lluis@ximian.com>
10601 * threadpool.c: Really wait for 500ms after the async call, even if the wait
10603 * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10604 before waiting for it, and call CloseHandle after the wait to unref it.
10605 This will make sure that handles are not disposed too early.
10607 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10612 ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10615 * object.c: se the application_base only for the domain that runs
10616 Main. Fixes bug #59216,
10618 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10621 * object.c: only the domain in which Main is run have
10622 SetupInformation.ConfigurationFile set, so moved a few lines from
10623 appdomain.c to object.c.
10625 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10627 * appdomain.c: we tried to load [name].(dll|exe), but according
10628 to bug #57710, we must also try [culture]/[name].(dll|exe) and
10629 [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10630 There's a test case attached to bug #58922.
10632 2004-05-27 Dick Porter <dick@ximian.com>
10635 * file-io.c: Implemented icalls for locking and unlocking regions
10637 (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10638 FALSE on error (fixes both compiler warning and real bug.)
10640 2004-05-27 Atsushi Enomoto <atsushi@ximian.com>
10642 * culture-info-tables.h: reflecting locale-builder updates.
10644 (Added missing ChangeLog entry for 05/26)
10646 2004-05-27 Jackson Harper <jackson@ximian.com>
10648 * locales.c: Fix some cut and paste errors.
10650 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10652 * mono-config.c: set the correct path for config. directory on windows.
10654 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
10656 * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10659 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
10661 * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10662 from pinvoke functions.
10664 * marshal.c (mono_ftnptr_to_delegate): Implement this.
10666 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
10668 * culture-info-tables.h: reflecting locale-builder updates.
10670 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
10672 * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10675 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
10677 * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10678 * icall.c: Modified icalls for RNG.
10679 * rand.c|h: Changed RNG interface to allow thread-safe usage under
10680 Windows (CryptoAPI).
10682 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
10684 * locales.c: Fix build.
10686 2004-05-25 Atsushi Enomoto <atsushi@ximian.com>
10688 * culture-info-tables.h: reflecting locale-builder updates.
10690 2004-05-25 Jackson Harper <jackson@ximian.com>
10692 * locales.c: When creating the current culture use the $LANGs
10693 specific culture. So DateTimeFormat and NumberFormat entries are created.
10695 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
10697 * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10698 a char array as parameter.
10700 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
10702 * image.c: In mono_image_open(), always use an absolute path name to
10703 look for already loaded images.
10705 2004-05-24 Sebastien Pouliot <sebastien@ximian.com>
10707 * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10708 missing in the windows build (like older cygwin include files).
10710 2004-05-23 Sebastien Pouliot <sebastien@ximian.com>
10712 * icall.c: Fixed check for possible integer overflow in Buffer_
10713 BlockCopy icall. Replaced comments style // by /* */.
10715 2004-05-22 Zoltan Varga <vargaz@freemail.hu>
10717 * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10719 * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10720 check after MONO_VTADDR. Fixes pinvoke2.exe.
10722 * marshal.h marshal.c metadata.h: Add beginnings of support for
10723 ftnptr -> delegate marshalling.
10725 2004-05-21 Zoltan Varga <vargaz@freemail.hu>
10727 * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10728 * threads.c: Fix warnings.
10730 2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
10732 * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10733 * icall.c: Registered icalls for Suspend and Resume.
10734 * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10736 * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10737 * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10738 * process.c: Use WaitForSingleObjectEx.
10739 * threadpool.c: Use WaitForSingleObjectEx. Added some interruption
10741 * threads.c, threads.h: Make use of new Ex wait methods. Improved
10742 implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10743 for Suspend and Resume. Added new mono_thread_stop, used for stoping
10744 background threads. Added basic support for Abort in Windows.
10745 Start new threads using a managed delegate invoke wrapper. This wrapper
10746 has an interruption checkpoint that is needed since an interruption
10747 can be requested before the thread leaves the unmanaged code that starts
10749 * marshal.c: Added interruption checkpoint after every native call, and
10750 also before managed calls for wrappers called from unmanaged code to
10751 go into managed code.
10752 * object.h: Added new field in MonoThread to keep track of interruption
10755 2004-05-20 Zoltan Varga <vargaz@freemail.hu>
10757 * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10760 2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10767 * rand.c: getenv -> g_getenv (windows!)
10769 * process.c: complete_path is also used on non-windows platforms.
10771 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10773 * icall.c: new signature for Process_Start.
10775 * process.[ch]: new signature for Process_Start. If we're on windows
10776 and UseShellExecute is false, we have to search for the program by
10777 ourselves if we don't get a full path.
10779 2004-05-18 Zoltan Varga <vargaz@freemail.hu>
10781 * marshal.c (mono_marshal_get_native_wrapper): Fix up custom
10782 marshalling and call CleanUpNativeData if needed. Fixes #58646.
10784 2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10786 * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10789 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10791 * process.c: use double quotes to quote program name and arguments on
10792 windows. Fixes bug #58575.
10794 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10796 * file-io.c: don't return "." and ".." when using windows Find*File.
10798 2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com>
10800 * marshal.c: Don't pass wrappers to message init because method
10801 addressed used to lookup metadata. part of remoting[2|3] fix.
10803 2004-05-15 Jackson Harper <jackson@ximian.com>
10805 * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10806 path is essentially the same as MONO_PATH except that it points to
10807 GACs instead of lib directories.
10808 * loader.h: The user gac is gone so we dont need function to
10810 * mono-config.c: user gac option is now gone.
10812 2004-05-15 Jackson Harper <jackson@ximian.com>
10814 * culture-info.h: Make defines more consistent, add calendar data
10815 to the culture info table.
10816 * culture-info-tables.h: Add basic calendar data. Basically
10817 everyone gets default gregorian until all the data is
10819 * locales.c: Use the new consistent defines. Set calendar data for
10820 culture info objects.
10821 * object.h: add a field for calendar data to CultureInfo
10823 2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net>
10825 * image.c: image->runtime_invoke_cache is keyed on signatures now.
10826 * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10828 (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10829 (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10830 an extra param that is the pointer of the method to invoke. The IL for
10831 the invoke method is no longer specific to the method, but to the
10832 signature of the method. Thus, we can share the same code for multiple
10833 methods. This reduces the number of methods that have to be compiled.
10835 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
10837 * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10839 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10841 * icall.c: Optimize Buffer.BlockCopy.
10843 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10845 * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10846 DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10847 quote). Changed them to "MMMM yyyy".
10849 2004-05-12 Miguel de Icaza <miguel@ximian.com>
10852 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file.
10854 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
10856 * reflection.h: Updated after changes to managed structures.
10858 * appdomain.c: Bump corlib version.
10860 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10862 * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10865 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10867 * Makefile.am: link to ../os/libmonoos.la on windows.
10870 -If MONO_DEBUG, warn about non-existing directories in
10872 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10873 compile time variable.
10874 -Removed init_default_path and call mono_set_rootdir from
10875 libmonoos.a instead (windows only).
10877 * assembly.h: declare mono_assembly_getrootdir().
10880 * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10882 * loader.c: s/getenv/g_getenv/
10884 2004-05-11 Zoltan Varga <vargaz@freemail.hu>
10886 * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10888 * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10890 * metadata.h: Add new marshalling conversions.
10892 * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10895 * reflection.c (mono_reflection_get_type): Lookup the type in all
10896 modules of a multi-module assembly. Fixes #58291.
10898 2004-05-11 Lluis Sanchez Gual <lluis@ximian.com>
10900 * threads.c: Before aborting a background, set the StopRequested
10901 state. This avoids throwing the Abort exception.
10902 In mono_thread_manage, don't continue with the shutdown until all
10903 aborted threads have actually stopped.
10905 2004-05-10 Jackson Harper <jackson@ximian.com>
10907 * locales.c: Remove the modifier from culture names.
10909 2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10911 * Makefile.am: monosn is not installed any more. It has been deprecated
10914 2004-05-07 Jackson Harper <jackson@ximian.com>
10917 (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10918 Fix array construction, add bailout if the length is 0.
10920 2004-05-07 Dick Porter <dick@ximian.com>
10922 * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10923 machine doesn't have a DNS entry. Patch by Urs Muff
10924 (umuff@quark.com), fixes bug 57928.
10926 2004-05-06 Jackson Harper <jackson@ximian.com>
10928 * reflection.c: Handle null PublicTokens properly. alloc mem for
10929 assembly names culture so we dont crash when freeing it.
10931 2004-05-06 Jackson Harper <jackson@ximian.com>
10933 * assembly.c: Check the usergac when loading with partial names.
10935 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
10937 * rand.c|h: Added new icall for (optionally) seeding the PRNG. This
10938 does nothing for now (not required for Linux/Windows) but the class
10939 library can call it (and a newer or modified runtime could need it).
10940 * icall.c: Registred icall.
10942 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10944 * loader.c: prints a message on module loading error we set MONO_DEBUG
10945 environment variable.
10947 2004-05-05 Jackson Harper <jackson@ximian.com>
10949 * appdomain.c: Handle PublicKeyToken=null properly.
10951 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
10953 * environment.c|h: Added icall ves_icall_System_Environment_
10954 GetOSVersionString to get the current OS version as a string.
10955 * icall.c: Registred icall.
10957 2004-05-05 Lluis Sanchez Gual <lluis@ximian.com>
10959 * object.c: in mono_object_get_virtual_method(), take into account that
10960 non-virtual methods don't have a slot in the vtable. Check needed when
10961 the object is a proxy.
10963 2004-05-05 Zoltan Varga <vargaz@freemail.hu>
10965 * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10966 (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10968 * object.c (mono_class_compute_gc_descriptor): Fix warning.
10970 * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10971 passed when a valuetype is expected.
10973 * object.c (mono_unhandled_exception): Only set the exit code if the
10974 exception happens in the main thread. Fixes thread5.exe.
10976 * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10977 invalid names. Fixes #58047.
10979 2004-05-03 Jackson Harper <jackson@ximian.com>
10981 * assembly.c: This line was committed accidently and is unneeded.
10983 2004-05-03 Jackson Harper <jackson@ximian.com>
10985 * icall.c: Add new icall for Assembly::LoadWithPartialName
10986 * assembly.c/.h: new function that probes the GAC to load partial
10987 assembly names by Paolo Molaro.
10989 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10991 * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10992 * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10993 (type_get_fully_qualified_name): Added PublicKeyToken when building a
10996 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10998 * appdomain.c: fixed check for 'neutral' culture and removed warning.
10999 * reflection.c: fix bug when parsing a full type name and Version is not
11000 the last thing in the string.
11002 2004-05-03 Zoltan Varga <vargaz@freemail.hu>
11004 * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
11005 crashes when it is freed.
11007 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11009 * assembly.c: print the compat warning to stderr.
11011 2004-05-01 Miguel de Icaza <miguel@ximian.com>
11013 * assembly.c (mono_assembly_load_references): Add a compatibility
11014 hack to run old applications that might be still referencing the
11015 3300-based assemblies, only do this for System.xxx.
11017 2004-05-01 Jackson Harper <jackson@ximian.com>
11019 * appdomain.c: If the culture is neutral we set it to "".
11021 2004-04-29 Jackson Harper <jackson@ximian.com>
11023 * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
11025 2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
11027 * string-icalls.c: added low overhead function for copying chars
11028 * icall.c: added needed icall for the above function
11030 2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11032 * icall.c: fix return value of get_global_assembly_cache. Implemented
11033 Environment.GetLogicalDrives.
11035 2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
11037 * rand.c: try and talk to egd or prngd
11038 for random bytes if opening devices fail.
11040 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
11042 * marshal.c (mono_marshal_load_type_info): Calculate the minimum
11043 alignment for the type using the native alignment of its members
11044 instead of using klass->min_align.
11046 * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
11048 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11051 * socket-io.c: added check for sys/aio.h.
11053 2004-04-28 Dick Porter <dick@ximian.com>
11055 * threads.c: Don't abort a thread thats already aborting, when
11056 terminating everything.
11058 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11060 * icall.c: added 2 new async calls for Socket.
11062 * socket-io.[ch]: fixed some warnings. Added support for asynchronous
11063 IO on *nix systems.
11065 * threadpool.c: removed unused variable.
11067 2004-04-27 Zoltan Varga <vargaz@freemail.hu>
11069 * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
11071 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11073 * locales.c: put back string_invariant_tolower () and
11074 string_invariant_toupper ().
11076 2004-04-26 David Waite <mass@akuma.org>
11081 * unicode.h: remove comma from end of enumeration declarations
11083 2004-04-26 David Waite <mass@akuma.org>
11085 * debug-mono-symfile.h:
11088 * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11091 2004-04-26 Jackson Harper <jackson@ximian.com>
11093 * appdomain.c: Increment version number.
11095 2004-04-26 Jackson Harper <jackson@ximian.com>
11097 * appdomain.c: Set assembly references public token value when
11098 PublicKeyToken is specified, not the hash_value. Free public token
11099 values when free assembly name data. Previously the public key
11100 token was hex decoded, however we are using hex encoded public key
11101 tokens, so this is not neccasary.
11102 * assembly.c: Lookup assemblies in the gac if their public token
11103 value is set. Add function to allow enabling user gac
11104 lookups. Specify whether or not the assembly was loaded from the
11105 GAC. Compare full assembly names when checking the cache for
11106 assemblies (Temporarily disabled see comment in code). Remove
11107 mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11108 specifies trace-loader they get extra info to stdout on the
11109 loading of assemblies.
11110 * image.h: Add a field for an assembly references public token
11111 value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11112 whether an assembly has been loaded from the GAC.
11113 * image.c: Remove a corlib -> mscorlib name mapping.
11114 * loader.h: Add function to enable/disable the user gac.
11115 * mono-config.c: Check if the usergac is enabled in the config
11117 * icall.c: New icall to determine whether or not an assembly has
11118 been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11119 * tabldefs.h: Add constant for assemblyref flag that specifies a
11120 full public key is used instead of a public token.
11121 * reflection.c: Remove mscorlib -> corlib mappings. Set
11122 PublicTokenValue instead of hash value. This value is a hex
11123 string so it does not need to be expanded.
11125 2004-04-26 Martin Baulig <martin@ximian.com>
11127 * mono-debug-debugger.c (mono_debugger_initialize): Set
11128 `mono_debugger_initialized' before calling mono_debug_lock().
11130 2004-04-42 Robert Shade <rshade@dvsconsulting.com>
11132 * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11133 InternalToUpper/InternalToLower.
11134 * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11135 removed invariant culture shortcut. This is now done in managed code.
11136 * locales.c: (string_invariant_toupper/tolower) removed.
11138 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11140 * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11141 Added Poll internal call.
11143 * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11144 call for Poll. Select was too heavy for polling a single socket.
11146 * threadpool.[ch]: added mono_threadpool_cleanup.
11147 * threads.c: use it. Don't use Thread_Abort on windows.
11149 2004-04-23 Martin Baulig <martin@ximian.com>
11151 * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11153 2004-04-23 Sebastien Pouliot <sebastien@ximian.com>
11155 * icall.c: Registred new icalls for key pair protection and added an
11156 icall for Environment.GetFolderPath on Windows.
11157 * security.c|h: Added new icalls for key pair protection.
11159 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11161 * socket-io.c: don't display the non-supported family warning for known
11162 families. Now this is not displayed on windows when checking support
11165 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11167 * class.c: don't display the layout warning for static fields.
11169 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
11171 * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11172 * locales.c, locales.h: Added new icalls for culture-specific
11173 Char.ToLower and Char.ToUpper.
11175 2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11177 * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11180 2004-04-20 Martin Baulig <martin@ximian.com>
11182 * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11183 of the type name before passing it to mono_reflection_type_from_name().
11185 2004-04-19 Zoltan Varga <vargaz@freemail.hu>
11187 * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11188 encodings here. Fixes #56965.
11190 2004-04-18 Bernie Solomon <bernard@ugsolutions.com>
11192 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11193 fix test on strstr result not that I can see anything that
11194 relies on the result.
11196 2004-04-18 Zoltan Varga <vargaz@freemail.hu>
11198 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11201 * marshal.c (mono_marshal_get_string_encoding): New helper function.
11203 * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11204 function to determine which marshalling to use for strings. Fixes
11207 * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11209 * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11211 2004-04-15 Bernie Solomon <bernard@ugsolutions.com>
11213 * icall.c: #include mono-config.h
11215 2004-04-15 Jackson Harper <jackson@ximian.com>
11217 * culture-info-tables.h: Fix date formats for en-US culture.
11219 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
11221 * icall.c: Registered icalls for ThreadPool.GetMinThreads and
11222 ThreadPool.SetMinThreads.
11223 * threadpool.c: Implemented ThreadPool.GetMinThreads and
11224 ThreadPool.SetMinThreads.
11226 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11228 * mono-config.c: also load the .config file in the directory
11229 where the assembly was found.
11231 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11233 * assembly.c: load per-assembly config files.
11234 * icall.c: decrapified code to get the config dir and moved to
11236 * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11237 per-assembly config files. When doing a dll map lookup give precedence
11238 to the per-assembly data.
11240 2004-04-14 Martin Baulig <martin@ximian.com>
11242 * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11243 MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11244 and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11246 * mono-debugger-debugger.c: While the debugger is locked, remember
11247 whether the symbol tables have changes and send one single
11248 MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11250 2004-04-14 Zoltan Varga <vargaz@freemail.hu>
11252 * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11254 * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New
11257 * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11258 account when marshalling string arrays. Fixes #56965.
11260 2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
11262 * icall.c: Add new icalls mapping for security.
11263 * security.c|h: Add internal calls for WindowsIdentity,
11264 WindowsImpersonationContext and WindowsPrincipal.
11266 2004-04-13 Gert Driesen (drieseng@users.sourceforge.net)
11268 * class.c: Added comment to ensure the System.MonoDummy class
11269 is removed when no longer necessary
11271 2004-04-13 Miguel de Icaza <miguel@ximian.com>
11273 * appdomain.c: Pass arguments to the bootstraping exceptions to
11274 minimize JITed methods at boot
11276 * metadata.c (mono_exception_from_name_two_strings): Allow for the
11277 second string to be null.
11279 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11280 Change the protocol to minimize the JIT methods at startup. Now
11281 it Returns the internal codepage, if the value of "int_code_page"
11282 is 1 at entry, and we can not compute a suitable code page
11283 number, returns the code page as a string.
11285 2004-04-13 Jackson Harper <jackson@ximian.com>
11287 * culture-info-tables.h: Fix number of decimal digits for all
11290 2004-04-13 Jackson Harper <jackson@ximian.com>
11292 * icall.c: Clairfy out of sync error message. It is not always
11293 your corlib that is out of sync.
11295 2004-04-13 Zoltan Varga <vargaz@freemail.hu>
11297 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11298 properties when only the set accessor is overriden. Fixes #55874.
11300 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
11302 * assembly.c (mono_assembly_load_references): Make this thread safe.
11305 2004-04-08 Zoltan Varga <vargaz@freemail.hu>
11307 * monosn.c: Add missing initialization calls.
11309 2004-04-08 Bernie Solomon <bernard@ugsolutions.com>
11312 ves_icall_System_Globalization_CultureInfo_construct_number_format
11313 Fix g_assert so it compiles on fussier compilers re int/ptr
11316 2004-04-08 Dick Porter <dick@ximian.com>
11319 * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug
11320 53992. Also rearrange the code so that the internal calls return
11321 an error value and exceptions are thrown from managed code.
11323 * icall.c: Add type info to the socket icalls.
11325 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11327 * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11330 2004-04-07 Martin Baulig <martin@ximian.com>
11332 * class.c (mono_class_from_generic_parameter): Don't default
11333 `klass->parent' to `mono_defaults.object_type'.
11335 2004-04-07 Martin Baulig <martin@ximian.com>
11337 * reflection.c (mono_reflection_initialize_generic_parameter): Set
11338 `param->pklass->reflection_info'.
11340 2004-04-07 Jackson Harper <jackson@ximian.com>
11342 * culture-info-tables.h: Fix date separator symbol.
11344 2004-04-07 Martin Baulig <martin@ximian.com>
11346 * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11347 from System.Type to System.MonoType.
11349 2004-04-07 Martin Baulig <martin@ximian.com>
11352 (MonoReflectionGenericParam): Added `has_reference_type' and
11353 `has_value_type' fields.
11355 * reflection.c (mono_image_get_generic_param_info): Encode the
11356 correct flags if we have the `class' or `struct' constraint.
11358 2004-04-07 Martin Baulig <martin@ximian.com>
11361 (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11363 2004-04-07 Jackson Harper <jackson@ximian.com>
11365 * appdomain.c: Revert extra patches, just wanted to bump the
11368 2004-04-07 Jackson Harper <jackson@ximian.com>
11370 * Makefile.am: Add culture-info private headers.
11371 * icall.c: Add new icalls for contructing locales.
11372 * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11373 * locales.h: Declare new culture info construction methods.
11374 * object.h: Add new fields used to avoid the CultureMap to
11376 * culture-info.h: Definition of structs used in the culture info
11378 * culture-info-tables.h: Autogenerated tables that contain culture
11379 info data. This file was generated with the locale-builder tool.
11380 * appdomain.c: Incement corlib version number.
11382 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
11384 * appdomain.c: (mono_runtime_init) move mono_thread_init
11385 to before mono_object_new calls so critical sections
11386 are initialized before use.
11388 2004-04-07 Martin Baulig <martin@ximian.com>
11391 (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11392 (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11393 (ves_icall_MonoGenericParam_initialize): Removed.
11394 (monogenericparam_icalls): Removed.
11395 (generictypeparambuilder_icalls): Added new table for
11396 System.Reflection.Emit.GenericTypeParameterBuilder.
11399 (mono_reflection_define_generic_parameter): Removed.
11400 (mono_reflection_initialize_generic_parameter): This is now called
11401 from GenericTypeParameterBuilder's .ctor.
11403 2004-04-06 Martin Baulig <martin@ximian.com>
11405 * class.c (mono_class_init): Don't inflate nested classes in a
11407 (mono_type_get_name_recurse): Include the generic arguments for
11408 generic instances and generic type declarations.
11409 (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11410 (_mono_class_get_instantiation_name): Removed.
11411 (mono_class_create_generic): Always use `gklass->name' as our name.
11413 * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11415 * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11416 (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11417 (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11418 ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11419 closed generic methods here.
11422 (mono_reflection_generic_inst_get_nested_types): Removed.
11423 (inflate_mono_method): Copy the generic parameters from the
11424 MonoMethodHeader into out MonoGenericMethod.
11426 2004-04-06 Martin Baulig <martin@ximian.com>
11429 (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11431 * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11433 * reflection.c (build_compressed_metadata): If we have any entries
11434 in the GenericParam, MethodSpec or GenericParamConstraint tables,
11435 set the header version to 1.1.
11437 2004-04-06 Martin Baulig <martin@ximian.com>
11439 * class.c (mono_class_init): If we're a generic instance,
11440 initialize our nested classes, too.
11441 (_mono_class_get_instantiation_name): Deal with the new `!%d'
11444 2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11446 * process.c: quote the argument passed to the shell on windows.
11448 2004-04-05 Zoltan Varga <vargaz@freemail.hu>
11450 * threads.c (mono_alloc_special_static_data): Allow this to be
11451 called during startup.
11453 2004-04-02 Martin Baulig <martin@ximian.com>
11456 (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11458 2004-04-02 Zoltan Varga <vargaz@freemail.hu>
11460 * icall.c: Fix build.
11462 2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
11464 * Makefile.am: Added security.c|h.
11465 * icall.c: Added icall for get_UserName;
11466 * security.c: New file for security related icalls. Added function
11467 get_UserName for System.Environment (fix #56144).
11468 * security.h: New. Header file for security.c
11470 2004-04-02 Dick Porter <dick@ximian.com>
11472 * icall.c: Deleted the icalls that were obsoleted some time ago
11473 by the ICU string code, and which were mixed into the icall
11474 rearranging. Fixes bug 55969.
11477 * string-icalls.c: Deleted the code that those icalls reference.
11479 2004-04-01 Martin Baulig <martin@ximian.com>
11481 * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11483 * class.c (mono_class_from_generic_parameter): Don't set
11484 TYPE_ATTRIBUTE_INTERFACE.
11485 (my_mono_class_from_generic_parameter): Likewise.
11487 2004-04-01 Martin Baulig <martin@ximian.com>
11489 * loader.c (find_method): Added an optional `MonoClass *ic'
11490 argument to search in a specific interface.
11491 (mono_get_method_constrained): New public function.
11493 2004-04-01 Martin Baulig <martin@ximian.com>
11495 * reflection.c (mono_image_get_generic_field_token): Use the
11496 `handleref' cache here.
11498 2004-04-01 Martin Baulig <martin@ximian.com>
11500 * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11502 * reflection.c (create_generic_typespec): Use the `typespec' hash
11503 here, not the `typeref' one.
11505 2004-04-01 Martin Baulig <martin@ximian.com>
11507 * class.c (mono_class_inflate_generic_type): Moved the
11508 functionality into a new static inflate_generic_type() which
11509 returns NULL if it didn't do anything. Only increment the
11510 `mono_stats.inflated_type_count' if we actually inflated
11512 (mono_class_get_full): Check the classes type to see whether we
11513 need to inflate it; also inflate MONO_TYPE_(M)VAR.
11515 2004-04-01 Jackson Harper <jackson@ximian.com>
11517 * reflection.c: Set culture for assembly references.
11519 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
11521 * reflection.[ch], icall.[ch], Fix support for pinning variables.
11523 2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11526 (do_mono_assembly_open): the critical section also covers
11527 mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11529 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11532 (mono_manage_threads): abort the background threads when finishing.
11535 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11537 * gc.c: only close the done_event handle if there was no timeout.
11540 2004-03-30 Martin Baulig <martin@ximian.com>
11542 * icall.c (icall_entries): It's called "System.Activator", not
11543 "System.Activation".
11545 2004-03-30 Martin Baulig <martin@ximian.com>
11547 * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11548 (mono_class_create_from_typespec): Likewise.
11550 2004-03-30 Martin Baulig <martin@ximian.com>
11552 * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11553 `has_ctor_constraint' and `initialized'.
11555 2004-03-30 Martin Baulig <martin@ximian.com>
11557 * reflection.c (encode_new_constraint): New static function to add
11558 the constructor constraint attribute to a type parameter.
11559 (encode_constraints): Call encode_new_constraint() if necessary.
11562 (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11564 * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11566 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
11568 * reflection.c, icall.c: add support for pinning variables.
11570 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
11572 * marshal.c (mono_marshal_get_managed_wrapper):
11573 init bool local with zero rather than null.
11575 2004-03-29 Martin Baulig <martin@ximian.com>
11577 * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11578 the "official" behavior here.
11579 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11581 2004-03-29 Martin Baulig <martin@ximian.com>
11583 * icall.c: Reflect latest API changes.
11585 2004-03-29 Martin Baulig <martin@ximian.com>
11587 * loader.c (mono_get_method_from_token): Also call
11588 mono_metadata_load_generic_params () for abstract and interface
11589 methods; replace the type arguments in the method signature with
11590 the ones which are loaded from the metadata.
11592 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
11594 * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11595 of the lock is not the current thread. MS.NET don't do it, in spite of
11596 what the documentation says. See bug #56157.
11598 2004-03-28 Martin Baulig <martin@ximian.com>
11600 * class.c (mono_class_init): Don't call init_properties() and
11601 init_events() for generic instances; set `prop->parent' when
11602 inflating properties.
11604 * reflection.c (mono_generic_inst_get_object): Call
11605 `mono_class_init (ginst->klass)'.
11606 (mono_type_get_object): Only create a MonoGenericInst if your
11607 generic type is a TypeBuilder.
11608 (do_mono_reflection_bind_generic_parameters): Only set
11609 `ginst->is_dynamic' if our generic type is a TypeBuilder.
11611 2004-03-28 Zoltan Varga <vargaz@freemail.hu>
11613 * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11616 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11618 * icall.c: added Kill_internal icall.
11619 * process.[ch]: added Kill_internal icall.
11621 2004-03-25 Martin Baulig <martin@ximian.com>
11623 * class.h (MonoStats): Added `generic_instance_count',
11624 `inflated_method_count', `inflated_type_count' and
11625 `generics_metadata_size'.
11627 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11629 * reflection.c: no warnings now.
11631 2004-03-25 Martin Baulig <martin@ximian.com>
11633 * class.c (mono_class_get_full): New public function; does a
11634 mono_class_get(), but also takes a `MonoGenericContext *'.
11636 * loader.c (mono_field_from_memberref): Renamed to
11637 `field_from_memberref', made static and added `MonoGenericContext *'
11639 (mono_field_from_token): Added `MonoGenericInst *' argument.
11640 (method_from_memberef): Likewise.
11641 (mono_get_method_from_token): Likewise.
11642 (mono_get_method_full): New public function; does a
11643 mono_get_method(), but also takes a `MonoGenericContext *'.
11645 * verify.c (mono_method_verify): Get the method's generic context
11646 and pass it to mono_field_from_token(), mono_get_method_full() and
11647 mono_class_get_full().
11649 2004-03-25 Martin Baulig <martin@ximian.com>
11651 * class.c (mono_class_inflate_generic_type): Take a
11652 `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11653 `MonoGenericMethod *'.
11655 2004-03-25 Martin Baulig <martin@ximian.com>
11657 * loader.h (MonoMethodInflated): Store the MonoGenericContext
11658 instead of the MonoGenericMethod here.
11660 2004-03-25 Martin Baulig <martin@ximian.com>
11662 * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11663 each time we create a new MonoGenericInst, we also create a new
11664 context which points back to us.
11666 * class.c (inflate_method): Use `ginst->context' instead of
11667 creating a new context.
11669 * loader.c (method_from_memberref): Use
11670 `klass->generic_inst->context' instead of creating a new context.
11672 2004-03-25 Martin Baulig <martin@ximian.com>
11674 * class.h (MonoGenericContext): New struct.
11675 (MonoGenericMethod): Removed `generic_inst'.
11677 * class.c (mono_class_inflate_generic_method): Take a
11678 `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11680 2004-03-25 Martin Baulig <martin@ximian.com>
11682 * loader.h (MonoMethodInflated): New typedef.
11684 * metadata.h (MonoMethodSignature): Removed `gen_method', make
11685 `generic_param_count' consume just 30 bits, added `is_inflated'
11686 and `has_type_parameters' flags (one bit each).
11688 * class.c (mono_class_inflate_generic_method): Create a
11689 MonoMethodInflated instead of a MonoMethodNormal and set
11690 `is_inflated' in the method signature.
11692 * class.h (MonoGenericMethod): Removed `generic_method'.
11694 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
11696 * image.c: Make sure the name of a MonoImage is always an absolute path.
11697 This fixes bug #54415.
11699 2004-03-24 Martin Baulig <martin@ximian.com>
11701 * class.c (mono_class_setup_vtable): If we're a generic instance,
11702 use our generic type's vtable size.
11704 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
11706 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11707 MONO_NO_UNLOAD env var as a temporary workaround for unloading
11710 2004-03-23 Martin Baulig <martin@ximian.com>
11712 * class.h (MonoDynamicGenericInst): Added `int count_events' and
11713 `MonoEvent *events'.
11715 * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11716 (typebuilder_icalls): Added "get_event_info"; calls
11717 mono_reflection_event_builder_get_event_info().
11719 * reflection.c (mono_reflection_generic_inst_initialize): Added
11720 `MonoArray *events'.
11721 (mono_reflection_event_builder_get_event_info): New function.
11723 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
11725 * object.h: add mono_type_initialization_init
11727 * object.c (mono_runtime_class_init):
11728 implement class constructor synchronization rules
11729 to cope with threading issues.
11730 add mono_type_initialization_init
11732 * appdomain.c (mono_runtime_init): call
11733 mono_type_initialization_init
11735 * class.h: removing initializing field from MonoVTable
11737 2004-03-23 Martin Baulig <martin@ximian.com>
11739 * class.c (my_mono_class_from_generic_parameter): Use
11740 `param->name' if it's not NULL.
11742 2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
11744 * class.c: do not insert non-virtual methods in the vtable.
11745 * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11746 that means the method is non-virtual. This never would have
11749 2004-03-22 Lluis Sanchez Gual <lluis@ximian.com>
11751 * profiler.c: Added lock for accessing coverage_hash.
11753 2004-03-22 Martin Baulig <martin@ximian.com>
11755 * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11756 `method->method->signature->generic_param_count != 0' to make it
11757 work for interface methods.
11759 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11761 * process.c: quote the string passed to the shell using g_shell_quote.
11763 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11766 (mono_threads_manage): don't remove the finalizer thread and self
11767 from the threads hash table so that mono_thread_manage can be called
11770 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11772 * process.c: quote the arguments when UseShellExecute is true. Fixes
11775 2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11777 * threads.c: set mono_thread_detach as a cleanup routine for every
11778 thread. This way it's always executed upon thread termination, either
11779 aborted or finished normally. No more xsp hangs!
11781 2004-03-17 Martin Baulig <martin@ximian.com>
11783 * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11784 `int count_nested' and a `MonoType **nested'.
11786 * reflection.c (mono_reflection_bind_generic_parameters): Moved
11787 most of the functionality into a new static
11788 do_mono_reflection_bind_generic_parameters() and don't take a
11789 `MonoType *nested_in' argument any more. Don't compute nested
11791 (mono_reflection_generic_inst_get_nested_types): New public method
11792 to get nested types.
11794 * class.c (mono_class_create_generic): Set `klass->nested_in' if
11795 we're a nested class.
11797 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11798 mono_reflection_generic_inst_get_nested_types() to compute the
11801 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
11803 * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11804 descriptive error message under windows.
11806 2004-03-17 Martin Baulig <martin@ximian.com>
11808 * class.c (dup_type): Added `const MonoType *original' argument;
11809 copy the attrs from the original type.
11811 2004-03-17 Martin Baulig <martin@ximian.com>
11813 * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11814 `m->generic_inst_cache' here.
11816 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
11818 * exception.h exception.c: Add stack_overflow_exception.
11820 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11823 (overlapped_callback): call SetEvent *after* invoking the callback.
11824 No need to call CloseHandle.
11826 2004-03-16 Martin Baulig <martin@ximian.com>
11828 * reflection.c (mono_image_get_fieldref_token): Take a
11829 `MonoReflectionField *' instead of a `MonoClassField *' and a
11830 `MonoClass *'; store the `MonoReflectionField *' in the hash.
11832 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11834 * appdomain.c: don't add the culture to the filename we're looking for
11835 if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11837 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11839 * locales.c: don't ignore symbols when doing case insensitive compares.
11840 Thanks Dick! Fixes bug #54046.
11842 * threads.c: surround 'threads' usage with enter/leave in
11843 mono_thread_manage.
11845 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
11847 * marshal.c (mono_marshal_get_native_wrapper): Char arrays are
11848 implicitly marshalled as [Out]. Fixes #55450.
11850 (mono_marshal_get_runtime_invoke): Zero out the result if there is
11853 2004-03-16 Martin Baulig <martin@ximian.com>
11855 * class.c (mono_class_from_generic_parameter): Use the actual
11858 2004-03-16 Martin Baulig <martin@ximian.com>
11860 * reflection.c (type_get_signature_size): New static function.
11861 Compues the size of the type in a method signature.
11862 (method_get_signature_size): New static function; calls
11863 type_get_signature_size() to compute the actual size of the
11864 method's signature.
11865 (method_encode_signature): Use method_get_signature_size() to get
11866 the signature's size rather than using `nparams * 10'.
11868 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11870 * file-io.h: define here WapiOverlapped on windows. I don't want the
11871 regular OVERLAPPED one.
11874 * threadpool.c: somehow, BindIoCompletionCallback is not found.
11875 Disabling AIO on windows.
11877 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11879 * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11882 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11884 * appdomain.c: upgraded corlib version.
11886 * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11887 and BeginWrite. Allow opening files for asynchrnous operations.
11889 * file-io.h: new struct that maps FileStreamAsyncResult.
11890 * icall.c: added new icalls.
11891 * process.[ch]: support setting child process environment variables
11892 and use the SHELL or COMSPEC when UseShellExecute is true.
11894 * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11895 callback for async. IO is here and also BindHandle.
11897 * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11900 2004-03-14 Zoltan Varga <vargaz@freemail.hu>
11902 * reflection.c (create_custom_attr): Allow len == 0.
11904 * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11905 computation on big-endian machines.
11907 2004-03-13 Martin Baulig <martin@ximian.com>
11909 * class.h (MonoGenericInst): Added `int count_ifaces'.
11911 * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11912 `ginst->count_ifaces' instead `klass->interface_count' since we
11913 may get called before the vtable is created.
11915 * loader.c (mono_method_get_param_names): If we're a generic
11916 instance, return and don't initialize the class.
11918 * reflection.c (mono_reflection_setup_generic_class): Don't call
11919 ensure_runtime_vtable().
11920 (mono_reflection_bind_generic_parameters): Set
11921 `ginst->count_ifaces'.
11923 2004-03-11 Jackson Harper <jackson@ximian.com>
11927 * unicode.h: Remove unused System.Char icalls.
11929 2004-03-11 Miguel de Icaza <miguel@ximian.com>
11931 * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11932 code when we P/Invoke the first library in Windows.Forms, instead
11933 of when we first open the assembly.
11935 * assembly.c: Drop the lookup from here.
11937 2004-03-10 Martin Baulig <martin@ximian.com>
11939 * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11940 class for properties, fields and events. Finally fixes #54945.
11942 2004-03-10 Martin Baulig <martin@ximian.com>
11944 * metadata.c (mono_metadata_class_equal): New static function;
11945 checks whether two generic instances or two generic parameters are
11947 (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11950 2004-03-10 Martin Baulig <martin@ximian.com>
11952 * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11954 * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11955 argument and write it into the `reflection_info' field.
11958 (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11959 (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11961 2004-03-09 Jackson Harper <jackson@ximian.com>
11963 * char-conversions.h: use 8 bits for numeric data its all we need
11964 * icall.c: numeric data is only 8 bits now.
11966 2004-03-09 Martin Baulig <martin@ximian.com>
11968 * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11970 * class.c (init_properties, init_events): Initialize the new
11973 * reflection.c (typebuilder_setup_properties): Likewise.
11974 (typebuilder_setup_events): Likewise.
11976 * reflection.h (MonoEventInfo): Replaced `parent with
11977 `declaring_type' and `reflected_type'.
11979 * icall.c (ves_icall_get_property_info): Distinguish between
11980 declaring and reflected type.
11981 (ves_icall_get_event_info): Likewise.
11983 2004-03-09 Martin Baulig <martin@ximian.com>
11985 * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11986 (ves_icall_Type_GetField): Correctly set field->klass.
11988 2004-03-09 Zoltan Varga <vargaz@freemail.hu>
11990 * loader.h: Fix warning.
11992 2004-03-08 Miguel de Icaza <miguel@ximian.com>
11994 * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11995 library routine if present. Notice that it will still continue
11996 executing even if its missing, for those working on the Gtk#
11997 edition of Windows.Forms.
11999 * assembly.c (do_mono_assembly_open): If loading the
12000 System.Windows.Forms call mono_loader_wini_init.
12002 2004-03-04 Lluis Sanchez Gual <lluis@ximian.com>
12004 * class.h: Added MonoRemoteClass struct.
12005 * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
12006 function for MonoStrings.
12007 * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
12008 Added internal call for getting the proxy type.
12009 * marshal.c: Get the type of transparent proxies from its remote_class.
12010 Added methods that generate the IL for type checks and casts:
12011 mono_marshal_get_isinst, mono_marshal_get_castclass,
12012 mono_marshal_get_proxy_cancast.
12013 * marshal.h: Declaration of the previous new methods.
12014 * object.c: Added new moethods for creating and updating MonoRemoteClass
12015 instances: mono_remote_class, mono_upgrade_remote_class,
12016 * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
12017 * verify.c: FIx transparent_proxy_fields layout.
12018 * appdomain.c: Bump corlib version.
12020 2004-03-04 Jackson Harper <jackson@ximian.com>
12022 * icall.c: Add icall to access char conversion tables.
12023 * char-conversions.h: Character conversion tables.
12024 * Makefile.am: Add char-conversions.h private header file.
12026 2004-03-04 Zoltan Varga <vargaz@freemail.hu>
12028 * appdomain.c (unload_thread_main): Increase unloading timeout to
12029 10 sec as a temporary workaround for Nant problems.
12031 2004-02-29 Zoltan Varga <vargaz@freemail.hu>
12033 * gc.c: Add checks for GC_enable and GC_disable.
12035 * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
12036 (jaak@zd.com.pl). Fix memory corruption in String.Replace
12039 2004-02-27 Martin Baulig <martin@ximian.com>
12041 * reflection.c (mono_reflection_bind_generic_parameters): Take a
12042 `MonoReflectionType *' instead of a `MonoType *'.
12044 2004-02-26 Zoltan Varga <vargaz@freemail.hu>
12046 * gc.c (run_finalize): Avoid finalizing the object representing the
12048 (finalizer_thread): Fix warning.
12050 2004-02-25 Martin Baulig <martin@ximian.com>
12052 * class.c (_mono_class_get_instantiation_name): Added `int offset'
12053 argument for nested types.
12054 (mono_class_create_generic): Added support for nested generictypes.
12056 * class.h (MonoGenericInst): Added `MonoType *nested_in' and
12059 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
12061 * reflection.c (method_encode_signature): Increase the minimum
12062 value of `size' from 10 to 11.
12063 (mono_reflection_bind_generic_parameters): Take `int type_argc'
12064 and `MonoType **types' arguments instead of the `MonoArray
12065 *types'; added `MonoType *nested_in'. Recursively instantiate
12068 2004-02-23 Zoltan Varga <vargaz@freemail.hu>
12070 * appdomain.h (MonoDomain): Add preallocated null_reference_ex and
12071 stack_overflow_ex members which are used by exception handling.
12073 * appdomain.c (mono_runtime_init): Initialize the new members.
12075 * gc.c (mono_gc_enable): New helper function.
12076 * gc.c (mono_gc_disable): New helper function.
12078 2004-02-23 Martin Baulig <martin@ximian.com>
12080 * icall.c: I must have been really stupid - make it actually work
12083 2004-02-23 Martin Baulig <martin@ximian.com>
12085 * loader.c (method_from_memberref): Only inflate the method if
12086 it's in another klass.
12088 2004-02-23 Martin Baulig <martin@ximian.com>
12090 * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12091 (mono_class_init): If we're a generic instance and an interface,
12092 compute `class->interface_id'; also create `class->interfaces'
12093 here and inflate them.
12095 * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12097 (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12099 * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12101 2004-02-15 Miguel de Icaza <miguel@ximian.com>
12103 * reflection.c (method_encode_code): Improved the error message
12104 generated by the exception.
12106 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12108 * icall.c: Martin did not do what he said in the ChangeLog for
12109 2004-02-18, but put back the changes for properties and events.
12110 Commenting those changes out again and adding comment to bug #54518.
12112 * process.c: removed warning.
12114 2004-02-20 Zoltan Varga <vargaz@freemail.hu>
12116 * marshal.c (emit_struct_conv): Print an error message instead of
12117 asserting when a type does not have the StructLayout attribute.
12119 2004-02-20 Martin Baulig <martin@ximian.com>
12121 * reflection.c (mono_type_get_object): Also use the cache for
12123 (mono_reflection_bind_generic_parameters): Always compute
12126 2004-02-20 Martin Baulig <martin@ximian.com>
12128 * class.h (MonoGenericMethod): Removed `klass'.
12130 * class.c (mono_class_inflate_generic_method): Added `MonoClass
12133 2004-02-20 Martin Baulig <martin@ximian.com>
12135 * reflection.c (method_encode_methodspec): Actually use the
12136 uninflated signature for the memberref.
12138 2004-02-20 Martin Baulig <martin@ximian.com>
12140 * class.h (MonoGenericMethod): Removed `declaring'.
12142 * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12143 is NULL, compute it here.
12145 2004-02-20 Martin Baulig <martin@ximian.com>
12147 * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12149 * metadata.c (mono_metadata_generic_inst_hash): New method.
12150 (mono_metadata_generic_inst_equal): New method.
12152 * reflection.c (mono_reflection_bind_generic_parameters): Use the
12153 `klass->image->generic_inst_cache' cache to avoid creating
12154 duplicate MonoGenericInst's.
12156 * class.c (mono_class_inflate_generic_type): Use the cache.
12158 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12160 * object.c: fixed gc descriptor calculation for embedded valuetypes.
12162 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12164 * icall.c: added Socket.WSAIoctl icall.
12166 * socket-io.[ch]: implemented
12167 ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12169 2004-02-19 Atsushi Enomoto <atsushi@ximian.com>
12171 * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12173 2004-02-18 Urs C Muff <umuff@quark.com>
12175 * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12176 this work on PPC and other big-endian architectures.
12178 * debug-mono-symfile.h: Prepended the names of all the `guint32'
12179 fields with an underscore to make sure they're only accessed by
12180 the read32() macro.
12182 2004-02-18 Martin Baulig <martin@ximian.com>
12184 * icall.c: Put the klass->refclass changes back for methods and
12185 fields, but not for properties and events. We're currently not
12186 distinguishing between DeclaringType and ReflectedType for
12187 properties and events, that's what caused the regressions.
12189 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12192 (mono_async_result_new): the handle can be NULL.
12194 * threadpool.c: Use an event instead of a semaphore, don't initialize
12195 it until needed. This saves quite a few semaphores from being created
12196 when using the threadpool.
12198 2004-02-18 Zoltan Varga <vargaz@freemail.hu>
12200 * object.c (mono_string_is_interned_lookup): Fix interning of long
12201 strings. Fixes #54473.
12203 * domain.c (ldstr_equal): Optimize if the two strings are equal.
12205 * icall.c: Revert the klass->refclass changes since they introduce
12206 regressions (bug #54518).
12208 2004-02-18 Martin Baulig <martin@ximian.com>
12210 * class.c (mono_class_init): If we're a generic instance and don't
12211 come from a TypeBuilder, inflate our members here.
12212 (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12213 (mono_class_create_generic): New public method.
12214 (mono_class_initialize_generic): Removed.
12215 (get_instantiation_name): Renamed to
12216 _mono_class_get_instantiation_name() and made it public.
12218 2004-02-18 Martin Baulig <martin@ximian.com>
12220 * class.c (mono_class_inflate_generic_type): Clear the new
12221 instance's `nginst->klass' when inflating a generic instance.
12222 (mono_class_is_subclass_of): Added (basic) support for generic
12225 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12227 * appdomain.h, domain.c: use a MonoCodeManager instead of a
12228 MonoMempool to hold compiled native code.
12230 2004-02-17 Martin Baulig <martin@ximian.com>
12232 * class.h (MonoDynamicGenericInst): Added `count_properties' and
12235 * reflection.c (mono_reflection_generic_inst_initialize): Added
12236 `MonoArray *properties' argument.
12238 * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.
12240 2004-02-17 Martin Baulig <martin@ximian.com>
12242 * icall.c (ves_icall_Type_GetFields): Renamed to
12243 ves_icall_Type_GetFields_internal() and added a
12244 `MonoReflectionType *rtype' argument; pass it to
12245 mono_field_get_object() to set the field's "reflected" type.
12246 (ves_icall_Type_GetConstructors): Likewise.
12247 (ves_icall_Type_GetEvents): Likewise.
12248 (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12249 argument; pass it to mono_method_get_object() to set the method's
12252 2004-02-17 Martin Baulig <martin@ximian.com>
12254 * class.h (MonoDynamicGenericInst): New type.
12255 (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12257 * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12258 (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12259 (ves_icall_MonoGenericInst_GetFields): New interncall.
12261 * class.c (mono_class_from_generic): Don't call
12262 mono_class_initialize_generic() if this is a dynamic instance;
12263 ie. it's being created from a TypeBuilder.
12264 Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12265 `class->byval_arg.type'.
12267 * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12268 to `inflate_method' and made static.
12269 (mono_reflection_inflate_field): Removed.
12270 (mono_reflection_generic_inst_initialize): New public method.
12272 * reflection.h (MonoReflectionGenericInst): Removed `methods',
12273 `ctors' and `fields'; added `initialized'.
12275 2004-02-14 Zoltan Varga <vargaz@freemail.hu>
12277 * debug-helpers.c (mono_method_full_name): Fix output for empty
12280 2004-02-12 Martin Baulig <martin@ximian.com>
12282 * class.h (MonoClassField): Added `MonoType *generic_type'.
12284 * reflection.c (mono_image_get_fieldref_token): Added support for
12285 instantiated generic types.
12286 (field_encode_inflated_field): Removed.
12287 (mono_image_get_inflated_field_token): Removed.
12288 (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12290 * reflection.h (MonoReflectionInflatedField): Removed.
12292 2004-02-12 Martin Baulig <martin@ximian.com>
12294 * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12295 `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12297 * reflection.c (mono_image_get_methodspec_token): Take a
12298 `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12299 (mono_image_create_token): Check whether we have a
12300 `method->signature->gen_method' and call
12301 mono_image_get_methodspec_token() if appropriate.
12302 (inflated_method_get_object): Removed.
12303 (mono_reflection_bind_generic_method_parameters): Return a
12304 `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12305 (mono_reflection_inflate_method_or_ctor): Likewise.
12307 * reflection.h (MonoReflectionInflatedMethod): Removed.
12309 2004-02-12 Zoltan Varga <vargaz@freemail.hu>
12311 * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12312 for custom valuetype marshalling.
12314 * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12316 2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12318 * icall.c: fixed WSAGetLastError_internal name.
12320 2004-02-11 Zoltan Varga <vargaz@freemail.hu>
12322 * threads.c (mono_thread_attach): Allow this to be called multiple
12323 times for a thread.
12325 * threads.c (build_wait_tids): Do not wait for ourselves.
12327 * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the
12328 appdomain list is empty.
12330 * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12331 memory returned by mono_string_builder_to_utf16, since it points into
12332 managed memory. Thanks to Bernie Solomon for noticing this.
12334 * icall.c: Add AppDomainSetup icalls.
12336 * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12338 * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12341 * reflection.c (reflection_methodbuilder_to_mono_method): Save
12342 custom attributes to the method_aux struct. Also fix array indexes etc.
12344 * loader.c (mono_method_get_param_names): Make dynamic case work again.
12346 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12348 * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12349 (both static and runtime) and reduce startup time.
12351 2004-02-10 Zoltan Varga <vargaz@freemail.hu>
12353 * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12354 AsAny marshalling conversion instead of crashing.
12356 * marshal.c: Fix warnings.
12358 2004-02-09 Martin Baulig <martin@ximian.com>
12360 * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12362 * reflection.h (MonoReflectionInflatedMethod): Removed the
12363 `declaring' field, it's now in the unmanaged MonoGenericMethod.
12365 * reflection.c (method_encode_methodspec): Removed the `method'
12366 argument; we get it from `gmethod->declaring'.
12367 (inflated_method_get_object): Removed the `declaring' argument.
12369 2004-02-09 Martin Baulig <martin@ximian.com>
12371 * class.h (MonoGenericMethod): New type.
12372 (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12375 * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12376 a `MonoGenericMethod *gen_method' one.
12378 * class.c (mono_class_inflate_generic_type): Take an additional
12379 `MonoGenericMethod * argument. This is only non-NULL if we're
12380 inflating types for a generic method.
12381 (mono_class_inflate_generic_signature): Renamed to
12382 inflate_generic_signature() and made static; take a
12383 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12384 (inflate_generic_header): Take a `MonoGenericMethod *' argument
12385 instead of a `MonoGenericInst *' one.
12386 (mono_class_inflate_generic_method): Likewise.
12388 * reflection.c (encode_generic_method_sig): Take a
12389 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12390 (method_encode_methodspec): Likewise.
12391 (inflated_method_get_object): Likewise.
12393 * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12394 field with a `MonoGenericMethod *gmethod' one.
12396 2004-02-08 Bernie Solomon <bernard@ugsolutions.com>
12398 * class.h (mono_class_has_parent): add parens to expansion
12401 2004-02-08 Martin Baulig <martin@ximian.com>
12403 * image.h (MonoImage): Removed `generics_cache'.
12405 * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12406 instead of a `MonoType *' argument; removed the `inflate_methods'
12407 argument. Don't inflate methods here.
12409 * loader.c (find_method): If it's a generic instance, call
12410 mono_class_init() on the `sclass->generic_inst->generic_type'.
12412 * metadata.c (mono_type_size): Make this work on uninitialized
12413 generic instances; call it on the `ginst->generic_type's class.
12415 * reflection.c (mono_reflection_bind_generic_parameters): Call
12416 mono_class_from_generic() to create the `ginst->klass'.
12418 2004-02-08 Martin Baulig <martin@ximian.com>
12420 * class.h (MonoClass): Changed type of `generic_inst' from
12421 `MonoType *' to `MonoGenericInst *'.
12423 2004-02-08 Martin Baulig <martin@ximian.com>
12425 * icall.c (ves_icall_Type_BindGenericParameters): Just call
12426 mono_type_get_object(), this is now creating a `MonoGenericInst'
12427 for MONO_TYPE_GENERICINST.
12428 (ves_icall_MonoGenericInst_GetParentType): Likewise.
12429 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12431 * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12432 instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12433 (inflated_method_get_object): Added `MonoClass *refclass' argument.
12434 (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12435 and reflected type.
12437 * reflection.h (MonoReflectionInflatedMethod): Removed
12438 `declaring_type' and `reflected_type'.
12440 2004-02-08 Martin Baulig <martin@ximian.com>
12442 * class.h (MonoGenericInst): Added `MonoType *parent' and
12443 `MonoType **ifaces'.
12445 * reflection.h (MonoReflectionGenericInst): Removed `klass',
12446 `parent' and `interfaces'.
12448 * reflection.c (mono_reflection_bind_generic_parameters): Take a
12449 `MonoType *' argument and return a `MonoType *'.
12452 (ves_icall_MonoGenericInst_GetParentType): New interncall.
12453 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12455 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
12457 * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12458 valuetype marshalling.
12460 2004-02-06 Martin Baulig <martin@ximian.com>
12463 (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12464 (my_mono_class_from_generic_parameter): Likewise.
12466 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
12468 * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12469 contents of the symbol files lazily.
12471 * object.h (MonoThread): Add 'name' and 'name_len' fields.
12473 * threads.h threads.c icall.c: New icalls for getting and setting the
12476 2004-02-05 Zoltan Varga <vargaz@freemail.hu>
12478 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID):
12479 Raise an exception when the domain is not found.
12481 2004-02-03 Martin Baulig <martin@ximian.com>
12483 * reflection.c (mono_image_get_methodspec_token): Use the
12484 uninflated signature; fixes gen-33.
12486 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
12488 * gc.c threads.c: Make the finalizer thread a normal managed thread so
12489 the finalizer code can use thread functionality.
12491 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for
12492 the finalizer thread.
12494 * threads.c: Make some functions more robust.
12496 * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12498 * metadata.h: Add new marshalling conventions.
12500 * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12501 stringbuilder marshalling. Fixes #53700.
12503 * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12505 * reflection.c (mono_image_get_type_info): Save declarative security
12508 * reflection.c (mono_image_get_field_info): Handle uninitialized
12509 unmanaged fields as well.
12511 * appdomain.c: Bump corlib version.
12513 2004-02-01 Martin Baulig <martin@ximian.com>
12515 * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12516 method type arguments.
12518 2004-01-30 Duncan Mak <duncan@ximian.com>
12520 * marshal.h: Add prototype for
12521 "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12523 "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12526 2004-01-30 Zoltan Varga <vargaz@freemail.hu>
12528 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12529 (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12531 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
12533 * marshal.c (mono_marshal_get_native_wrapper): Add support for
12534 custom marshalling of valuetypes.
12536 * marshal.c: Fix some warnings.
12538 2004-01-29 Martin Baulig <martin@ximian.com>
12540 * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12541 for generic method parameters.
12543 * reflection.c (method_encode_methodspec): Write the uninflated
12544 signature into the methodspec table.
12545 (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12546 is always the uninflated method.
12547 (reflection_methodbuilder_to_mono_method): Copy the generic
12548 parameters from the MethodBuilder into `header->gen_params'.
12550 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
12552 * class.c (mono_class_from_generic_parameter): Fix warning.
12554 2004-01-27 Martin Baulig <martin@ximian.com>
12556 * class.c (mono_class_from_generic_parameter): Don't create
12557 `klass->methods' here.
12559 2004-01-26 Zoltan Varga <vargaz@freemail.hu>
12561 * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12562 extension since it does not work with libraries named lib<FOO>.dll.so.
12564 2004-01-25 Martin Baulig <martin@ximian.com>
12566 * class.c (mono_class_inflate_generic_type): Added support for
12567 MONO_TYPE_GENERICINST.
12569 * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12570 inflate methods on open constructed types.
12572 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12574 * object.c: fire ProcessExit event in the root AppDomain after running
12575 Main. Fixes bug #53299.
12577 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12579 * socket-io.c: include the new socket-wrappers.h header.
12580 Use the wrappers instead of the unix socket functions to make the code
12583 2004-01-23 Zoltan Varga <vargaz@freemail.hu>
12585 * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12587 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12590 2004-01-22 Zoltan Varga <vargaz@freemail.hu>
12592 * reflection.c (mono_image_create_pefile): Handle the case when the
12593 entry point is not a MethodBuilder.
12595 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12596 field to ReflectionMethod since it is not allways a builder.
12598 * reflection.c (type_get_fully_qualified_name): New helper function to
12599 return the fully qualified name of a type.
12601 * reflection.c (encode_marshal_blob): Always emit the fully qualified
12602 type name for custom marshallers.
12604 * reflection.c (mono_marshal_spec_from_builder): Ditto.
12606 * class.c (mono_class_setup_vtable): If a parent class already
12607 implements an interface, use the implementing methods from that class.
12610 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12612 * threadpool.c: just return instead of ExitThread to allow for thread
12615 2004-01-21 Zoltan Varga <vargaz@freemail.hu>
12617 * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12618 when closing resource modules.
12620 * reflection.c (mono_image_create_pefile): Handle the case when the
12621 entry point is not a MethodBuilder.
12623 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12624 field to ReflectionMethod since it is not allways a builder.
12626 2004-01-20 Bernie Solomon <bernard@ugsolutions.com>
12628 * marshal.c (mono_marshal_get_managed_wrapper):
12629 mono_marshal_alloc takes native int so CONV_I
12630 the arg for 64bits.
12632 2004-01-20 Zoltan Varga <vargaz@freemail.hu>
12634 * reflection.c (fixup_cattrs): New function to fixup the methoddef
12635 tokens in the cattr table. Fixes #53108.
12637 2004-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12639 * loader.c: don't trim ".dll" before looking up in the config file.
12640 Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12642 2004-01-19 Zoltan Varga <vargaz@freemail.hu>
12644 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
12645 Return the module which contains the resource as well.
12646 (ves_icall_System_Reflection_Module_Close): New icall.
12648 * appdomain.c: Bump corlib version number.
12650 * image.c (mono_image_addref): New public function.
12652 * assembly.c: Call mono_image_addref.
12654 * reflection.c (mono_module_get_object): Increase reference count of
12657 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12660 * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12661 Applied patch from Bernie Solomon <bernard@ugsolutions.com>. Throw
12662 proper exceptions on DllImport problems.
12664 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12666 * class.c, metadata.c: eliminate CSIZE macro.
12668 2004-01-19 Lluis Sanchez Gual <lluis@ximian.com>
12670 * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12671 * object.h: Added async_callback field in MonoAsyncResult.
12672 * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12673 * verify.c: Added async_callback in MonoAsyncResult layout.
12675 2004-01-17 Zoltan Varga <vargaz@freemail.hu>
12677 * reflection.c (mono_reflection_get_custom_attrs): Add support
12680 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
12682 * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder
12684 (mono_marshal_method_from_wrapper): Add null pointer check.
12686 2004-01-16 Martin Baulig <martin@ximian.com>
12688 * debug-mono-symfile.h: Set version number to 36 and reflect
12689 latest symbol writer changes.
12691 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
12693 * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12694 multi-dimensional arrays.
12695 (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12696 (mono_class_from_mono_type): Use bounded_array_class_get.
12698 * class.c (mono_bounded_array_class_get): New function which takes
12699 a 'bounded' bool argument to distinguish vectors from one dimensional
12702 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call
12703 bounded_array_class_get if the array has bounds.
12705 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
12706 Search modules loaded using AssemblyBuilder:AddModule as well.
12708 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12710 * appdomain.c: increased corlib version.
12711 * filewatcher.c: removed g_print.
12713 (get_property_info): only allocate what is actually requested.
12714 (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12716 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12718 * Makefile.am: added filewatcher.[ch]
12719 * filewatcher.[ch]: FileSystemWatcher runtime support.
12720 * icall.c: added new FSW icalls.
12722 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12724 * string-icalls.c: fix stringbuilder regression as suggested by
12725 Iain McCoy <iain@mccoy.id.au>.
12727 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
12729 * process.c (process_read_stringtable_block): Recognize '007f' as
12730 a language neutral stringtable block.
12732 2004-01-12 Patrik Torstensson
12734 * object.h (MonoStringBuilder) : Changed layout to support our
12735 new stringbuilder class.
12736 * marshal.c: Change marshalling to support the new layout of
12738 * appdomain.c: increased version number because new layout of
12741 2004-01-12 Zoltan Varga <vargaz@freemail.hu>
12743 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12744 assembly name as an string instead of an AssemblyName, since it is
12745 easier to extract info from it.
12747 * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12748 the culture subdirectories too. Fixes #52231.
12750 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12752 * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12753 It takes 2 new parameters with an optional name for the method to look
12754 for and case ignoring info.
12756 * threadpool.c: removed unused variable.
12758 2004-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12760 * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12761 It takes 2 new parameters with an optional name for the property to look
12762 for and case ignoring info.
12765 2004-01-09 Zoltan Varga <vargaz@freemail.hu>
12767 * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12770 2004-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12773 * assembly.c: escape the uri before passing it to g_filename_from_uri.
12776 2004-01-07 Zoltan Varga <vargaz@freemail.hu>
12778 * reflection.c: Add support for more than one unmanaged resource.
12780 * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12781 in field->def_value, as done in all other cases.
12783 * reflection.c (mono_reflection_get_custom_attrs): Add support for
12786 * reflection.c (mono_reflection_create_runtime_class): Remove
12787 errorneous assignment to klass->element_class, since it is already
12788 done in mono_reflection_setup_internal_class.
12790 2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12792 * gc.c: added missing LeaveCriticalSection.
12793 * icall.c: indented a couple of lines.
12794 * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12795 if we call EndInvoke inside a callback. Fixes bug #52601.
12797 2004-01-07 Martin Baulig <martin@ximian.com>
12799 * mono-debug-debugger.h
12800 (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12802 2004-01-06 Miguel de Icaza <miguel@ximian.com>
12804 * appdomain.c: Use messages in NotImplementedException.
12806 * exception.c (mono_get_exception_not_implemented): Now this takes
12807 a message argument.
12809 * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12810 exception instead of g_asserting an aborting when something is not
12813 Add some inline docs.
12815 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
12817 * reflection.h: Update after changes to object layout.
12819 * reflection.c: Implement saving of unmanaged aka win32 resources.
12821 * appdomain.c: Bump version number.
12823 * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID):
12824 Handle missing domains gracefully.
12826 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
12828 * file-io.c : On Windows, there are much more invalid_path_chars.
12830 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12832 * class.h, object.c: prepare for GetType () speedup.
12834 2003-12-24 Atsushi Enomoto <atsushi@ximian.com>
12836 * profiler.c: workaround for --profile null reference exception on
12837 cygwin. Patch by Patrik Torstensson.
12839 2003-12-22 Bernie Solomon <bernard@ugsolutions.com>
12841 * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12842 make work for unaligned access.
12844 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12846 * class.c: small cleanup (class->fields [i] -> field).
12847 * image.c: check address of metadata is valid.
12849 2003-12-22 Zoltan Varga <vargaz@freemail.hu>
12851 * assembly.h assembly.c (mono_assembly_loaded): New public function to
12852 search the list of loaded assemblies.
12854 * reflection.c (mono_reflection_type_from_name): Use
12855 mono_assembly_loaded instead of mono_image_loaded.
12857 * reflection.c: Fix warnings.
12859 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
12861 * image.h (MonoImage): Add a new 'dynamic' field to denote that the image
12862 is dynamic. This is needed since an assembly can contain both dynamic and
12863 non-dynamic images.
12865 * class.c loader.c metadata.c object.c: Use image->dynamic instead of
12868 * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12870 * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12871 to store modules loaded using AddModule.
12873 * reflection.c (mono_image_fill_file_table): Generalize this so it works
12876 * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12878 * reflection.c (mono_image_fill_export_table_from_module): New function to
12879 fill out the EXPORTEDTYPES table from a module.
12881 * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12882 into a separate function. Also handle loaded non-dynamic modules.
12884 * reflection.c (mono_image_basic_init): Fix memory allocation.
12886 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12888 * assembly.c (mono_assembly_load_references): Make this public.
12890 2003-12-19 Martin Baulig <martin@ximian.com>
12892 * class.c (mono_class_initialize_generic): Made this static, take
12893 a `MonoGenericInst *' instead of a `MonoClass *'.
12894 (mono_class_from_generic): Call mono_class_initialize_generic()
12895 unless we're already initialized or being called from
12896 do_mono_metadata_parse_generic_inst().
12898 * class.h (MonoGenericInst): Added `initialized' and
12899 `init_pending' flags.
12901 * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12902 `mono_class_init (gklass)' or mono_class_initialize_generic()
12903 here; set `generic_inst->init_pending' while parsing the
12906 2003-12-19 Bernie Solomon <bernard@ugsolutions.com>
12908 * locales.c: include string.h for memxxx prototypes
12910 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
12912 * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12913 constructor when accessing literal fields.
12915 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
12917 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12919 * reflection.c (assembly_add_resource_manifest): New function to fill
12920 the MANIFESTRESOURCE table.
12922 * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12924 * reflection.h: Update to changes in class layout.
12926 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted):
12927 Reenable call to mono_runtime_is_shutting_down ().
12929 * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12930 determine if the runtime is shutting down.
12932 2003-12-16 Jackson Harper <jackson@ximian.com>
12934 * icall.c: comment out call to mono_runtime_is_shutting_down to
12937 2003-12-16 Zoltan Varga <vargaz@freemail.hu>
12939 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12940 (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12942 2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
12944 * reflection.c: move definition of swap_with_size
12945 to before its first call
12947 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
12949 * appdomain.c (mono_runtime_is_shutting_down): New public function.
12951 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12954 * object.c: Fix warnings.
12956 * icall.c (ves_icall_Type_Get...): Only consider inherited static
12957 members if FlattenHierarchy is set.
12959 * reflection.c (mono_image_add_decl_security): New function to emit
12960 declarative security.
12962 * reflection.h reflection.c: Add support for declarative security.
12964 * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12966 2003-12-13 Zoltan Varga <vargaz@freemail.hu>
12968 appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12970 * appdomain.c verify.c: Moved corlib version checking into its own
12971 function in appdomain.c since it needs to create vtables etc.
12973 2003-12-13 Patrik Torstensson <p@rxc.se>
12975 * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
12976 instead of unwrapped server.
12978 2003-12-12 Zoltan Varga <vargaz@freemail.hu>
12980 * verify.c (check_corlib): Fix field index.
12982 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
12984 * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12987 2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
12989 * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12990 ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12991 cope with sizeof(size_t) != sizeof(guint32).
12993 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12995 * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12996 in case of failure.
12998 2003-12-10 Mark Crichton <crichton@gimp.org>
13000 * icall.c: removed the GetNonZeroBytes. We now handle this case
13003 * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
13005 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
13007 * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
13010 2003-12-09 Zoltan Varga <vargaz@freemail.hu>
13012 * verify.c (check_corlib): Handle the case when the version field is
13013 initialized by a static constructor.
13015 2003-12-08 Patrik Torstensson <p@rxc.se>
13017 * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
13019 2003-12-08 Martin Baulig <martin@ximian.com>
13021 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
13022 a MonoReflectionGenericParameter, also take the parameter index
13023 and name as arguments.
13024 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
13025 (ves_icall_MonoGenericParam_initialize): New interncall.
13026 (ves_icall_Type_make_byref_type): New interncall.
13028 * reflection.h (MonoReflectionGenericParam): Derive from
13029 MonoReflectionType, not just from MonoObject. Added `refobj' and
13032 * reflection.c (mono_reflection_define_generic_parameter): Create
13033 and return a new MonoReflectionGenericParam; don't initialize the
13035 (mono_reflection_initialize_generic_parameter): New public method;
13036 initializes the constraints and creates the `param->pklass'.
13038 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
13040 * reflection.h reflection.c: Use the new fields 'num_types',
13041 'num_fields' and 'num_methods' to track the number of types etc.
13043 * verify.c (check_corlib): Check corlib version number.
13045 2003-12-07 Zoltan Varga <vargaz@freemail.hu>
13047 * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
13048 function works on all methods.
13050 2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
13052 * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
13053 * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
13054 the custom_type_info flag of the transparent proxy.
13055 * object.c: Added method mono_object_isinst_mbyref for casting mbyref
13056 objects that supports IRemotingTypeInfo.
13057 * object.h: Added custom_type_info field in transparent proxy.
13059 2003-12-06 Martin Baulig <martin@ximian.com>
13061 * class.c (mono_class_create_from_generic): Removed.
13062 (mono_class_from_generic): Check `ginst->klass' before doing
13063 anything else. This is important to fully support "recursive"
13066 * metadata.c (do_mono_metadata_parse_generic_inst): Create an
13067 empty `generic_inst->klass' before doing anything else.
13069 2003-12-06 Dick Porter <dick@ximian.com>
13074 * locales.c: Use C structs to access class fields. Don't do a
13075 conversion between MonoString and UChar because both are
13076 platform-endian UTF-16. Compare now takes startindex and count
13077 parameters. Add a char overload for IndexOf. Speed up the
13078 invariant string IndexOf.
13080 2003-12-05 Zoltan Varga <vargaz@freemail.hu>
13082 * Makefile.am (monosn_LDADD): Fix parallel build.
13084 2003-12-04 Martin Baulig <martin@ximian.com>
13087 (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13088 (ves_icall_Type_make_array_type): New interncall.
13090 2003-12-04 Martin Baulig <martin@ximian.com>
13092 * locales.c: also change it in the !HAVE_ICU case.
13094 2003-12-04 Dick Porter <dick@ximian.com>
13097 * locales.c: construct_compareinfo is now in CompareInfo, not
13100 2003-12-04 Zoltan Varga <vargaz@freemail.hu>
13102 * image.c (mono_image_load_file_for_image): Cache loaded images in the
13103 image->files array.
13105 * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13108 * assembly.c (mono_assembly_load_references): Only load references
13111 * class.c (mono_class_from_name): Avoid linear search of the
13112 EXPORTEDTYPE table.
13114 * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13116 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
13118 * image.h (MonoImage): Add 'field_cache' field.
13120 * loader.c (mono_field_from_token): Cache field lookups.
13122 * reflection.c (mono_module_get_object): Fix name property.
13124 * icall.c (ves_icall_get_enum_info): Update after changes to
13125 mono_metadata_get_constant_index ().
13127 * icall.c: Get rid of get_type_info icall, use a separate icall for
13128 each type property to avoid needless memory allocations. Fixes #51514.
13130 * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13131 to avoid needless binary searches.
13133 * class.c (class_compute_field_layout): Move the initialization of
13134 field->def_value to mono_class_vtable ().
13136 * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13139 * object.c (mono_object_allocate): Make it inline.
13141 * object.c (mono_object_allocate_spec): Make it inline.
13143 2003-12-02 Dick Porter <dick@ximian.com>
13145 * locales.c (create_NumberFormat): NumberFormatInfo construction.
13146 Patch by Mohammad DAMT (mdamt@cdl2000.com).
13148 2003-12-01 Dick Porter <dick@ximian.com>
13150 * threads.c: Fix signature and call in CreateMutex and
13153 2003-12-01 Dick Porter <dick@ximian.com>
13156 * locales.c: Implement string compares and searching
13158 * object.h: Add extra Thread field
13160 2003-11-30 Zoltan Varga <vargaz@freemail.hu>
13162 * reflection.c (fixup_method): Add support for MonoCMethod.
13164 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
13166 * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13168 * reflection.c (assembly_name_to_aname): Allow extra characters in
13169 assembly names. Fixes #51468.
13171 2003-11-26 Zoltan Varga <vargaz@freemail.hu>
13173 * exception.c (mono_exception_from_name_domain): New helper function.
13175 * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13176 exception object in the correct domain.
13178 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
13179 formatting + make a copy a the input data.
13181 * loader.c (mono_get_method_from_token): Methods which contain
13182 native code do not have entries in the ImplMap.
13184 (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13185 Thanks to Gonzalo for spotting this.
13187 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13188 patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13190 * assembly.h (mono_assembly_load_from): Split the second part of
13191 assembly loading into a new public function.
13193 * exception.h (mono_get_exception_bad_image_format): New function.
13195 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
13197 icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
13198 Enumerate all modules inside a dynamic assembly. Fixes #51293.
13200 * icall.c: Add new icall for creating dynamic methods.
13202 * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13204 * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13206 * reflection.c (mono_reflection_create_dynamic_method): New icall to
13207 create a dynamic method.
13209 * reflection.c (resolve_object): New helper function.
13211 * reflection.c: Generalize ReflectionMethodBuilder and the functions
13212 which manipulate it so they can also work on dynamic methods.
13214 * reflection.c (reflection_method_builder_to_mono_method): Avoid
13215 creating the MonoReflectionMethodAux structure if it is not needed.
13217 * reflection.h verify.c: Update after changes to object layout.
13219 * reflection.c (method_builder_encode_signature): Fix compilation on
13222 2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
13224 * appdomain.h: Added support for context static fields. Added static_data
13225 field to MonoAppContext and renamed thread_static_fields to a more
13226 generic special_static_fields in MonoAppDomain, since it can now contain
13227 context static fields.
13228 * domain.c: Updated hashtable name.
13229 * object.c: Replaced field_is_thread_static() for a more generic
13230 field_is_special_static() which also checks for context static attribute.
13231 In mono_class_vtable(), added support for static context fields.
13232 * threads.c: Changed methods that manage thread static fields to more
13233 generic methods so they can be reused both for thread and context static
13235 * threads.h: Declared some new methods.
13237 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
13239 * reflection.h: Update after changes to the managed types.
13241 * reflection.c (encode_custom_modifiers): New helper function.
13243 * reflection.c (method_encode_signature): Emit custom modifiers.
13245 * reflection.c (field_encode_signature): Emit custom modifiers.
13247 2003-11-18 Zoltan Varga <vargaz@freemail.hu>
13249 * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13251 * icall.c (ves_icall_System_ValueType_Equals): New optimized
13254 * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
13257 * object.c (mono_field_get_value_object): New function.
13259 * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13262 2003-11-17 Zoltan Varga <vargaz@freemail.hu>
13264 * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13265 return a preallocated out-of-memory exception instance.
13267 * object.c (out_of_memory): Use the new function.
13269 * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13270 flag is before the custom modifiers. Fixes #49802.
13272 2003-11-16 Martin Baulig <martin@ximian.com>
13274 * class.c (mono_class_is_open_constructed_type): Implemented the
13275 MONO_TYPE_GENERICINST case.
13277 2003-11-16 Zoltan Varga <vargaz@freemail.hu>
13279 * assembly.c (mono_assembly_fill_assembly_name): New function to
13280 fill out the MonoAssemblyName structure.
13281 (mono_assembly_open): Use the new function.
13283 * icall.c (fill_reflection_assembly_name): New helper function.
13285 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13288 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13290 2003-11-15 Martin Baulig <martin@ximian.com>
13292 * class.c (mono_class_is_open_constructed_type): New public
13293 function; checks whether a type is an open constructed type,
13294 ie. whether it still contains type parameters.
13295 (mono_class_inflate_generic_type): If we're a type parameter and
13296 the inflated type is also a MONO_TYPE_(M)VAR, return the original
13299 * class.h (MonoGenericInst): Added `guint32 is_open'.
13301 * loader.c (method_from_methodspec): Check whether we're an open
13302 or closed constructed type and set `ginst->is_open'.
13304 * reflection.c (mono_reflection_bind_generic_parameters): Check
13305 whether we're an open or closed constructed type and set
13307 (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13308 from open constructed types.
13310 2003-11-15 Martin Baulig <martin@ximian.com>
13312 * reflection.c (mono_reflection_bind_generic_parameters): If we're
13313 a generic instance (instead of a generic type declaration) with
13314 unbound generic parameters, bind them to our actual types.
13316 2003-11-14 Martin Baulig <martin@ximian.com>
13318 * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13320 * reflection.c (mono_reflection_bind_generic_parameters): If we're
13321 an interface type, populate `res->interfaces' with instantiated
13322 versions of all the interfaces we inherit.
13324 2003-11-13 Aleksey Demakov <avd@openlinksw.com>
13326 * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13327 when MONO_PATH is set but doesn't contain the install dir.
13329 2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13332 (ves_icall_Type_GetInterfaces): don't return an interface twice when
13333 it's also implemented in base classes. Fixes bug #50927.
13335 2003-11-13 Zoltan Varga <vargaz@freemail.hu>
13337 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13338 if this method is called from a finalizer. Fixes #50913.
13340 2003-11-12 Miguel de Icaza <miguel@ximian.com>
13342 * threads.c: Implement VolatileRead/VolatileWrite
13344 * icall.c: Add new icalls for VolatileRead/VolatileWrite
13346 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
13348 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
13349 patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13352 * assembly.c (mono_assembly_open): Fix windows build. Applied patch
13353 from Peter Ross (pro@missioncriticalit.com).
13355 2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
13357 * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13359 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
13361 * assembly.c (mono_assembly_load_references): Disable check because it
13362 triggers on older corlibs which lots of people have.
13364 2003-11-12 Jackson Harper <jackson@ximian.com>
13366 * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13367 load corlib.dll if mscorlib.dll is not found.
13368 * assembly.h: Remove corlib name define.
13371 * image.c: Change corlib name to mscorlib.
13373 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
13375 * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13377 2003-11-11 Miguel de Icaza <miguel@ximian.com>
13379 * appdomain.h: Added loader_optimization here to sync with the C#
13380 code, and add disallow_binding_redirects field.
13382 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
13384 * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13386 * reflection.c (mono_image_build_metadata): Fix crash on modules
13389 * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13391 * icall.c (ves_icall_get_method_info): Return callingConvention as
13394 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
13395 namespaces from the EXPORTEDTYPE table as well.
13397 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13398 from all modules inside the assembly.
13400 2003-11-11 Martin Baulig <martin@ximian.com>
13402 * reflection.c (mono_reflection_bind_generic_parameters): Make
13403 this work for interfaces.
13405 2003-11-11 Martin Baulig <martin@ximian.com>
13407 * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13409 2003-11-11 Martin Baulig <martin@ximian.com>
13411 * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13412 "MonoInflatedMethod" and "MonoInflatedCtor".
13414 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
13416 * reflection.c (resolution_scope_from_image): Use the assembly table
13417 from the manifest module, since other modules don't have it.
13419 * debug-helpers.c (mono_type_full_name): New helper function.
13421 * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13423 * image.c (mono_image_load_file_for_image): New public function which
13424 is a replacement for the load_file_for_image in class.c.
13426 * assembly.c (mono_assembly_load_module): A wrapper for the function
13427 above which does assembly association and reference loading too.
13429 * class.c (mono_class_from_name): Call mono_assembly_load_module.
13431 2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13433 * appdomain.c: not all of the attributes for the full assembly name
13434 are required and the order doesn't matter. Fixes bug #50787.
13436 2003-11-10 Dick Porter <dick@ximian.com>
13438 * locales.c: Use platform-endian UTF16
13440 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
13442 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13444 2003-11-10 Martin Baulig <martin@ximian.com>
13447 (mono_metadata_load_generic_params): Make this actually work.
13449 * reflection.c (mono_reflection_bind_generic_parameters): If our
13450 parent is a generic instance, pass all the `types' to it, no
13451 matter whether it has the same number of type parameters or not.
13453 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
13455 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13457 * assembly.c (mono_assembly_load_references): Move the image<->assembly
13458 assignment code to this function so it gets called recursively for all
13461 * image.c (load_modules): Remove the assembly assignment since it is
13462 now done by mono_assembly_load_references.
13464 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
13465 Add 'module' argument.
13466 (mono_module_get_types): New helper function.
13467 (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13469 2003-11-08 Martin Baulig <martin@ximian.com>
13471 * class.c (mono_class_inflate_generic_method): Interface method
13472 don't have a header.
13474 * reflection.c (mono_image_get_methodspec_token): Take an
13475 additional `MonoGenericInst *' argument instead of reading it from
13476 the header; this is necessary to support interfaces.
13477 (mono_image_create_token): Pass the `MonoGenericInst *' from the
13478 MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13479 (inflated_method_get_object): Take an additional `MonoGenericInst *'
13482 * reflection.h (MonoReflectionInflatedMethod): Added
13483 `MonoGenericInst *ginst'.
13485 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
13487 * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13489 2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
13491 * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13493 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
13496 (reflection_methodbuilder_from_method_builder):
13497 (reflection_methodbuilder_from_ctor_builder): New helper functions to
13498 initialize a ReflectionMethodBuilder structure.
13499 (mono_image_get_methodbuilder_token):
13500 (mono_image_get_ctorbuilder_token): New functions to emit memberref
13501 tokens which point to types in another module inside the same assembly.
13503 * reflection.c: Use the new helper functions.
13505 * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13507 * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
13508 instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13510 * reflection.c (resolution_scope_from_image): Emit a moduleref if
13513 * reflection.c (mono_image_build_metadata): Emit metadata only for the
13514 current module. Emit the manifest only for the main module.
13516 * reflection.c (mono_image_create_token): Add assertion when a
13517 memberref needs to be created.
13519 * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13521 * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
13522 larger buffer for the custom attribute blob. Fixes #50637.
13524 2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13526 * threadpool.c: notify listener on async processing handles after
13527 invoking the async callback. Thanks to Zoltan.
13529 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
13531 * reflection.c (create_dynamic_mono_image): Call mono_image_init to
13532 avoid code duplication.
13534 * reflection.h (MonoDynamicImage): New type which is currently unused,
13535 but will be used through the ref.emit code in place of
13536 MonoDynamicAssembly.
13538 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13541 * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13542 a MonoDynamicImage instead of just a MonoImage.
13544 * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13545 icalls to ModuleBuilder but keep their semantics, so they will work
13546 with moduleb->assemblyb. This will change later.
13548 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
13550 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13553 * reflection.c (mono_image_build_metadata): Avoid creation of a default
13554 main module, since it is now done by the managed code.
13556 2003-11-03 Martin Baulig <martin@ximian.com>
13558 * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13559 `ginst->klass' here.
13560 (method_encode_methodspec): Don't use the `ginst->generic_method's
13561 klass if it's a generic instance, use `ginst->klass' in this case.
13563 2003-11-03 Martin Baulig <martin@ximian.com>
13565 * reflection.c (mono_image_get_generic_method_param_info):
13566 Removed, use mono_image_get_generic_param_info() instead.
13567 (mono_image_get_type_info): Write the GenericParam table before
13568 the Method table. This is neccessary because in the GenericParam
13569 table, type parameters of the class (ie. '!0' etc.) must come
13570 before the ones from its generic methods (ie. '!!0' etc).
13572 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
13574 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13576 2003-11-02 Martin Baulig <martin@ximian.com>
13578 * reflection.c (create_generic_typespec): Take a
13579 `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13580 the generic parameters from it.
13582 2003-11-02 Martin Baulig <martin@ximian.com>
13584 * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13585 instead of a `MonoClassField *' since we just need the type.
13586 (create_generic_typespec): New static function. Creates a
13587 TypeSpec token for a generic type declaration.
13588 (mono_image_get_generic_field_token): New static function.
13589 (mono_image_create_token): If we're a FieldBuilder in a generic
13590 type declaration, call mono_image_get_generic_field_token() to get
13593 2003-11-02 Martin Baulig <martin@ximian.com>
13596 (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13597 `MonoReflectionGenericInst *declaring_type' and
13598 `MonoReflectionGenericInst *reflected_type' fields.
13600 * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13601 `MonoReflectionGenericInst *declaring_type' and a
13602 `MonoReflectionGenericInst *reflected_type' argument instead of a
13603 single `MonoReflectionGenericInst *type' one. Set
13604 `res->declaring_type' and `res->reflected_type' from them.
13605 (mono_reflection_inflate_field): Likewise.
13607 2003-11-02 Martin Baulig <martin@ximian.com>
13609 * class.c (mono_class_setup_vtable): Don't store generic methods
13612 2003-11-02 Martin Baulig <martin@ximian.com>
13614 * reflection.h (MonoReflectionGenericInst): Added
13615 `MonoReflectionType *declaring_type'.
13617 * reflection.c (mono_reflection_bind_generic_parameters): Use
13618 `if (tb->parent)' instead of `klass->parent'.
13620 2003-11-01 Zoltan Varga <vargaz@freemail.hu>
13622 * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13623 with an empty ASSEMBLY table.
13625 * reflection.c (mono_image_build_metadata): Avoid using the same loop
13626 variable in the inner and outer loops.
13628 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
13630 * metadata.h (mono_metadata_make_token): Put parentheses around macro
13633 * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13635 * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
13636 icalls. Instead, do everything in managed code. This is needed since
13637 it is hard to restore the original domain etc. in unmanaged code in the
13638 presence of undeniable exceptions.
13640 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
13641 New icalls to push and pop appdomain refs.
13643 2003-10-31 Martin Baulig <martin@ximian.com>
13645 * class.c (inflate_generic_type): Renamed to
13646 mono_class_inflate_generic_type() and made it public.
13648 * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13651 * loader.c (mono_field_from_memberref): Also set the retklass for
13654 * fielder.c (mono_image_get_inflated_field_token): New static
13655 method; creates a metadata token for an inflated field.
13656 (mono_image_create_token, fixup_method): Added support for
13657 "MonoInflatedField".
13658 (fieldbuilder_to_mono_class_field): New static function.
13659 (mono_reflection_inflate_field): New public function.
13662 (MonoReflectionGenericInst): Added `MonoArray *fields'.
13663 (MonoReflectionInflatedField): New typedef.
13665 2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
13667 * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13668 for Solaris and other platforms without s6_addr16
13670 2003-10-30 Martin Baulig <martin@ximian.com>
13672 * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13673 argument instead of two.
13674 (mono_class_inflate_generic_signature): Likewise.
13675 (inflate_generic_header): Likewise.
13676 (mono_class_inflate_generic_method): Likewise. In addition, if
13677 `ginst->klass' is set, it becomes the new `method->klass'.
13679 * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13682 * reflection.c (encode_generic_method_sig): Write a 0xa as the
13683 first byte. [FIXME]
13684 (method_encode_methodspec): If we have generic parameters, create
13685 a MethodSpec instead of a MethodRef.
13686 (fixup_method): Added support for "MonoInflatedMethod" and
13687 "MonoInflatedCtor".
13688 (mono_image_create_token): Added support for "MonoInflatedMethod"
13689 and "MonoInflatedCtor".
13690 (inflated_method_get_object): New static function; returns a
13691 managed "System.Reflection.MonoInflatedMethod" object.
13692 (mono_reflection_bind_generic_method_parameters): Return a
13693 `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13694 (mono_reflection_inflate_method_or_ctor): Likewise.
13695 (mono_image_get_generic_method_param_info): Initialize unused
13697 (mono_image_get_generic_param_info): Likewise.
13699 * reflection.h (MonoReflectionInflatedMethod): New public
13700 typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
13701 "S.R.MonoInflatedCtor" classes.
13703 * loader.c (method_from_memberref): If we're a TypeSpec and it
13704 resolves to a generic instance, inflate the method.
13706 2003-10-28 Dick Porter <dick@ximian.com>
13708 * object.c (mono_runtime_run_main): Convert command-line arguments
13709 into utf8, falling back to the user's locale encoding to do so.
13711 2003-10-27 Zoltan Varga <vargaz@freemail.hu>
13713 * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13716 * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13718 * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13719 up icalls at method definition time. Partially fixes #33569.
13721 2003-10-25 Zoltan Varga <vargaz@freemail.hu>
13723 * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13724 marshalling of arrays. Fixes #50116.
13726 * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13728 * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13729 points to a vtable in the dying appdomain.
13731 * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13732 listeners into unmanaged code inside the lock.
13734 * object.c (mono_class_vtable): Turn off typed allocation in non-root
13735 domains and add some comments.
13737 2003-10-25 Martin Baulig <martin@ximian.com>
13739 * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13741 * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13743 * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13744 `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13745 currently parsing. Create the generic class and store it in
13746 `generic_inst->klass' before parsing the type arguments. This is
13747 required to support "recursive" definitions; see mcs/tests/gen-23.cs
13749 (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13750 to support recursive typespec entries.
13752 * class.c (mono_class_setup_parent): If our parent is a generic
13753 instance, we may get called before it has its name set.
13754 (mono_class_from_generic): Splitted into
13755 mono_class_create_from_generic() and mono_class_initialize_generic().
13757 2003-10-25 Martin Baulig <martin@ximian.com>
13759 * icall.c (ves_icall_Type_BindGenericParameters): Return a
13760 `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13761 ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13762 ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13764 * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13765 (create_typespec): Likewise.
13766 (mono_reflection_bind_generic_parameters): Return a
13767 `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13768 (mono_reflection_inflate_method_or_ctor): New public function.
13770 * reflection.h (MonoReflectionGenericInst): New typedef.
13772 2003-10-24 Zoltan Varga <vargaz@freemail.hu>
13774 * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13775 inside the domain lock. Fixes #49993.
13777 * object.c (mono_class_vtable): When typed allocation is used,
13778 allocate vtables in the GC heap instead of in the mempool, since the
13779 vtables contain GC descriptors which are used by the collector even
13780 after the domain owning the mempool is unloaded.
13782 * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13784 * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13785 reflect what it does. Also invalidate mempools instead of freeing
13786 them if a define is set.
13788 * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13791 * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13792 hold the finalizable objects in this domain.
13794 * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13797 * appdomain.c (mono_domain_set): New function to set the current
13798 appdomain, but only if it is not being unloaded.
13800 * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13801 appdomain which is being unloaded.
13803 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13804 unloading of the root appdomain.
13806 * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13807 icall to execute a method in another appdomain. Intended as a
13808 replacement for InternalSetDomain, which can confuse the code
13809 generation in the JIT.
13811 * appdomain.c (mono_domain_is_unloading): New function to determine
13812 whenever an appdomain is unloading.
13814 * appdomain.c (mono_domain_unload): New function to correctly unload
13817 * assembly.c (mono_assembly_load_references): Check that an assembly
13818 does not references itself.
13820 * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13821 domain manually, it asks the finalizer thread to do it, then waits for
13822 the result. Also added a timeout.
13824 * icall.c: Register the new icalls.
13826 * threads.h threads.c: Export the mono_gc_stop_world and
13827 mono_gc_start_world functions.
13829 * mempool.h mempool.c (mono_mempool_invalidate): New debugging
13830 function to fill out the mempool with 0x2a.
13832 2003-10-22 Zoltan Varga <vargaz@freemail.hu>
13834 * reflection.h (MonoReflectionMethodAux): New structure to store
13835 information which is rarely used, thus is not in the MonoMethod
13838 * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13839 store the aux info.
13841 * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13842 and marshalling info into the aux structure.
13844 * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13845 from the aux structure.
13847 * loader.c (mono_method_get_param_names): Retrieve the param names from
13850 2003-10-21 Zoltan Varga <vargaz@freemail.hu>
13852 * exception.h exception.c: Add AppDomainUnloadedException && fix
13855 2003-10-21 Dick Porter <dick@ximian.com>
13858 (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13859 patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13861 2003-10-21 Martin Baulig <martin@ximian.com>
13863 * reflection.c (mono_reflection_bind_generic_parameters):
13864 `klass->parent' is NULL for interfaces.
13866 2003-10-21 Martin Baulig <martin@ximian.com>
13868 * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13870 2003-10-20 Zoltan Varga <vargaz@freemail.hu>
13872 * exception.c (mono_exception_from_name_msg): New helper function for
13873 creating exceptions and initializing their message field.
13875 * exception.c: Simplify functions using the new helper.
13877 * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13880 * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13881 mono_raise_exception, since otherwise gcc doesn't generate the function
13882 epilog for raise_exception, confusing the stack unwinding in the JIT.
13885 * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13886 PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13889 2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13891 * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13894 2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
13896 * icall.c: Removed GetUninitializedObject method because
13897 AllocateUninitializedClassInstance does the same.
13899 2003-10-18 Martin Baulig <martin@ximian.com>
13901 * class.c (inflate_generic_signature): Renamed to
13902 mono_class_inflate_generic_signature() and made it public.
13903 (my_mono_class_from_generic_parameter): New static function; if we
13904 don't already have the generic parameter's MonoClass, create a
13905 very simple one which is just used internally in the runtime and
13906 not passed back to managed code.
13908 * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13910 * metadata.h (MonoMethodSignature): Moved the
13911 `MonoGenericParam *gen_params' to the MonoMethodHeader.
13912 (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13914 * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13915 ves_icall_MonoMethod_GetGenericArguments(); this is now an
13916 interncall on the MonoMethod class, not on MethodInfo.
13917 (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13918 calling mono_reflection_bind_generic_method_parameters() directly.
13920 * loader.c (mono_method_get_signature): If this is a MethodSpec;
13921 return the already computed `method->signature'.
13922 (method_from_methodspec): New static function to load a method
13923 from a MethodSpec entry.
13924 (mono_get_method_from_token): Call the new method_from_methodspec()
13925 for MethodSpec tokens.
13926 (mono_get_method_from_token): If we're a generic method, load the
13929 * reflection.c (mono_image_get_memberref_token): Allow
13930 MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13932 (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13933 (mono_image_create_token): First check whether it's a generic
13934 method (so we'd need to create a MethodSpec), then do the other
13936 (mono_reflection_bind_generic_method_parameters): Return a
13937 `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13938 called directly from the interncall.
13940 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
13942 * reflection.c (load_public_key): Move loading of the public key
13945 * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13947 * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13950 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13951 culture, hash_alg and public_key. Fixes #49555.
13953 2003-10-17 Martin Baulig <martin@ximian.com>
13955 * class.h (MonoGenericInst): Moved this declaration here and added
13956 `MonoMethod *generic_method'.
13959 (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13960 (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13962 * metadata.c (mono_metadata_type_equal): Two types of
13963 MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13964 index; ie. don't compare the address of the `MonoGenericParam'
13966 (mono_metadata_load_generic_params): Removed the `MonoMethod
13969 * metadata.h (MonoGenericInst): Moved declaration to class.h.
13970 (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13972 * reflection.c (method_encode_signature): Encode the number of
13973 generic parameters.
13974 (encode_generic_method_sig): New static function.
13975 (method_encode_methodspec): New static function; creates an entry
13976 in the MethodSpec table for a generic method.
13977 (mono_image_get_methodspec_token): New static function.
13978 (mono_image_create_token): Call mono_image_get_methodspec_token()
13979 for generic methods.
13980 (mono_reflection_bind_generic_method_parameters): New public
13981 function. Instantiates a generic method.
13983 2003-10-16 Martin Baulig <martin@ximian.com>
13985 * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13986 *gen_params' here from MonoMethodHeader.
13988 * metadata.c (mono_metadata_parse_method_signature): If we have
13989 generic parameters, initialize `method->gen_params' and then set
13990 the correct `type->data.generic_param' in all the parameters.
13992 2003-10-16 Zoltan Varga <vargaz@freemail.hu>
13994 * threads.c (mono_threads_get_default_stacksize): New function to
13995 return the default stacksize.
13997 * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13998 termination of the finalizer thread, since the previous method had
13999 race conditions. Fixes #49628.
14001 * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
14002 as for the other managed threads.
14004 2003-10-16 Martin Baulig <martin@ximian.com>
14006 * class.c (inflate_generic_signature): Copy `generic_param_count'
14009 * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
14012 * metadata.c (mono_metadata_parse_method_signature): Actually set
14013 the `method->generic_param_count' here.
14014 (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
14016 2003-10-15 Zoltan Varga <vargaz@freemail.hu>
14018 * object.h: Add a new field to TypedRef to simplify the implementation
14019 of the REFANY opcodes in the JIT.
14021 * icall.c: Make use of the new field.
14023 * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
14026 2003-10-15 Martin Baulig <martin@ximian.com>
14028 * class.c (mono_class_from_gen_param): Renamed to
14029 mono_class_from_generic_parameter() and moved most of the
14030 functionality from mono_reflection_define_generic_parameter()
14031 here; ie. we create a "real" class here.
14032 (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
14033 MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
14034 previously been called.
14036 * class.h (MonoGenericParam): Moved the declaration of this struct
14037 here from metadata.h and added `MonoMethod *method'.
14039 * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
14042 * loader.c (mono_get_method_from_token): If we have any generic
14043 parameters, call mono_metadata_load_generic_params() to read them
14044 from the MONO_TABLE_GENERICPAR.
14046 * metadata.c (mono_metadata_load_generic_params): Added
14047 `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
14049 * metadata.h (MonoMethodSignature): Replaced
14050 `MonoGenericInst *geninst' with `guint16 generic_param_count'.
14051 (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
14053 * reflection.c (mono_reflection_define_generic_parameter): Moved
14054 most of the functionality into the new
14055 mono_class_from_generic_parameter(); set the `method' field if
14056 we're a method parameter.
14058 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
14060 * marshal.c (emit_struct_conv): if native size is 0
14063 2003-10-14 Martin Baulig <martin@ximian.com>
14065 * icall.c: The generics API has changed in the spec since it was
14066 added to System.Type; these modifications make it match the spec
14068 (ves_icall_Type_GetGenericParameters): Renamed to
14069 `ves_icall_Type_GetGenericArguments'.
14070 (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
14071 (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
14072 `ves_icall_MonoType_get_HasGenericArguments'.
14073 (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
14074 `ves_icall_MonoType_get_IsGenericParameter'.
14075 (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
14076 this is no interncall anymore.
14077 (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
14078 `ves_icall_TypeBuilder_get_IsGenericParameter'.
14080 2003-10-14 Martin Baulig <martin@ximian.com>
14082 * reflection.c (mono_reflection_bind_generic_parameters): Also
14083 inflate generic methods if we're reading the class from IL.
14085 2003-10-13 Martin Baulig <martin@ximian.com>
14087 * reflection.c (mono_reflection_define_generic_parameter): This
14088 method isn't called directly from the icall anymore; take a
14089 `MonoReflectionAssemblyBuilder *' so we can use this for type and
14090 method generic parameters.
14091 (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14092 (method_builder_encode_signature): Encode generic parameters.
14093 (mono_image_get_method_info): Write generic params to the
14094 MONO_TABLE_GENERICPARAM table.
14096 * reflection.h (MonoReflectionMethodBuilder): Added
14097 `MonoArray *generic_params'.
14099 * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14101 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14102 wrapper for mono_reflection_define_generic_parameter().
14103 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14105 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
14107 * marshal.h: Add missing function to fix build.
14109 * marshal.c (mono_marshal_get_native_wrapper): Add support for
14110 the SetLastError pinvoke attribute.
14112 * marshal.c (mono_marshal_set_last_error): New helper function called
14113 by the generated code.
14115 * marshal.c (mono_mb_emit_branch): New helper function.
14117 * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14119 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14120 classes as parameters and return values of delegates. Fixes #29256.
14122 2003-10-12 Bernie Solomon <bernard@ugsolutions.com>
14124 * locales.c: use gint32 in non HAVE_ICU case
14126 2003-10-11 Martin Baulig <martin@ximian.com>
14128 * mono-debug.c (mono_debug_add_method): Added a workaround for
14131 2003-10-10 Zoltan Varga <vargaz@freemail.hu>
14133 * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14134 delegates passed to native code must use the STDCALL calling
14135 convention. Fixes #35987.
14137 2003-10-10 Martin Baulig <martin@ximian.com>
14139 * class.c (inflate_generic_type): If we're inflating for a generic
14140 type instance (and not for a generic method), return
14141 MONO_TYPE_MVAR unchanged.
14143 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14145 * string-icalls.c: Join ignores null strings in the source array.
14146 * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14147 * threads.c: GetAvailableTheads is slightly more accurate.
14149 2003-10-09 Bernie Solomon <bernard@ugsolutions.com>
14151 * threads.h threads.c : add mono_threads_set_default_stacksize
14152 and pass default to CreateThread calls.
14154 2003-10-09 Dick Porter <dick@ximian.com>
14158 * locales.c: Internal calls for constructing CultureInfo and
14159 related objects from libicu (if its available.)
14161 2003-10-09 Zoltan Varga <vargaz@freemail.hu>
14163 * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14165 2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14167 * threadpool.c: added an argument to async_invoke_thread that is the
14168 item to process, pass the MonoAsyncResult to the thread start function
14169 when creating a new thread. This way we don't need to acquire any lock
14170 when we're creating a new thread. Readded a semaphore for faster
14171 response times (instead of that Sleep i added).
14173 2003-10-08 Bernie Solomon <bernard@ugsolutions.com>
14175 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14176 get daylight change dates better on Windows, fix handling
14177 of platforms without tm_gmtoff.
14179 2003-10-06 Martin Baulig <martin@ximian.com>
14181 * class.c (inflate_generic_method): Renamed to
14182 mono_class_inflate_generic_method() and made public.
14183 (mono_class_init): Don't inflate the generic methods here.
14184 (mono_class_from_generic): Added `gboolean inflate_methods'
14185 argument. Inflate the methods here.
14187 * loader.c (mono_method_get_param_names): Ignore instances of
14188 generic types for the moment.
14190 * reflection.c (fixup_method): Added support for inflated methods.
14191 (mono_image_create_token): Use mono_image_get_methodref_token()
14192 for inflated methods.
14193 (mono_custom_attrs_from_param): Ignore instances of generic types
14195 (mono_reflection_bind_generic_parameters): New public function.
14196 Moved all the functionality from
14197 ves_icall_Type_BindGenericParameters() here and added support for
14199 (mono_reflection_define_generic_parameter): Initialize
14200 `klass->methods' here.
14202 * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14203 functionality into mono_reflection_define_generic_parameter().
14204 (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14205 TypeBuilder, return that TypeBuilder.
14207 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14209 * appdomain.c: removed mono_delegate_semaphore.
14212 (mono_thread_pool_add): moved hash table creation inside and the thread
14213 creation outside of the critical region.
14214 (mono_thread_pool_finish): removed obsolete code.
14215 (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14216 continue or exit the thread depending on the queue.
14218 2003-10-07 Bernie Solomon <bernard@ugsolutions.com>
14220 * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14221 marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14222 handle more bool marshalling options
14224 2003-10-07 Zoltan Varga <vargaz@freemail.hu>
14226 * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14227 arrays of structs. Also add a more descriptive error message when
14228 a structure member is marshalled as LPArray.
14230 2003-10-06 Zoltan Varga <vargaz@freemail.hu>
14232 * marshal.c (mono_marshal_get_native_wrapper): Add support for
14233 marshalling arrays of complex types. Fixes #29098. Also remove an
14234 usused and incomplete function.
14236 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14238 * gc.c: report heap_size - free_bytes as total memory allocated
14241 2003-10-05 Zoltan Varga <vargaz@freemail.hu>
14243 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally
14244 fix timezone handling problems on Windows.
14246 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14247 asserts when the year is outside the range handled by ms the functions.
14249 * class.c (setup_interface_offsets): If the class is an interface,
14250 fill out its interface_offsets slot.
14252 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14254 * threadpool.c: mark threadpool threads as background.
14256 2003-10-03 Bernie Solomon <bernard@ugsolutions.com>
14258 * decimal.c - define DECINLINE to nothing if not using GCC
14260 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
14262 * assembly.c: More refcount fixes.
14264 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14266 * string-icalls.c: if we're not trimming, return the same string.
14267 When not splitting, don't create a new string.
14269 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14272 (mono_image_open): increment the ref_count inside the critical section.
14274 2003-10-02 Zoltan Varga <vargaz@freemail.hu>
14276 * image.c (mono_image_open): Fix reference counting bug.
14278 2003-09-30 Bernie Solomon <bernard@ugsolutions.com>
14280 * marshal.c (mono_marshal_type_size) struct alignment changed for
14281 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for
14282 64bits. Avoid leak in mono_marshal_get_native_wrapper when
14283 mono_lookup_pinvoke_call throws.
14285 2003-09-30 Zoltan Varga <vargaz@freemail.hu>
14287 * reflection.c (mono_reflection_parse_type): Fix #49114.
14289 * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14290 temporary workaround for cygwin header problem.
14292 * object.c (mono_object_isinst): Synchronize this with the code
14293 generated by the JIT for casts.
14295 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
14297 * reflection.c (encode_type): Fix #38332.
14299 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
14301 * marshal.c (mono_marshal_method_from_wrapper): New function to return
14302 the original method from the wrapper method.
14304 2003-09-25 Martin Baulig <martin@ximian.com>
14306 * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14307 interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14308 (ves_icall_Type_get_IsGenericInstance): New interncall.
14310 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14312 * object.c: fix cast warning in big endian code.
14314 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14316 * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14318 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14320 * assembly.c: don't call check_env from mono_assembly_load. It's
14321 already done once in mono_assemblies_init and may cause headaches when
14322 multiple threads are loading assemblies.
14324 2003-09-19 Martin Baulig <martin@ximian.com>
14326 * reflection.c (mono_reflection_define_generic_parameter): Don't
14327 allocate `klass->methods', set `klass->flags' to
14328 TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14330 2003-09-18 Martin Baulig <martin@ximian.com>
14332 * class.c (mono_class_init): Don't create `class->methods' if it's
14333 already initialized.
14335 * metadata.c (mono_metadata_load_generic_params): Make this
14338 * reflection.c (mono_reflection_define_generic_parameter): Set
14339 parent class and interfaces from the constraints.
14341 * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14342 to keep this struct in sync with the declaration in TypeBuilder.cs.
14344 2003-09-17 Martin Baulig <martin@ximian.com>
14346 * metadata.h (MonoType): Replaced the data's `int type_param'
14347 field with `MonoGenericParam *generic_param'.
14348 (MonoGenericParam): Added `MonoClass *klass'.
14350 * class.c (mono_class_from_gen_param): Removed the
14351 `MonoImage *image' and `int type_num' arguments.
14353 * metadata.c (mono_metadata_parse_generic_param): New static
14354 method; creates a MonoGenericParam which just contains the index.
14355 (do_mono_metadata_parse_type): Call
14356 mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14359 * reflection.c (mono_image_typedef_or_ref): Generic type
14360 parameters may be in the same assembly, but never use a typedef
14362 (mono_reflection_define_generic_parameter): We're now creating a
14363 "real" class for the type parameter; it's now safe to call
14364 mono_class_from_mono_type() on the class'es type, it'll do the
14367 2003-09-16 Martin Baulig <martin@ximian.com>
14369 * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14370 `symfile->range_entry_size' and `symfile->class_entry_size' here;
14371 the `symfile' data structure must be fully initialized before it
14372 gets added to the table.
14374 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
14376 * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14378 * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14379 class init trampolines.
14381 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
14383 * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14384 to the built-in profiler to turn off time and allocation profiling
14387 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
14389 * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14392 * debug-helpers.c (mono_method_full_name): Print the wrapper type
14393 in human readable form.
14395 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
14397 * reflection.c icall.c: Fixed warnings.
14399 * image.c (load_class_names): Use a temporary hash table to hold the
14400 namespaces in order to avoid doing many string comparisons.
14402 * image.h: Fix typo.
14404 * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14405 Pass NULL instead of g_direct_equal to the GHashTable constructor
14406 since the NULL case is short-circuited inside g_hash_table_lookup,
14407 leading to better performance.
14409 * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14410 obtain the first custom attribute for a given index. Depends on the
14411 CustomAttribute table being sorted by the parent field.
14413 * reflection.c (mono_custom_attrs_from_index): Use the new function
14414 for better performance.
14416 2003-09-07 Martin Baulig <martin@ximian.com>
14418 * class.c (mono_class_init): If we're a generic instance, inflate
14419 all our methods instead of loading them from the image.
14420 (mono_class_from_generic): Set `class->methods = gklass->methods'.
14422 2003-09-07 Martin Baulig <martin@ximian.com>
14424 * mono-debug-debugger.c: Added support for constructors.
14426 2003-09-06 Martin Baulig <martin@ximian.com>
14428 * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14431 * reflection.c (mono_reflection_setup_generic_class): Call
14432 ensure_runtime_vtable() to create the vtable.
14434 2003-09-05 Martin Baulig <martin@ximian.com>
14436 * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14439 2003-09-04 Martin Baulig <martin@ximian.com>
14441 * reflection.c (mono_reflection_define_generic_parameter): Generic
14442 parameters start with zero.
14444 2003-09-04 Martin Baulig <martin@ximian.com>
14446 * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14448 * reflection.h (MonoReflectionGenericParam): New typedef.
14449 (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14450 the generic parameters from the managed TypeBuilder.
14452 * reflection.c (mono_reflection_define_generic_parameter): New function.
14453 (mono_reflection_create_runtime_class): Encode generic parameters.
14454 (mono_reflection_setup_generic_class): New function; this is
14455 called after adding adding all generic params to the TypeBuilder.
14456 (encode_type): Added MONO_TYPE_VAR.
14458 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
14460 * class.h class.c (mono_class_needs_cctor_run): Moved this method
14463 * assembly.h assembly.c: Moved the AOT loading code into an assembly
14466 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
14468 * reflection.h reflection.c class.h class.c: Delete duplicate
14469 definition of mono_type_get_name () from reflection.c and export the
14472 * class.c: Class loading fixes from Bernie Solomon
14473 (bernard@ugsolutions.com).
14475 * reflection.c: Endianness fixes from Bernie Solomon
14476 (bernard@ugsolutions.com).
14478 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
14480 * assembly.h assembly.c: Define a file format version for AOT
14483 * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14485 * appdomain.h (MonoJitInfo): New field to determine whenever the
14486 code is domain neutral.
14488 2003-08-31 Miguel de Icaza <miguel@ximian.com>
14490 * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14492 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
14494 * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir):
14495 (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14496 Avoid caching the result since strings must be domain specific. Fixes
14499 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
14501 * marshal.c (mono_marshal_init): Make this callable multiple times
14502 since it is hard to find a correct place to call it.
14504 * object.c (mono_runtime_class_init): Execute static constructors in
14505 the correct appdomain.
14507 * image.c (build_guid_table): Handle the case when multiple images have
14510 2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14512 * icall.c: added a couple of icalls for System.Web.
14514 2003-08-28 Martin Baulig <martin@ximian.com>
14516 * icall.c (ves_icall_Type_BindGenericParameters): Use
14517 `klass->generic_inst' instead of `&klass->byval_arg' in the
14518 mono_type_get_object() call. The returned type must be
14519 MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14521 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
14525 * object.c (mono_class_proxy_vtable): Make it thread safe.
14527 * pedump.c: Fix warning.
14529 * object.c appdomain.h: Get rid of metadata_section.
14530 It is no longer needed and it was causing deadlocks with domain->lock.
14532 * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14534 2003-08-26 Martin Baulig <martin@ximian.com>
14536 * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14538 2003-08-26 Martin Baulig <martin@ximian.com>
14540 * pedump.c (main): Call mono_metadata_init(),
14541 mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14542 and mono_loader_init().
14544 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
14546 * loader.h: Add missing include to fix build.
14548 * image.h: mono_image_load_references is no more.
14550 * assembly.c: Reworked assembly loading to make it really thread safe.
14551 After these changes, the assembly returned by mono_assembly_open is
14552 fully initialized, i.e. all its references assemblies are loaded.
14554 * assembly.c (mono_image_load_references): Renamed to
14555 mono_assembly_load_references, and made private, since clients no
14556 longer need to call it.
14558 * class.c: Removed calls to mono_assembly_load_references, since it was
14559 a source of deadlocks.
14561 * loader.h loader.c class.h class.c: Protect data structures using a
14562 new lock, the loader lock.
14564 * class.c (mono_class_setup_vtable): Create temporary hash tables and
14565 GPtrArrays only when needed.
14567 * class.c (mono_class_layout_fields): Ignore the dummy field inserted
14568 into empty structures by mcs. Fixes pinvoke7.cs.
14570 * domain.c (mono_init): Call a new initialization function.
14572 * appdomain.c (mono_runtime_init): Call the new initializer function
14573 of the marshal module.
14575 * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14576 inserted into empty structures by mcs. Fixes pinvoke7.cs.
14578 * marshal.h marshal.c: Added locks around the wrapper caches to make
14579 this module thread safe.
14581 * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14582 this argument. Fixes pinvoke1.exe.
14584 2003-08-25 Lluis Sanchez <lluis@ximian.com>
14586 * object.h: Added call_type field to MonoMethodMessage and the corresponding
14587 enumeration of values. Removed fields to store remote call output values in
14588 MonoAsyncResult. Not needed any more.
14589 * object.c: Initialize call_type and async_result fields in mono_message_init.
14590 * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14591 dispatching the message.
14592 mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14593 async call to finish. To do it use a message with EndInvoke call type.
14595 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
14597 * loader.h loader.c (mono_method_hash_marhal_info): New function which
14598 determines whenever a method has marshalling info.
14600 2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14602 * assembly.c: fix the build on windows.
14604 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14606 * object.cs: Fixed bug #47785.
14608 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14610 * string-icalls.c (StringReplace): If their are no occurances of
14611 the old string found return a reference to the supplied
14612 string. This saves some memory and matches MS behavoir.
14614 2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14616 * socket-io.c: fixed compilation for systems that define AF_INET6
14617 and don't define SOL_IP/SOL_IPV6.
14619 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
14621 * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14622 the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14624 * rawbuffer.c rawbuffer.h: Make this module thread safe.
14626 * domain.c: Make this module thread safe.
14628 * domain.c (mono_init): Call new initialization function.
14630 * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14631 reference types too. Fixes #38812.
14633 * image.c (mono_image_init): Fixed warnings.
14635 * class.c (mono_class_from_typeref): Handle assembly load failure
14638 * appdomain.c (add_assemblies_to_domain): Handle the case when
14639 the references of an assembly are not yet loaded.
14641 * metadata.c image.c assembly.c: Moved initialization of global
14642 variables to a separate function called at startup since lazy
14643 initialization of these variables is not thread safe.
14645 * image.c assembly.c: Made this module thread safe by adding locks in
14646 the appropriate places.
14648 * domain.c (mono_init): Call the new initialization functions of the
14651 2003-08-20 Lluis Sanchez Gual <lluis@ximian.com>
14653 * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14654 make a direct call. It is proxy's work to make the call asynchronous.
14655 mono_delegate_end_invoke(): If the targe is a proxy, just collect
14657 * object.cs: mono_method_call_message_new(): read AsyncResult and
14658 state object from parameters list, if this info is requested.
14659 * object.h: Added fields to store remote call output values in
14660 MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14662 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14664 * object.h: add needed fields to MonoThread.
14665 * threads.c, threads.h: allow registering a function to cleanup data
14666 allocated per thread by the JIT.
14668 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14670 * loader.h: portability fix by Bernie Solomon
14671 * <bernard@ugsolutions.com>.
14673 2003-08-16 Zoltan Varga <vargaz@freemail.hu>
14675 * reflection.h reflection.c (mono_param_get_objects): Changed this to
14676 return a MonoArray. This simplifies the code and also ensures that
14677 the cache allways contains an object reference as a value.
14679 * icall.c (ves_icall_get_parameter_info): Simplified using the new
14682 2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14684 * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14685 fixes a problem with byte ordering when getting the address family for
14688 2003-08-15 Zoltan Varga <vargaz@freemail.hu>
14690 * .cvsignore: Added monosn.
14692 * reflection.h reflection.c loader.c: Added support for parameter
14693 marshalling to dynamically created types. Fixes #47295.
14695 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14697 * rand.c: remove useless warnings.
14699 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14701 * class.c: implemented ldtoken for methods and fieldrefs.
14703 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14705 * threadpool.c: when mono_async_invoke was called, no one took care of
14706 monitoring the queue. So if the method invoked took some time and we
14707 got new async invoke requests after 500 ms (the thread created waited
14708 that long in WaitForSingleObject), the new async invoke was not called
14709 until the previous one finished.
14711 This is fixed now. Thanks to Totte for helping with it.
14713 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14715 * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14717 2003-08-11 Martin Baulig <martin@ximian.com>
14719 * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14721 2003-08-06 Martin Baulig <martin@ximian.com>
14723 * mono-debug-debugger.c: Added support for static fields,
14724 properties and methods.
14726 2003-08-06 Martin Baulig <martin@ximian.com>
14728 * mono-debug-debugger.c: Don't store the MonoString's vtable to
14729 make this work for applications with multiple application domains.
14731 2003-08-04 Martin Baulig <martin@ximian.com>
14733 * mono-debug-debugger.c: Completely reworked the type support; the
14734 most important thing is that we're now just using one single
14735 `MonoType' instance per type.
14737 Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14739 * mono-endian.h, mono-endian.c, icall.c: Added icall
14740 ves_icall_System_Double_AssertEndianity to assert double word endianity
14741 on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14743 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14745 * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14746 support, icalls and fixes.
14748 2003-07-31 Miguel de Icaza <miguel@ximian.com>
14750 * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14751 classes that are a punctuation character in .NET is not the same a
14754 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14756 * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14758 2003-07-29 Miguel de Icaza <miguel@ximian.com>
14760 * icall.c: Add new MemCopy internalcall.
14761 (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14762 Simplified code; It is not necessary to handle all the cases here,
14763 as the C# code takes care of it. Only handle the case of the name
14764 resource embedded into the assembly.
14766 Changed signature to return the data pointer and the size of the
14769 2003-07-26 Miguel de Icaza <miguel@ximian.com>
14771 * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14772 encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14774 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
14776 * socket-io.c: ignore EINTR error in select.
14778 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14780 * class.h, class.c: removed unused subclasses field in MonoClass.
14782 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
14784 * icall.c: improve fix of get_base_definition(). If the parent class
14785 doesn't have the mehod, look at the parent of the parent.
14786 * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14787 to check if a parameter is an in or out parameter
14788 (PARAM_ATTRIBUTE_IN is not set by default).
14789 mono_method_return_message_restore(): Use mono_class_value_size to
14790 get the size of a value type. mono_type_stack_size (parameterType)
14791 does not return the correct value if parameterType is byRef.
14792 mono_load_remote_field(), mono_load_remote_field_new(),
14793 mono_store_remote_field(), mono_store_remote_field_new():
14794 raise exception if the remote call returns an exception.
14796 2003-07-28 Martin Baulig <martin@ximian.com>
14798 * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14799 method. This is a wrapper around mono_runtime_invoke() which
14800 boxes the instance object if neccessary.
14802 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14804 * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14805 metadata.h, row-indexes.h, verify.c: first cut of generics support.
14807 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14809 * icall.c: disable mcs bug workaround.
14811 2003-07-21 Miguel de Icaza <miguel@ximian.com>
14813 * object.c (mono_runtime_class_init): Take the metadata_section
14814 mutex before obtaining the domain mutex.
14816 * appdomain.h: Added definition of metadata_section mutex here.
14818 * object.c: define metadata_mutex here.
14820 2003-07-24 Ravi Pratap <ravi@ximian.com>
14822 * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14825 2003-07-24 Lluis Sanchez Gual <lluis@ximian.com>
14827 * reflection.c: Fix bug #46669
14829 2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14834 * object.h: fill in the type name for TypeLoadException.
14836 2003-07-23 Ravi Pratap <ravi@ximian.com>
14838 * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14839 relationship between TypeBuilders while compiling corlib) and bug
14840 45993 (Array types returned from the runtime while compiling
14841 corlib were from the loaded corlib).
14843 2003-07-22 Martin Baulig <martin@ximian.com>
14845 * mono-debug-debugger.c: Reworked the type support a bit more;
14846 distinguish between types and classes.
14848 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14850 * icall.c: add IsArrayImpl icall.
14852 2003-07-22 Zoltan Varga <vargaz@freemail.hu>
14854 * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14855 initializing real_size only once. Also fix bug #46602.
14857 2003-07-21 Jerome Laban <jlaban@wanadoo.fr>
14859 * object.c: Renamed mono_metadata_section to metadata_section.
14861 2003-07-21 Lluis Sanchez Gual <lluis@ximian.com>
14863 * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14864 empty array if the type is an array. Fixed.
14865 ves_icall_MonoMethod_get_base_definition: if the base method
14866 is abstract, get the MethodInfo from the list of methods of
14868 * reflection.c: ParameterInfo.PositionImpl should be zero-based
14869 and it was 1-based. Fixed in mono_param_get_objects.
14871 2003-07-20 Martin Baulig <martin@ximian.com>
14873 * mono-debug.h: Set version number to 31.
14874 (mono_debug_init): Added `MonoDomain *' argument.
14876 * mono-debug-debugger.c: Reworked the type support; explicitly
14877 tell the debugger about builtin types; pass the `klass' address to
14880 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14882 * image.c: Allow new metadata tables to be loaded without a
14883 warning. Also update the warning message to give the new constant value.
14885 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14887 * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14888 metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c:
14889 array type representation changes.
14891 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14893 * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14894 on Environment.Exit () call.
14896 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14898 * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14899 requires a matching corlib.
14901 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
14903 * Changelog: My editor decided to add a CR to each line. Sorry about that.
14904 Committed again without the CRs.
14906 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
14908 * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14909 getting it from the "this" socket instance. Did not work
14910 if the socket is a subclass of Socket.
14911 Also fixed bug #35371.
14913 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14915 * metadata.c: fixed size for TypedByRef.
14916 * loader.c: when searching for a method, consider the vararg amrker.
14917 * unicode.c, decimal.c: constify some arrays.
14919 2003-07-15 Dick Porter <dick@ximian.com>
14921 * socket-io.c: Fixed compilation for gcc < 3.2.
14923 Fixed compilation for machines that don't have AF_INET6 (thanks to
14924 Bernie Solomon <bernard@ugsolutions.com> for that part.)
14926 Fixed compile warnings.
14928 Fixed formatting and line endings.
14930 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
14933 * socket-io.c: Added IPv6 support.
14935 2003-07-13 Zoltan Varga <vargaz@freemail.hu>
14937 * class.c (mono_class_is_assignable_from): New function to implement
14938 the is_assignable_from logic. Used by mono_object_isinst,
14939 Type::IsAssignableFrom () and the interpreter.
14941 * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14942 Object, even interfaces.
14944 * object.c (mono_object_isinst): Implement in terms of
14945 is_assignable_from.
14947 * icall.c (ves_icall_type_is_assignable_from): New icall.
14949 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
14951 * domain.c (foreach_domain): fix compiler warning.
14953 2003-07-11 Dietmar Maurer <dietmar@ximian.com>
14955 * image.c (load_metadata_ptrs): use g_strndup because strndup is
14956 not available on all plattforms
14958 2003-07-10 Zoltan Varga <vargaz@freemail.hu>
14960 * image.h image.c: Store the metadata version string in MonoImage.
14961 * icall.c: New icall to retrieve the image version.
14962 * reflection.c (create_dynamic_image): Fill in the image version field
14963 * reflection.c (build_compressed_metadata): Use the image version
14964 from the image structure.
14966 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14968 * appdomain.c: modified comment.
14969 * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14970 That will be its last iteration when mono_gc_cleanup is called from
14971 mono_runtime_cleanup and before the domain is unloaded.
14975 2003-07-04 Dietmar Maurer <dietmar@ximian.com>
14977 * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14980 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14982 * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14983 rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14984 Bernie Solomon <bernard@ugsolutions.com>.
14986 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14988 * object.c, object.h: provide mono_object_new_fast() for faster
14989 allocation in some special cases.
14991 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14993 * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14994 mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14996 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14998 * threadpool.c: fix leaks.
15000 2003-07-01 Dick Porter <dick@ximian.com>
15002 * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
15003 using MonoGHashTables. Fixes threadpool bug posted to list.
15005 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15007 * image.h, image.c: added support to load an assembly from a byte array.
15008 * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added
15009 assembly bundle support.
15011 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
15013 * threadpool.c (mono_thread_pool_add): keep a reference to the
15014 AsyncResult to prevent GC
15016 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15018 * class.c: leak fix.
15020 2003-06-25 Dick Porter <dick@ximian.com>
15022 * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
15023 for the async object, the WaitHandle object will close the handle.
15026 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15028 * class.c: in mono_array_class_get (), lookup from the hash with the
15029 same type we insert: this works around a bug in
15030 mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
15031 lluis. The real fix will have to wait for after the release.
15033 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15035 * icall.c: fix memory leak when getting type members.
15037 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15039 * reflection.c: added more pubtoken special cases.
15041 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
15043 * class.c: handle field offset correctly when class size
15044 is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
15046 2003-06-20 Martin Baulig <martin@ximian.com>
15048 * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
15051 2003-06-20 Martin Baulig <martin@ximian.com>
15053 * image.h, mono-debug-debugger.h: Fixed compiler warnings.
15055 2003-06-20 Martin Baulig <martin@ximian.com>
15057 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We
15058 just distinguish between variables in registers and variables at
15059 an offset relative to a register.
15061 2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15063 * icall.c: #ifdef out latest changes until mcs is fixed.
15065 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15067 * icall.c: return members in metadata order.
15069 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15071 * icall.c: avoid infinite loop in GetTimeZoneData.
15073 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
15075 * icall.c: added Marshal.Prelink/All icalls.
15077 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15079 * object.c, object.h: fix warnings and do some overflow checking
15080 when creating arrays.
15082 2003-06-17 Dick Porter <dick@ximian.com>
15085 * file-io.c: File attributes need to be tweaked slightly when
15086 passed from the managed to the w32 world.
15088 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
15089 * profiler.h profiler-private.h profiler.c: Rework last patch
15090 based on suggestion by Paolo.
15092 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
15094 * profiler.h profiler-private.h profiler.c: Added infrastructure for
15095 instruction level coverage data collection.
15096 * profiler.h profiler.c (: Added new callback function which can be
15097 used by the profiler to limit which functions should have coverage
15099 * profiler.c (mono_profiler_load): Call g_module_build_path to
15100 generate the file name of the profiler library.
15102 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15104 * profiler.c, profiler.h, profiler-private.h: added basic block
15105 coverage profiling API.
15107 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
15109 * reflection.c (mono_reflection_create_runtime_class): Add support
15110 for events in dynamically generated code.
15112 * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15115 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15117 * icall.c: when getting timezone info, return reasonable values if we
15118 can't get the actual data.
15120 2003-06-14 Dick Porter <dick@ximian.com>
15122 * threads.c (start_wrapper): Remove the reference to the thread
15123 object in the TLS data, so the thread object can be finalized.
15124 This won't be reached if the thread threw an uncaught exception,
15125 so those thread handles will stay referenced :-( (This is due to
15126 missing support for scanning thread-specific data in the Boehm GC
15127 - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15129 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15131 * reflection.c: ensure streams and tables are first allocated with
15132 ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15134 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15136 * icall.c: fixed GetElementType for byrefs (bug# 44792).
15138 2003-06-13 Zoltan Varga <vargaz@freemail.hu>
15140 * reflection.c (mono_reflection_create_runtime_class): Add support for
15141 properties to dynamically created classes.
15142 * reflection.c: Fix a few places where non-MonoObjects were inserted
15143 into the tokens hashtable.
15145 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15147 * object.c: some support to handle out of memory exceptions.
15149 2003-06-12 Dietmar Maurer <dietmar@ximian.com>
15151 * marshal.c (mono_marshal_get_native_wrapper): support reference
15154 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15156 * object.h, object.c: more portability stuff from Bernie Solomon.
15157 Unexport mono_object_allocate(). Added mono_object_unbox ().
15158 Set exitcode when an unhandled exception is thrown.
15160 2003-06-11 Dietmar Maurer <dietmar@ximian.com>
15162 * marshal.c (mono_marshal_get_native_wrapper): use custom
15163 marshaler for return types.
15165 2003-06-10 Dick Porter <dick@ximian.com>
15167 * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15168 ip_mreq is available
15170 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15172 * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15173 mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15174 by Bernie Solomon <bernard@ugsolutions.com>.
15176 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
15178 * gc.c (mono_gc_init): Avoid error message on shutdown when
15179 GC_DONT_GC=1 is used.
15181 * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal):
15182 New icall to return the GUID of a module.
15184 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15186 * class.c: ensure instance size always includes the parent's size
15187 even whem class size is set explicitly (fixes bug#44294).
15189 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15191 * profiler.h, profiler.c: made the simple profiler thread-safe,
15192 get more accurate timing info. Allow the loading of an
15193 externally-developed profiler module.
15195 2003-06-05 Dietmar Maurer <dietmar@ximian.com>
15197 * marshal.c (mono_marshal_get_native_wrapper): improved
15198 class/byref arguments.
15199 (mono_marshal_get_native_wrapper): better string marshaling support.
15201 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15203 * class.c: ensure .pack and .size are handled correctly and
15204 simplified layout of static fields.
15206 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
15209 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15211 * loader.c (mono_lookup_pinvoke_call): look for modules in the
15212 current directory (fix bug 44008)
15214 2003-06-03 Dietmar Maurer <dietmar@ximian.com>
15216 * marshal.c (mono_marshal_get_native_wrapper): started support for
15218 (mono_delegate_to_ftnptr): consider marshalling specifications
15220 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15222 * reflection.c, reflection.h: emit custom marshal info.
15224 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15226 * object.c: free the GError.
15227 * icall.c: added CloseEvent_internal.
15229 (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15232 2003-06-01 Zoltan Varga <vargaz@freemail.hu>
15234 * loader.c (mono_method_get_signature): Add support for dynamic
15237 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15239 * reflection.c: fixed bug #43905.
15241 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15243 * class.c, domain.c, icall.c, metadata.h, object.h: support for
15244 handling TypedReference and ArgIterator.
15245 * loader.c, loader.h: added function to get signature at call site.
15247 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15249 * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more
15250 data readonly. Buglets and warning fixes. Some MethodSpec support.
15252 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15254 * class.h, class.c, object.c: remove relative numbering support.
15256 2003-05-26 Miguel de Icaza <miguel@ximian.com>
15258 * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15259 free the string, until we get a chance to fix Gtk#
15261 2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15263 * marshal.c: revert last patch.
15265 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15267 * icall.c: updates for new mono_class_vtable() not calling
15268 the type constructor anymore.
15270 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15272 * object.h, object.c: separate vtable creation from type
15273 initialization. Make running the .cctor thread safe.
15275 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
15277 * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15279 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
15281 * loader.c (mono_get_method): consider calling convention
15283 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
15285 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15286 to return the invisible global type for a module.
15288 * reflection.c (mono_image_build_metadata): Emit global fields too.
15290 2003-05-20 Peter Williams <peterw@ximian.com>
15292 * loader.c (mono_lookup_internal_call): Add a few newlines.
15294 2003-05-20 Zoltan Varga <vargaz@freemail.hu>
15296 * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15299 * appdomain.c (set_domain_search_path): Recalculate search path when
15300 AppDomainSetup.PrivateBinPath changes.
15302 * object.c (mono_class_compute_gc_descriptor): It turns out some
15303 parts of the class libs (like System.Thread) holds pointers to
15304 GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15305 to treat native int a pointer type here.
15307 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15309 * appdomain.h, domain.c: add hashtable for jump target resolution.
15311 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
15313 * reflection.h reflection.c icall.c: Added new icalls
15314 GetManifestResourceInfoInternal, GetModulesInternal and support
15317 2003-05-16 Dick Porter <dick@ximian.com>
15321 * file-io.c: Implement System.IO.MonoIO::GetTempPath
15323 2003-05-14 Lluis Sanchez Gual <lluis@ideary.com>
15325 * object.c: mono_store_remote_field: little fix to previous patch.
15327 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15329 * class.c: add constructors to array classes.
15330 * icall.c: special case array construction for InternalInvoke (),
15332 2003-05-14 Zoltan Varga <vargaz@freemail.hu>
15334 * class.h class.c reflection.c object.c: Added support for field
15335 defaults in dynamically generated classes.
15337 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15339 * reflection.c: properly encode charset for ddlimport.
15341 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15343 * threads.c: allow compiling without GC.
15345 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15347 * appdomain.h, object.c, object.h, threads.c, threads.h: added
15348 handling of thread static data.
15350 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15352 * reflection.h, reflection.c: added mono_custom_attrs_free ().
15354 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
15356 * class.c (mono_array_class_get): always set the serializable flags
15357 (mono_array_class_get): always set the SEALED attribute for array types
15359 2003-05-12 Dietmar Maurer <dietmar@ximian.com>
15361 * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15362 attributes (fix for bug 42021).
15364 2003-05-12 Dick Porter <dick@ximian.com>
15366 * gc.c: Don't run finalizers when the finalizer thread is
15367 finishing up, because the default domain has already been
15370 2003-05-11 Miguel de Icaza <miguel@ximian.com>
15372 * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15373 value is null, we should throw an exception. This is slightly
15374 different than the other conventions used for the constructor.
15376 2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15378 * socket-io.c: fixed windows build.
15380 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15382 * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15384 2003-05-10 Zoltan Varga <vargaz@freemail.hu>
15386 * object.c (mono_string_new_wrapper): Compatibility fix for MS
15389 2003-05-09 Zoltan Varga <vargaz@freemail.hu>
15391 * class.c (mono_class_layout_fields): Add experimental GC aware
15392 auto layout facility. Requires class library changes to work correctly.
15394 (mono_class_setup_vtable): Avoid overriding explicit interface
15395 method implementations. Fixes iface3.exe test.
15397 * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15399 (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15400 (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15402 * metadata.h: Add new type classification macro which determines
15403 whenever the type holds an object reference.
15405 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
15407 * marshal.c (mono_marshal_get_native_wrapper): cleanups
15409 2003-05-07 Zoltan Varga <vargaz@freemail.hu>
15411 * gc.c (finalizer_thread): Work around a GC bug.
15413 2003-05-07 Dietmar Maurer <dietmar@ximian.com>
15415 * marshal.c (emit_struct_conv): allow unions
15417 * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15419 2003-05-06 Dietmar Maurer <dietmar@ximian.com>
15421 * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15423 2003-05-06 Martin Baulig <martin@ximian.com>
15425 * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15427 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15430 (Select_internal): allow NULLs, don't create arrays if not needed.
15431 Coupled with Socket.cs changes.
15434 (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15435 register a finalizer for it that will close the semaphore handle. This
15436 fixes the leak and make Lupus' test run with > 4080 loops.
15438 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
15440 * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15441 Jerome Laban (bug #42287)
15443 2003-05-02 Martin Baulig <martin@ximian.com>
15445 * debug-mono-symfile.h
15446 (MonoSymbolFile): Moved declaration into mono-debug.h.
15447 (MonoDebugMethodJitInfo): Likewise.
15448 (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15450 (_mono_debug_address_from_il_offset): Take a
15451 MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15454 (MonoDebugDomainData): New struct.
15455 (mono_debug_get_domain_data): New function.
15456 (mono_debug_add_method): Take an additional `MonoDomain *'
15458 (mono_debug_source_location_from_address): Likewise.
15459 (mono_debug_il_offset_from_address): Likewise.
15460 (mono_debug_address_from_il_offset): Likewise.
15462 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15464 * reflection.c: one more check for null type in custom attrs.
15466 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15468 * reflection.c: avoid warning (comparison is always false due to limited
15469 range of data type).
15471 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15473 * icall.c: throw an exception in Type.GetField if the argument 'name'
15476 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15478 * reflection.c: fixed handling of enums in named arguments to custom
15479 attributes (bug #42123).
15481 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15483 * reflection.c: use the right array element type and handle
15484 a null for a Type argument, too.
15486 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15488 * reflection.c: handle arrays as arguments to custom attributes.
15490 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15492 * reflection.c: handle a string value in a custom attr
15493 ctor that takes an object.
15495 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
15497 * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15500 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
15502 * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15504 2003-04-27 Martin Baulig <martin@ximian.com>
15506 * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15507 MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15508 MONO_DEBUGGER_EVENT_BREAKPOINT.
15509 (mono_breakpoint_trampoline_code): Removed.
15510 (mono_debugger_event_handler): The last argument is now a
15512 (mono_debugger_insert_breakpoint_full): Removed the
15513 `use_trampoline' argument.
15514 (mono_debugger_method_has_breakpoint): Likewise.
15515 (mono_debugger_trampoline_breakpoint_callback): Renamed to
15516 mono_debugger_breakpoint_callback(); take the method and
15517 breakpoint number as arguments.
15519 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15521 * metadata.c: fix off by one when loading parameters attributes.
15523 2003-04-24 Martin Baulig <martin@ximian.com>
15525 * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15527 2003-04-24 Martin Baulig <martin@ximian.com>
15529 * mono-debug-debugger.c: Moved all code which interacts with the
15530 Mono Debugger here.
15532 * debug-mono-symfile.c: This code now just deals with the symbol
15533 file itself, the debugger code is now in mono-debug-debugger.c.
15535 2003-04-23 Martin Baulig <martin@ximian.com>
15537 * mono-debug.c (mono_debug_source_location_from_il_offset):
15538 New method; like mono_debug_source_location_from_address(), but
15539 takes an IL offset instead of a machine address.
15541 2003-04-23 Martin Baulig <martin@ximian.com>
15543 * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15544 `line' field; this is now computed by the debugger.
15546 2003-04-23 Martin Baulig <martin@ximian.com>
15548 * mono-debug.[ch]: New files. This is the new debugging interface.
15550 * mono-debug-debugger.[ch]: New files. Moved all code which
15551 interacts with the Mono Debugger here.
15553 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
15555 * domain.c (mono_init): initialize mono_defaults.monitor_class
15557 2003-04-21 Miguel de Icaza <miguel@ximian.com>
15559 * reflection.c (method_encode_code): Add a spicy exception to help
15560 future compiler authors.
15562 2003-04-21 Martin Baulig <martin@ximian.com>
15565 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15566 Make this work with relative pathnames; g_filename_to_uri() needs
15567 an absolute filename.
15569 2003-04-18 Zoltan Varga <vargaz@freemail.hu>
15571 * icall.c: Track name changes in Object and ValueType.
15573 2003-04-18 Dietmar Maurer <dietmar@ximian.com>
15575 * metadata.c (mono_type_stack_size): size should be a multiple of
15578 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15581 (internal_domain_finalize): moved into mono_domain_finalize. No need
15582 to create another thread because the finalizers will be run in the
15585 (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15586 (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15587 to be run (MS does this too).
15589 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
15591 * object.c (mono_class_compute_gc_descriptor): Update comment.
15593 * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15595 * image.h: Add synchronized wrapper cache.
15597 * image.c (do_mono_image_open): Initialize cache.
15599 * reflection.c (create_dynamic_mono_image): Initialize cache.
15601 2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15603 * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15604 ves_icall_System_Buffer_ByteLengthInternal.
15606 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15608 * reflection.c: setup klass->nested_in earlier. Allow
15609 a dash in the assembly name.
15611 2003-04-15 Dietmar Maurer <dietmar@ximian.com>
15613 * metadata.c (mono_type_to_unmanaged): dont access
15614 type->data.klass for MONO_TYPE_OBJECT
15615 (mono_type_to_unmanaged): consider System.Delegate class
15617 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15619 * class.c: just setup supertypes in the proper place instead of
15620 initializing the full element class for arrays.
15622 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15624 * class.c: ensure the element class of arrays is initialized.
15625 Setup the supertype info for array classes, too.
15627 2003-04-14 Miguel de Icaza <miguel@ximian.com>
15629 * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15631 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15633 * Makefile.am: re-added -m option when running cygpath. This way,
15634 MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15636 * mono-config.c: same codepath for locating mono config file for WIN32
15638 * assembly.c: if mono_assembly_setrootdir is called, don't override
15641 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15643 * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15644 MONO_ASSEMBLIES variable.
15646 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15648 * icall.c: added Assembly::GetNamespaces() icall.
15650 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15652 * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15654 2003-04-10 Lluis Sanchez Gual <lluis@ideary.com>
15656 * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15657 * object.c: fixed bug in the construction of vtable for proxies
15659 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
15661 * object.c (mono_array_new): Mark mono_array_new as an icall.
15663 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15665 * class.c: fixed test for public method when overriding interfaces.
15668 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15670 * appdomain.h, domain.c: added mono_domain_foreach() to
15671 be able to access the currently loaded appdomains.
15672 * object.c: make string interning work across sppdomains.
15673 Mark some functions for use as icalls.
15675 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
15677 * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15679 * reflection.h reflection.c: Allocate long living data using
15680 GC_MALLOC_ATOMIC so the collector does not need to scan it.
15682 * reflection.c: Double the allocation size in streams instead of
15683 increasing it, to prevent unneccesary copying on large assemblies.
15685 * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15686 creation if the assembly does not have the Run flag set.
15688 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15690 * class.h: avoid the C++ keywords in header files (Jerome Laban
15691 spotted and fixed this).
15693 2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15696 (mono_unhandled_exception): fill in the arguments for the
15697 UnhandledException event. Only trigger that event for the default
15698 domain (as MS does).
15700 2003-04-04 Zoltan Varga <vargaz@freemail.hu>
15702 * object.c: Improve typed allocation stuff based on suggestions from
15703 Paolo. Also turn it on if the GC library supports it.
15705 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
15707 * object.c object.h class.h: Added experimental typed allocation
15708 facility using the interfaces in gc_gcj.h.
15710 * os/gc_wrapper.h: Added new include files.
15712 2003-04-03 Martin Baulig <martin@ximian.com>
15714 All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15715 which is not yet enabled by default.
15717 * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15719 (mono_gc_lock, mono_gc_unlock): New static functions.
15721 * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15722 functions; stop/start the world for the garbage collector. This
15723 is using the windows API; we need to complete the SuspendThread()/
15724 ResumeThread() implementation in the io-layer to make this work on Unix.
15725 (mono_gc_push_all_stacks): New public function; tells the garbage
15726 collector about the stack pointers from all managed threads.
15728 2003-04-03 Martin Baulig <martin@ximian.com>
15730 * object.h (MonoThread): Added `gpointer stack_ptr'.
15732 * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15734 2003-04-03 Martin Baulig <martin@ximian.com>
15736 * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15738 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
15740 * reflection.c (typebuilder_setup_fields): Initialize field.first and
15743 2003-04-02 Miguel de Icaza <miguel@ximian.com>
15745 * loader.c (mono_lookup_internal_call): Report the corlib that is
15748 2003-03-05 Aleksey Demakov <avd@openlinksw.com>
15750 * icall.c (ves_icall_type_GetTypeCode): fixed check for
15751 System.DBNull (it's class not valuetype).
15753 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15755 * reflection.c: set table_idx in MonoReflectionArrayMethod object even
15756 if the array method was already assigned a token (fixes bug#40646).
15758 2003-04-02 Zoltan Varga <vargaz@freemail.hu>
15760 * reflection.c (mono_reflection_get_type): Attempt type resolve even
15761 if no assembly is given.
15763 2003-04-01 Miguel de Icaza <miguel@ximian.com>
15765 * metadata.h: Added the new tables.
15767 * row-indexes.h: Added definitions for new tables.
15769 * metadata.c: Add schemas for new tables, and add support for
15770 computing the sizes of them.
15772 * class.c: Update for handling the new type cases.
15774 2003-04-01 Dietmar Maurer <dietmar@ximian.com>
15776 * metadata.h (MONO_TYPE_IS_VOID): new macro
15778 2003-03-31 Martin Baulig <martin@ximian.com>
15780 * threads.h (MonoThreadCallbacks): Added `thread_created'.
15782 * threads.c (mono_thread_new_init): Call `thread_created' in the
15783 mono_thread_callbacks.
15785 2003-03-31 Lluis Sanchez Gual <lluis@ideary.com>
15787 * loader.h: added marshalbyrefobject_class to mono_defaults
15788 * domain.c: added initialization of mono_defaults.marshalbyrefobject_class
15789 * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15790 generation of output parameters.
15791 ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15792 * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15793 contextbound and the target object belongs to the context of the caller.
15794 * object.h: added context and unwrapped_server variables in MonoRealProxy.
15795 * object.c: Implemented support for interfaces and abstract classes
15796 in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15797 proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15799 2003-03-30 Zoltan Varga <vargaz@freemail.hu>
15801 * class.h class.c (mono_class_is_subclass_of): New function.
15803 * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15804 routines for most common case (calls from ArrayList::ToArray).
15806 * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown
15807 routine so programs which call Environment::Exit() can be profiled.
15809 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15810 Added MONO_ARCH_SAVE_REGS.
15812 * icall.c (ves_icall_type_is_subtype_of): Use new function.
15814 2003-03-29 Miguel de Icaza <miguel@ximian.com>
15816 * blob.h: Add a couple of new MonoType types definitions.
15818 * tabledefs.h: Add a couple of new call convs.
15820 2003-03-27 Zoltan Varga <vargaz@freemail.h>
15822 * reflection.h (MonoReflectionDynamicAssembly): track changes in
15823 the layout of the class.
15825 * reflection.c (alloc_table): double the size on overflow to avoid
15826 unnecessary copying.
15828 * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15829 avoid filling out metadata tables and blobs. Also set mb->ilgen to
15830 null so it can be garbage collected.
15832 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
15834 * reflection.c (mono_reflection_get_type): Return the resolved type
15835 only if it is in the assembly we searched.
15837 * reflection.c (ensure_runtime_vtable): Initialize method slots.
15839 * class.c (mono_class_setup_vtable): Set the slot of the overriding
15842 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15845 (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15846 the right one is 'file:///blah', but MS allows it.
15848 (mono_assembly_open): allow 'file://blah'
15850 Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15852 2003-03-26 Aleksey Demakov <avd@openlinksw.com>
15854 * socket-io.c: fixes bug #40310.
15856 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
15858 * reflection.c (mono_reflection_parse_type): handle deeply nested
15861 * reflection.c (mono_image_create_token): Use unique token values
15862 since they will be put into a hash table.
15864 * class.c (mono_class_setup_vtable): If a method occurs in more than
15865 one place in the vtable, and it gets overriden, then change the
15866 other occurances too.
15868 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15869 object as return type.
15871 2003-03-22 Pedro Mart?nez Juli? <yoros@wanadoo.es>
15873 * icall.c: Deleted "ToString" implementation for double and float
15874 because they are full implemented in managed code.
15876 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15878 * reflection.c, reflection.h: implemented and exported functions
15879 to retrieve info about custom attributes.
15881 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15883 * appdomain.c: moved Uri handling to assembly.c
15884 * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15885 work when using a file Uri in *nix and windows.
15887 * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15888 GetReferencedAssemblies.
15890 2003-03-18 Dick Porter <dick@ximian.com>
15892 * icall.c: Rename a couple of internal calls
15894 * threads.c: Set the thread state to Stopped when a thread exits.
15897 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
15899 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15902 * object.c (mono_class_vtable): fix warning.
15904 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
15906 * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15908 * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15910 (method_encode_clauses): Create exception info structures in the right
15912 (mono_reflection_setup_internal_class): Initialize supertypes field.
15914 * class.c object.c: Handle interfaces which implement other interfaces
15917 * class.h class.c: Move the supertypes array initialization code into
15918 a separate function so it can be used for dynamic types too. Also call
15919 it earlier, in mono_class_init(), since it can be used before the
15920 type is initialized.
15922 2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15926 * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15931 * object.c: remove warnings.
15933 2003-03-13 Martin Baulig <martin@ximian.com>
15935 * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15936 (MonoDebugLexicalBlockEntry): New types.
15938 * debug-mono-symfile.c
15939 (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15941 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15943 * process.c: ret can be any non-zero value accroding to MS doc.
15945 2003-03-07 Miguel de Icaza <miguel@ximian.com>
15947 * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when
15948 fixing a warning for a miss-used prototype, would have cause
15949 random memory corruption.
15951 2003-03-07 Martin Baulig <martin@ximian.com>
15953 * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15954 getting really annoying ....
15956 2003-03-07 Zoltan Varga <vargaz@freemail.hu>
15958 * reflection.c (fixup_method): added support for array methods.
15960 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15962 * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined
15963 (pointed out by Michael Adams).
15965 2003-03-04 Dick Porter <dick@ximian.com>
15967 * icall.c: Temporarily reverted the Double and Single ToString()
15968 change, because it broke nunit.
15970 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15972 * object.h, threads.h: make include files compatible with C++
15973 (patch by Jerome Laban <jlaban@wanadoo.fr>).
15975 2003-03-04 Pedro Mart?nez Juli? <yoros@wanadoo.es>
15977 * icall.c: Erased ToString helper functions for Double and Single.
15978 Now, that implementations ar all in managed code (Double and Single
15981 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
15983 * appdomain.c: Added method for initializing the default context of
15984 a domain. Added internal call for getting the default context.
15985 * appdomain.h: Added context variable in MonoDomain struct.
15986 * domain.c: mono_domain_set also sets the default context of the domain
15987 * icall.c: Mapped internal method InternalGetDefaultContext.
15988 * object.c: mono_object_get_virtual_method returns always a remoting
15989 wrapper if the object is a transparent proxy.
15990 mono_runtime_invoke_array: when creating an object by calling the
15991 constructor, if the created object is a proxy, then the constructor should
15992 be called using the a remoting wrapper.
15994 2003-03-03 Dick Porter <dick@ximian.com>
15996 * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15997 variable so it compiles on solaris. Problem spotted by
15998 Christopher Taylor <ct@cs.clemson.edu>
16000 2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16003 (get_info_from_assembly_name): don't leak value.
16006 (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
16009 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
16011 * assembly.c: export mono_image_load_references ().
16012 * class.c: handle function pointers. mono_class_from_name() now
16013 supports nested type names directly.
16015 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
16017 * reflection.h reflection.c: Encode already created dynamic methods
16018 and fields correctly as a DEF instead of a REF.
16020 * reflection.c: Get rid of the force_ref argument to
16021 mono_image_typedef_or_ref since it was wrong in the first place.
16023 * string-icalls.c: add error checking to string constructors according
16026 * reflection.c: Emit types in the order their TypeBuilders were
16027 created. Previously, a new table index was assigned to each type before
16028 the tables were emitted. This was wrong because the signature blob
16029 might already refer to a type by its original table index.
16031 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
16033 * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
16036 2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16038 * Makefile.am: make assemblies dir have \ instead of / on windows.
16040 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
16042 * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
16043 iterate over the NESTEDCLASS table using a linear search since the
16044 table is not guaranteed to be sorted by the secondary key.
16046 * class.c (mono_class_create_from_typedef): fixed up call to
16047 mono_metadata_nesting_typedef.
16049 2003-02-27 Dietmar Maurer <dietmar@ximian.com>
16051 * marshal.c (mono_string_to_byvalstr): clear the memory as
16052 suggested by Jerome Laban <jlaban@wanadoo.fr>
16054 2003-02-26 Dick Porter <dick@ximian.com>
16056 * process.c: Cope with padding in .rsrc blocks
16058 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
16060 * metadata.h: reverted the filter_len change, it breaks reflection
16062 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
16064 * metadata.h: added a new field to store the filter_len
16067 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
16069 * reflection.c: handle custom attributes for types and members
16070 created with Reflection.Emit (bug#38422).
16072 2003-02-22 Zoltan Varga <vargaz@freemail.hu>
16074 * reflection.c: define RTSpecialName automatically for constructors for
16075 compatibility with MS.NET.
16077 * reflection.c (mono_reflection_create_runtime_class): initialize
16078 nested_in field of dynamically created classes.
16080 2003-02-22 Martin Baulig <martin@ximian.com>
16082 * debug-mono-symfile.h: Incremented version number.
16084 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
16086 * object.h icall.c process.c: fix warnings.
16088 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
16090 * appdomain.h appdomain.c:
16091 (mono_domain_try_type_resolve): split the
16092 name_or_tb argument into a name and a tb argument.
16093 (mono_domain_has_type_resolve): new function to check whenever the
16094 application has registered a TypeResolve event handler.
16096 * icall.c reflection.h reflection.c: move the type resolve logic into
16097 mono_reflection_get_type () so it will be invoked when
16098 Assembly::GetType () is called.
16101 (mono_reflection_get_type): renamed to get_type_internal.
16102 (mono_reflection_get_type): fixed type name generation so it works
16103 for nested types too.
16104 (mono_reflection_get_type): call has_type_resolve () to avoid the
16105 costly type name generation if there is no resolve event handler.
16107 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16109 * class.c, image.c: load exported types from file references.
16111 2003-02-19 Lluis Sanchez Gual <lluis@ideary.com>
16113 * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16114 used to cache the managed methods used to create proxies and make
16115 remote invocation of methods.
16116 * class.h: Added in MonoVTable a flag to indicate that a class needs
16117 to be remotely created.
16118 * object.c: Modified the method mono_class_vtable(). It now initializes
16119 the remote flag of the vtable. Modified mono_object_new_specific(),
16120 so now it checks the remote flag.
16121 * icall.c: Added a couple of internal methods, one for enabling instance
16122 creation interception for a type, and one for creating objects bypassing
16125 2003-02-18 Martin Baulig <martin@ximian.com>
16127 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16128 New interncall to get a method's metadata token.
16130 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16131 New interncall for the debugger.
16133 2003-02-18 Dietmar Maurer <dietmar@ximian.com>
16135 * class.c (mono_class_setup_vtable): allocate supertype array
16137 2003-02-18 Martin Baulig <martin@ximian.com>
16139 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16141 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16144 (assembly_name_to_aname): jump over unknown properties (i've found
16145 something like: 'type, assembly, version=xxx, custom=null, public...',
16146 so now will ignore custom=null and still get the rest of the values).
16148 2003-02-17 Dick Porter <dick@ximian.com>
16150 * threads.c: Have Thread.Start() wait for a semaphore to signal
16151 that the thread has set up all its local data. This fixes bug
16152 34323, where Abort() raced the new thread's TLS data.
16154 Also removes the handle_store() call from start_wrapper, because
16155 threads are now always created suspended and there is no longer a
16156 race between the parent and child threads to store the info.
16158 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16160 * image.c: explain the #- heap issue in a message, hopefully
16161 avoiding FAQs on mono-list.
16163 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16166 (GetEntryAssembly): if the domain has not invoked
16167 AppDomain.ExecuteAssembly yet, return the assembly of the default
16170 2003-02-16 Zoltan Varga <vargaz@freemail.hu>
16172 * class.c (mono_ldtoken): make it work in dynamic assemblies.
16174 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16176 * metadata.c, reflection.c: simple speedup to type hash
16179 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16181 * image.c, image.h, class.c, assembly.c: move module loading
16182 to MonoImage. When loading metadata, consider alignemnet from
16183 the start of metadata, not from the metadata address in memory.
16185 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
16187 * reflection.c (mono_reflection_get_custom_attrs): Added support for
16188 AssemblyBuilder objects. Factored out custom attribute creation into
16189 a separate function.
16190 (create_custom_attr): new function to create custom attributes.
16192 2003-02-12 Miguel de Icaza <miguel@ximian.com>
16194 * Makefile.am: Got tired of typing the full pathname to pedump.
16195 Until there is another option, am installing this.
16197 2003-02-12 Dietmar Maurer <dietmar@ximian.com>
16199 * class.c (class_compute_field_layout): always set field->parent
16200 (mono_ldtoken): use mono_defaults.fieldhandle_class;
16202 2003-02-11 Dick Porter <dick@ximian.com>
16205 * monitor.c: Rewrote Monitor, making lock much faster and
16206 Pulse/Wait work as specified. Also uses much fewer handles, and only
16207 creates them as needed.
16209 * exception.c: Added SynchronizationLockException
16211 * threads.c: Deleted old Monitor implementation. The new one is
16214 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16216 * class.c: handled TypedReference type code. Set the correct size for
16217 class data. Setup interface_offsets for interface classes, too.
16219 2003-02-09 Martin Baulig <martin@ximian.com>
16221 * debug-mono-symfile.h: Reflect latest symbol writer changes.
16223 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16225 * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16226 * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16227 * object.c: fixed mono_object_get_virtual_method () for interfaces.
16228 * verify.c: check for code that runs after the end of the method.
16230 2003-02-08 Pedro Mart?nez Juli? <yoros@wanadoo.es>
16232 * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16233 "System.Math::Round2".
16234 * sysmath.h: Added Floor, Round and Round2 definitions.
16235 * sysmath.c: Modified certain functions that were not 100% compliant
16236 with MS.NET (math precision) and added the implementation of Floor,
16239 2003-02-07 Martin Baulig <martin@ximian.com>
16241 * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16243 2003-02-07 Martin Baulig <martin@ximian.com>
16245 * debug-mono-symfile.c: Reflected latest symwriter changes.
16246 (mono_debug_create_mono_symbol_file): Removed.
16247 (mono_debug_open_mono_symbol_file): Take an argument which
16248 specifies whether to create a dynamic symbol file.
16250 2003-02-07 Dietmar Maurer <dietmar@ximian.com>
16252 * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16254 2003-02-05 Martin Baulig <martin@ximian.com>
16256 * reflection.c (mono_image_build_metadata): Make this public,
16257 protect it against being called multiple times, don't create
16258 resources and don't build the compressed metadata here.
16259 (mono_image_create_pefile): Do this here.
16262 ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16264 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16266 * socket-io.c: fixed bug #36322.
16268 2003-02-06 Piers Haken <piersh@friskit.com>
16272 * debug-mono-symfile.c:
16278 * socket-io.c: warning cleanups
16280 2003-02-06 Dietmar Maurer <dietmar@ximian.com>
16282 * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16283 function. works like remoting invoke, but does a check for the Proxy first.
16285 2003-02-05 Miguel de Icaza <miguel@ximian.com>
16287 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16289 2003-02-05 Dietmar Maurer <dietmar@ximian.com>
16291 * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16293 (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16294 (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16296 * object.c (mono_store_remote_field_new): used by the new jit
16297 instead of mono_store_remote_field
16298 (mono_load_remote_field_new): used by the new jit
16299 instead of mono_load_remote_field
16301 2003-02-05 Patrik Torstensson
16303 * appdomain.c: changed unload to take the domain id instead
16306 * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16309 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16311 * appdomain.c: don't look for assemblies in ApplicationBase if
16312 PrivateBinPathProbe is set.
16314 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16316 * object.c: make the first argument in main_args contain the absolute
16317 path to the assembly. Fixes bug #37511.
16319 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16321 * icall.c: get correct UTC offset for countries not using daylight
16322 time saving. Fixes bug #30030.
16324 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16326 * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16327 and 1 are the family).
16329 2003-02-04 Dietmar Maurer <dietmar@ximian.com>
16331 * icall.c (ves_icall_InternalExecute): removed wrong assertion
16333 * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16335 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
16337 * reflection.c: added support for SignatureHelper tokens, which is
16338 needed by the Calli opcode.
16340 * reflection.h: track changes to SignatureHelper class.
16342 * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16344 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16346 * appdomain.c: fixed loading assemblies from PrivateBinPath.
16348 2003-02-03 Patrik Torstensson
16349 * appdomain.[c|h], domain.c :
16350 - Added support for getting a domain via domain id
16351 - Support for setting and getting domain from System.AppDomain
16352 (used in cross appdomain channel)
16353 - Added support for get/set for a MonoAppContext on a thread
16354 (Context class in System.Runtime.Remoting.Contexts),
16355 - Removed hack in Get/SetData and ExecuteAssembly.
16357 * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16358 the managed world to get control when a proxy is created.
16360 * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16362 2003-02-03 Miguel de Icaza <miguel@ximian.com>
16365 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16366 Populate the codebase field as well.
16368 2003-02-02 Martin Baulig <martin@ximian.com>
16370 * debug-mono-symfile.c
16371 (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16372 (mono_debug_symfile_add_method): Allow interncalls.
16374 2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16376 * icall.c: throw parse exception if strtod fails or the string is empty.
16378 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16380 * marshal.c: handle object type separately from defined
16383 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16385 * marshal.c: handle NATIVE_LPSTR for strings when it's
16386 explicitly specified.
16388 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16390 * reflection.c, reflection.h, icall.c: setup the reflection
16391 handle cache for ModuleBuilders and AssemblyBuilders.
16393 2003-01-30 Dietmar Maurer <dietmar@ximian.com>
16395 * reflection.c (reflection_methodbuilder_to_mono_method): set
16398 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16400 * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16402 2003-01-29 Dick Porter <dick@ximian.com>
16404 * threads.c: No need for the fake_thread kludge now that Thread
16405 doesn't run a class constructor
16407 2003-01-29 Dick Porter <dick@ximian.com>
16409 * threads.c: Use g_direct_hash instead of the rather bogus
16412 2003-01-29 Dietmar Maurer <dietmar@ximian.com>
16414 * marshal.c (mono_marshal_get_native_wrapper): add check for null
16415 (fix pinvoke12.exe)
16416 (mono_marshal_get_struct_to_ptr): generate valid IL code
16417 (mono_marshal_get_ptr_to_struct): generate valid IL code
16418 (*): correctly set sig->pinvoke, we need to memdup the signature
16421 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16423 * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16424 to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16426 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16428 * profiler.c: provide more callers information.
16430 2003-01-28 Dietmar Maurer <dietmar@ximian.com>
16432 * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16434 * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16436 * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16438 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
16440 * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16441 exception instead of going into an infinite loop on dates which it
16444 * string-icalls.c (ves_icall_System_String_get_Chars): raise
16445 out-of-range exception if needed.
16447 * class.c (mono_class_setup_vtable): allow a virtual method to provide
16448 an implementation for an interface method and to override an inherited
16449 method at the same time.
16450 Imagine a scenario when a virtual method is used to override a
16451 virtual abstract method in a parent class, and this same method
16452 provides an implementation for an method inherited from an interface.
16453 In this case, the interface resolution code will set im->slot, which
16454 means that the virtual method override pass will skip this method
16455 which means a pointer to the abstract method inherited from the parent
16456 will remain in the vtable of this non-abstract class.
16458 * class.c: (mono_class_setup_vtable): continue search for a real
16459 method if only an abstract method is found.
16461 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16463 * reflection.c: add size to encoding for ByValStr and ByValArray
16464 marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16466 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
16468 * class.c (mono_class_setup_vtable): pass the override info as an
16471 * class.c (mono_class_setup_vtable): set the slot of overriding methods
16474 * reflection.c (ensure_runtime_vtable); add support for method
16477 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
16479 * reflection.c (resolution_scope_from_image): Hack to work to work with
16480 dynamic assemblies.
16482 * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and
16483 added a 'force_ref' argument to force this function to allways return
16484 a TypeRef. This is needed by mono_image_get_memberref_token ().
16486 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
16488 * reflection.c (mono_image_get_type_info): interfaces really don't have
16491 * reflection.c (mono_image_basic_init): fill out missing fields of
16494 * reflection.c (mono_image_basic_init): Invoke assembly load hooks for
16495 dynamic assemblies. This is required so dynamic assemblies show up in
16496 AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16497 Type::GetType() etc. This is consistent with MS behaviour.
16499 * image.c image.h reflection.c: add newly created classes to the name
16500 cache so mono_class_get () will find them.
16502 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
16504 First part of changes to get IKVM.NET running under mono.
16506 * appdomain.h, appdomain.c: added new function
16507 mono_domain_try_type_resolve() which will emit TypeResolve events.
16508 This function will call AppDomain::DoTypeResolve to do the actual work.
16510 * class.h, class.c, loader.c, object.c, reflection.h, reflection.c:
16511 moved existing code dealing with dynamic tokens to a new function
16512 called mono_reflection_lookup_dynamic_token (). This function will
16513 raise TypeResolve events when appropriate. Since reflection.c is not
16514 part of libmetadata, a new hook function called
16515 mono_lookup_dynamic_token() is added to class.c which will call this.
16517 * assembly.h assembly.c: make the invoke_load_hook function public,
16518 so it can be called for dynamic assemblies.
16520 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16522 * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the
16525 * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a
16526 MonoGHashTable, since it contains pointers to objects which the GC
16529 * assembly.c (search_loaded): remove unused variable.
16531 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16533 * object.c: fixed issue exposed by gcc-generated IL programs
16534 that use RVA data for pointers.
16536 2003-01-25 Martin Baulig <martin@ximian.com>
16538 * threads.c (start_wrapper): Moved the initialization of
16539 `start_func' above the mono_new_thread_init() call to which we
16540 pass it as argument.
16542 2003-01-24 Martin Baulig <martin@ximian.com>
16544 * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16545 the MonoThread pointer.
16547 2003-01-21 Miguel de Icaza <miguel@ximian.com>
16549 * icall.c: Rename `PowImpl' to Pow.
16551 2003-01-23 Dick Porter <dick@ximian.com>
16553 * threads.c (start_wrapper): Create a Thread object if needed, so
16554 the Main() thread can do the class initialisation in a subthread
16555 that has been set up to allow managed code execution.
16557 Pass the thread ID instead of the MonoThread pointer to the thread
16558 start and attach callbacks. This change is required, because the
16559 jit thread start callback must be called _before_ the Thread
16560 object can be created.
16562 (mono_thread_init): Removed much object creation code that is no
16563 longer needed. No managed code is called from here now.
16565 * object.c (mono_runtime_exec_managed_code): Create a subthread
16566 for Main, and call back to the runtime to use it.
16567 Set the exit code when Main exits.
16569 * gc.c: Make sure domain finalisation happens in a subthread.
16570 Re-enable threaded GC, fixing bug 31333 (again).
16572 * environment.c: System.Environment internall calls (so far just
16573 ExitCode is here, the others are still in icall.c)
16575 * appdomain.c (mono_runtime_cleanup): All threads running managed
16576 code should have finished before mono_runtime_cleanup() is
16577 reached, so no need to clean up threads.
16579 2003-01-22 Martin Baulig <martin@ximian.com>
16581 * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16582 `gpointer func' arguments.
16583 (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16584 but added `MonoThread *thread' argument.
16585 (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16587 * threads.c (mono_new_thread_init): Added `gpointer func' argument
16588 and pass it to the mono_thread_start_cb callback.
16589 (mono_install_thread_callbacks): New public function to install a
16590 set of callbacks which are set by the debugger.
16591 (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16593 2003-01-22 Martin Baulig <martin@ximian.com>
16595 * Makefile.am: Install debug-mono-symfile.h.
16597 2003-01-21 Aleksey Demakov <avd@openlinksw.com>
16599 * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16601 2003-01-21 Dietmar Maurer <dietmar@ximian.com>
16603 * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16604 * class.c (mono_ptr_class_get): correctly set access levels of pointers
16605 (mono_array_class_get): correctly set access levels of arrays
16607 2003-01-20 Patrik Torstensson
16608 * image.h (MonoAssemblyName): changed major, minor, build, revision
16609 from signed to unsigned.
16611 2003-01-20 sean kasun <skasun@azstarnet.com>
16613 * reflection.c (load_cattr_value): Now this handles
16614 MONO_TYPE_SZARRAY. Fixes bug #35629
16616 2003-01-20 Miguel de Icaza <miguel@ximian.com>
16618 * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16621 2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16623 * decimal.c: fixed bug #26056.
16625 2003-01-17 Martin Baulig <martin@ximian.com>
16627 * gc.c: Raise an ExecutionEngineException instead of using g_error().
16629 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16632 (mono_get_exception_type_initialization): new function.
16634 * object.c: throw a TypeInitializationException when an exception is
16635 thrown invoking the class constructor.
16637 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16639 * reflection.c: fixed attribute reading.
16641 2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16644 (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16645 provided, look for the type in the calling assembly and then in
16646 mscorlib; if the assembly name is provided, only try that one.
16648 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16650 * object.c: register the vtable before there is a chance it's
16651 queried again recursively.
16653 2003-01-13 Duncan Mak <duncan@ximian.com>
16655 * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16658 2003-01-12 Patrik Torstensson <totte@race-x-change.com>
16660 * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16662 2003-01-11 Martin Baulig <martin@ximian.com>
16664 * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16665 this to 20 for the release.
16667 2003-01-10 Dietmar Maurer <dietmar@ximian.com>
16669 * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16671 * loader.c (mono_method_get_marshal_info): bug fix
16673 * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16674 structures with explicit layout
16676 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16678 * profiler.c: made the output more readable (and sorted).
16679 Added caller information for the allocation profiler.
16681 2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
16683 * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16685 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16687 * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16688 to get value types.
16690 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16692 * object.c, profiler.h, profiler.c, profiler-private.h:
16693 Added object allocation profiler.
16695 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16697 * reflection.h, reflection.c: handle global methods.
16698 Compress blob entries.
16700 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16702 * marshal.c: fix compilation.
16704 2003-01-09 Dietmar Maurer <dietmar@ximian.com>
16706 * loader.c (mono_method_get_marshal_info): impl.
16708 * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16710 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16712 * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16713 for reference types.
16715 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16717 * loader.c: fixed off by one error in loaded parameter names.
16719 2003-01-08 Dietmar Maurer <dietmar@ximian.com>
16721 * marshal.c (mono_marshal_get_icall_wrapper): like
16722 mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16723 instead of a MonoMethod.
16725 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16727 * decimal.c: fixed bug #36537.
16729 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16731 * marshal.c: throw a missing method exception if a
16732 P/Invoke method is not found.
16734 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16736 * icall.c: allow a null this for constructors.
16738 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16740 * icall.c: raise the proper exceptions if the arguments to the
16741 internal Invoke are incorrect.
16743 2003-01-03 Dietmar Maurer <dietmar@ximian.com>
16745 * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16747 2003-01-03 Martin Baulig <martin@ximian.com>
16749 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16751 2002-12-31 Martin Baulig <martin@ximian.com>
16753 * debug-mono-symfile.c: Completely rewrote the type section.
16754 Instead of using individual malloc()ed fields, we use one big
16755 continuous memory area and offsets into this area.
16756 See the comments in the source code for details.
16758 2002-12-30 Martin Baulig <martin@ximian.com>
16760 * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16762 2002-12-30 Martin Baulig <martin@ximian.com>
16764 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16765 line number table in this data blob instead of using an external
16768 2002-12-28 Martin Baulig <martin@ximian.com>
16770 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16772 2002-12-22 Rachel Hestilow <hestilow@ximian.com>
16774 * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16775 as a boxed return type.
16777 2002-12-21 Miguel de Icaza <miguel@ximian.com>
16780 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16781 g_build_filename to properly get separators on the filename created.
16783 * object.h: Small change, introduce MonoMarshalByRefObject to
16784 track the layout of that structure in the C# universe as we make
16787 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16789 * object.c: removed assert to allow static fields on interfaces.
16790 * loader.c: a TypeSpec may be used for any type, not just arrays.
16792 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16794 * class.c, class.h: added mono_class_array_element_size ().
16795 Ignore static methods in interfaces.
16797 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16799 * threads.c: fixed the build under cygwin.
16801 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16803 * reflection.c: handle nullref constants. Allocate keys for
16804 reflection handles with the GC.
16806 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16808 * threads.c, threads.h: added mono_thread_get_abort_signal()
16809 to get a suitable signal for thread abort.
16811 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16813 * metadata.c: fix handling of ExportedType table.
16815 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16817 * icall.c: added WriteWindowsDebugString internal call.
16819 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16821 * reflection.h: added fields to match C# implementation.
16823 2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16825 * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16827 2002-12-12 Juli Mallett <jmallett@FreeBSD.org>
16829 * gc.h, gc-internal.h: Rename header for GC internal calls to
16830 gc-internal.h from gc.h as to not clash with Boehm GC having its
16831 header installed as <gc.h> in outside include paths.
16832 * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16833 * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16835 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16837 * icall.c: assign minor, build and revision in FillName.
16839 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
16841 * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16842 Added support for running code generated by Reflection.Emit.
16844 2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16846 * appdomain.c: check for NULL argument in LoadFrom.
16848 2002-12-10 Dick Porter <dick@ximian.com>
16850 * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16852 2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16854 * appdomain.c: fix buglet when building exe file name. Handle full
16855 assembly name (needed after latest changes to AssemblyName).
16857 (mono_image_close): free some hashtables.
16859 2002-12-05 Dietmar Maurer <dietmar@ximian.com>
16861 * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN
16862 instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation
16863 on some systems (redhat 7.3)
16865 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16867 * threads.c: delete the critical section of a sync block,
16868 spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16870 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16872 * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16874 2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16876 * appdomain.[ch]: handle the assembly preload event to try loading the
16877 assemblies using the paths we have in the current domain.
16879 * assembly.[ch]: created an assembly preload hook that is called to try
16880 loading the assembly by other means that the ones provided here.
16882 * domain.c: initialize the domain search path.
16884 From now on, assemblies (TODO: except corlib and System) are loaded
16885 according to these rules when using mono_assembly_load ():
16887 1. It tries to load the assembly from the ApplicationBase
16888 of the current domain appending .dll and .exe (TODO: have to
16889 try loading from name/name.dll and name/name.exe).
16891 2. It tries the search path specified in PrivateBinPath for the
16892 current domain (if any).
16894 3. Previous behavior.
16896 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16898 * icall.c: implemented GetInterfaceMap() related icall.
16899 * domain.c, loader.h: load MethodInfo in mono_defaults.
16901 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16903 * gc.c: disable the finalizer thread for now, untill all the issues
16904 with it are resolved.
16906 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16908 * string-icalls.c: handle embedded nulls in string ctor when the
16909 length is specified.
16911 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16913 * class.c: look for explicit interface implementation in parent
16916 2002-12-03 Dietmar Maurer <dietmar@ximian.com>
16918 * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3)
16920 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16922 * gc.c: protect handles with a critical section.
16924 2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16927 (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16928 parameters. If no assembly specified, try getting the type from all
16929 the assemblies in the current domain, else, load the assembly and get
16932 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16934 * marshal.c: applied patch from Aleksey Demakov that fixes
16935 ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16937 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16939 * icall.c: fixed get_location.
16941 2002-11-28 Dietmar Maurer <dietmar@ximian.com>
16943 * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16944 declarations to make it work with older gcc.
16946 * loader.c (mono_get_method): set signature->pinvoke for native calls
16948 2002-11-20 Dick Porter <dick@ximian.com>
16950 * threads.c (mono_thread_init): Set the main thread's handle
16952 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16954 * gc.c: allow compilation without GC support. Changed to match the
16957 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16959 * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16961 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16963 * reflection.c: set a public key token on the core assemblies.
16965 2002-11-18 Dick Porter <dick@ximian.com>
16967 * threads.c: Split out some thread initialisation so that other
16968 files can set the start callback function.
16970 * gc.c: Run finalisers in a separate thread, to avoid stack
16971 overflow. Fixes bug 31333.
16973 * appdomain.c: Set up GC finalisation thread.
16977 * domain.c: Use gc.h macros for GC_malloc
16979 2002-11-15 Dick Porter <dick@ximian.com>
16983 * appdomain.c: Removed mono_runtime_init_with_attach(),
16984 mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16985 merging the extra parameter with the existing function. Removed
16986 unneeded code in mono_thread_attach().
16988 2002-11-14 Dietmar Maurer <dietmar@ximian.com>
16990 * image.c (mono_image_loaded_by_guid): a method to get loaded
16992 (load_metadata_ptrs): we store the guid as string.
16994 2002-11-11 Dietmar Maurer <dietmar@ximian.com>
16996 * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16998 * metadata.c (mono_guid_to_string): imported method form Zoltan
16999 Varga (slightly modified)
17001 * assembly.c (mono_assembly_open): load precompiled code
17003 * loader.h (MonoMethod): we store the method token for use in the
17006 2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17008 * appdomain.c: insert the loaded assemblies in the domain->assemblies in
17009 the hook function called when an assembly is loaded.
17011 * domain.c: Modified file.
17012 (mono_domain_assembly_load): removed hash table insertion of assemblies.
17016 2002-11-07 Miguel de Icaza <miguel@ximian.com>
17018 * reflection.c: Map PEFileKind to the value expected by the WinNT
17021 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17023 * rand.c: use /dev/urandom. If it fails to open, use the previous one.
17024 Read until the buffer is filled completely.
17026 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17028 * icall.c: implemented MonoType.InternalGetEvent ().
17030 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17032 * appdomain.c: implemented InitAppDomainSetup. Delayed
17033 AppDomain.SetupInformation until mono_runtime_exec_main, where we get
17034 the entry_assembly.
17036 * assembly.c: base_dir is now an absolute path ending with
17039 * icall.c: modified get_location according to the above changes.
17041 * object.c: init AppDomain.SetupInformation for the default domain after
17042 we have the entry assembly.
17044 * domain.c: when unloading a domain, setup = NULL.
17046 2002-11-04 Dietmar Maurer <dietmar@ximian.com>
17048 * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
17050 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
17052 * object.h, object.c: introduced mono_object_get_virtual_method ()
17053 to lookup the method invoked on an object when a callvirt is done on
17055 * icall.c: make MethodInfo::Invoke() always do a virtual call.
17057 2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17059 * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
17060 current domain when loaded an assembly and failed to load it.
17062 * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
17064 2002-10-31 Dick Porter <dick@ximian.com>
17068 * file-io.c: Return the error status in a parameter, as the
17069 GetLastError() value has long since been blown away if we try and
17070 look it up in a subsequent internal call invocation. Delete the
17071 GetLastError() internal call, because it's useless.
17073 2002-10-31 Dietmar Maurer <dietmar@ximian.com>
17075 * class.[ch]: added cast_class to fix bug 29517
17077 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
17079 * marshal.c: create valid IL code in the filter clause:
17080 the new JIT is less forgiving:-)
17082 2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17084 * icall.c: removed get_property internal call.
17086 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
17088 * appdomain.h domain.c: Added an ID to appdomains.
17090 * threads.c threads.h icall.c: Implement icall
17091 Thread:GetDomainID(), and remove unused icall
17092 CurrentThreadDomain_internal.
17094 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17096 * icall.c: Don't recurse through the base types in GetConstructor.
17099 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17101 * mempool.h, mempool.c: added mono_mempool_empty() and
17102 mono_mempool_stats().
17104 2002-10-23 Dick Porter <dick@ximian.com>
17108 * icall.c: Added MonoIO.GetFileType internal call
17110 2002-10-17 Dick Porter <dick@ximian.com>
17112 * appdomain.c (mono_runtime_cleanup): Don't signal the async
17113 delegate semaphore before waiting for all threads to finish,
17114 because new threads can also call async delegates. Fixes bug
17117 * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17118 of 3 seconds, in case another async job is queued. (This part is
17119 needed because the bug fix reintroduced the 3s exit lag.) This
17120 makes the mono_runtime_shutdown flag superfluous.
17122 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17124 * reflection.c: include ehader size in method section headers.
17125 Really check for suplicated modules entries.
17127 2002-10-17 Martin Baulig <martin@gnome.org>
17129 * debug-mono-symfile.c: Added back support for locals.
17131 2002-10-14 Martin Baulig <martin@gnome.org>
17133 * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17136 2002-10-14 Martin Baulig <martin@gnome.org>
17138 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17139 mono_class_get() instead of looking in the class cache.
17141 2002-10-13 Martin Baulig <martin@gnome.org>
17143 * debug-mono-symfile.c: Set version number to 28, include the
17144 signature in method names.
17146 2002-10-13 Martin Baulig <martin@gnome.org>
17148 * debug-mono-symfile.h: Set version number to 27.
17150 2002-10-11 Martin Baulig <martin@gnome.org>
17152 * gc.c: Don't register/unregister NULL pointers as disappearing links.
17154 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17156 * metadata.c, metadata.h: added helper function to allocate signatures.
17158 2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17160 * icall.c: added internal call to get the location of machine.config.
17162 2002-10-08 Martin Baulig <martin@gnome.org>
17164 * debug-mono-symfile.c: Ignore classes with a pending init for the
17167 2002-10-03 Dick Porter <dick@ximian.com>
17169 * threads.c: Freebsd pthread_t is a pointer
17171 2002-10-03 Dick Porter <dick@ximian.com>
17173 * socket-io.c: Implemented GetHostName_internal
17175 2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17178 (mono_config_parse_file): don't leak the text.
17180 2002-10-02 Martin Baulig <martin@gnome.org>
17182 * debug-mono-symfile.c: Added support for methods.
17184 2002-10-01 Martin Baulig <martin@gnome.org>
17186 * debug-mono-symfile.c: Don't emit methods and line numbers for
17187 the dynamic symbol file, just write the type table. We can easily
17188 have an external helper program which creates a symbol file for an
17191 2002-10-01 Dick Porter <dick@ximian.com>
17193 * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17194 Only add the handle to the cleanup array when we're about to
17195 launch the thread. Bug 31425 deadlocked when the test was run on
17198 2002-10-01 Martin Baulig <martin@gnome.org>
17200 * debug-mono-symfile.c: Added support for properties.
17202 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17204 * reflection.c: unaligned store fix from Mark Crichton
17205 <crichton@gimp.org>.
17207 2002-09-27 Martin Baulig <martin@gnome.org>
17209 * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17212 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17214 * assembly.h, assembly.c: use a sane API to hook into the assembly
17215 loading process instead of a useless special-purpouse hack
17216 (ngen needs a hook, too, for example).
17218 2002-09-27 Dick Porter <dick@ximian.com>
17220 * threads.c (mono_thread_init): Call GetCurrentProcess() so
17221 io-layer can set up some process handle info. Not needed on w32,
17222 but doesn't hurt either.
17224 * process.c: Pass the program name in the second parameter to
17225 CreateProcess, so the path is searched. Include the working
17226 directory. Implemented process name, process enumeration, and some
17227 process detail internal calls.
17229 * icall.c: Added internal calls for process lookup, and some
17232 2002-09-26 Martin Baulig <martin@gnome.org>
17234 * assembly.c (mono_install_open_assembly_hook): New global
17235 function to install a function to be invoked each time a new
17236 assembly is loaded.
17237 (mono_assembly_open): Run this callback function if set.
17239 * debug-mono-symfile.c: Put back line numbers for the dynamic
17240 symbol file and also record the .il file as source file. This
17241 allows us to install the temporary symbol file as `file.dbg' just
17242 like a compiler-generated one.
17244 2002-09-26 Nick Zigarovich <nick@chemlab.org>
17246 * Corrected typo in gc.c (BOHEM vs BOEHM).
17248 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17250 * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17251 GetProperties. Also avoid calling g_slist_length in GetProperties and
17254 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17256 * reflection.c: avoid unaligned stores (bug spotted by
17257 Mark Crichton <crichton@gimp.org>).
17259 2002-09-25 Martin Baulig <martin@gnome.org>
17261 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17262 instead of guint64 for addresses and added prologue/epilogue info.
17264 2002-09-25 Martin Baulig <martin@gnome.org>
17266 * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17267 store line number info. For the dynamic symbol file, we only need
17268 to provide the JIT generated dynamic line number info for the dynamic
17271 2002-09-25 Martin Baulig <martin@gnome.org>
17273 * debug-mono-symfile.h: Incremented version number.
17275 2002-09-24 Martin Baulig <martin@gnome.org>
17277 * class.c (mono_debugger_class_init_func): New global function
17279 (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17282 * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17283 function. This is called via the mono_debugger_class_init_func
17284 hook to add all types to the dynamic type table.
17285 (ves_icall_MonoDebugger_GetType): New interncall to get a class
17286 from its metadata token.
17288 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17289 New interncall for the debugger.
17291 2002-09-24 Nick Drochak <ndrochak@gol.com>
17293 * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17294 before using it in case it is null.
17296 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17298 * metadata.c: allow custom modifiers in local var signatures
17299 (bug spotted by Zoltan Varga).
17301 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17303 * class.c: deal with the <Module> class that may have a NULL vtable.
17304 Eliminate warnings.
17306 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17308 * image.c, image.h: more strong name helpers.
17309 * monosn.c: more work: convert pem keys to cryptoapi format.
17311 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17313 * string-icalls.c: speedup IndexOf.
17315 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17317 * icall.c: updates from Zoltan.2.Varga@nokia.com.
17319 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17321 * icall.c: cleanup: use mono_object_domain ().
17323 2002-09-23 Martin Baulig <martin@gnome.org>
17325 * debug-mono-symfile.c: Improved type support.
17327 2002-09-22 Martin Baulig <martin@gnome.org>
17329 * debug-mono-symfile.c: Added support for reference types and strings.
17331 2002-09-22 Martin Baulig <martin@gnome.org>
17333 * debug-mono-symfile.c: Started to work on the type table.
17335 2002-09-21 Martin Baulig <martin@gnome.org>
17337 * debug-mono-symfile.c: Largely reworked the symbol table format.
17338 The symbol table is now incrementally updated each time a new
17339 method is added. We're now also using our own magic and version
17340 so that you don't need to recompile all your classes if the
17341 dynamic table changes.
17342 (mono_debug_update_mono_symbol_file): Removed.
17343 (mono_debug_symfile_add_method): New function to add a method.
17345 2002-09-21 Martin Baulig <martin@gnome.org>
17348 ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17351 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17352 New interncall to get a method from its metadata token.
17354 2002-09-21 Martin Baulig <martin@gnome.org>
17356 * debug-mono-symfile.c: Create type table.
17358 2002-09-20 Martin Baulig <martin@gnome.org>
17360 * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17362 2002-09-20 Martin Baulig <martin@gnome.org>
17364 * debug-mono-symfile.c: Provide information about params and locals.
17366 2002-09-20 Martin Baulig <martin@gnome.org>
17368 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17371 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17372 interncall to get a method from its metadata token.
17374 2002-09-20 Martin Baulig <martin@gnome.org>
17376 * debug-mono-symfile.c: Added a few checks for method->header
17377 being non-NULL. This should never happen, but for the moment
17378 let's use a g_warning() rather than a g_assert().
17380 2002-09-19 Mark Crichton <crichton@gimp.org>
17382 * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17383 even if support for it isn't present. Added an #ifdef to fix this.
17385 * socket-io.c: Added checks back for Solaris support.
17387 2002-09-19 Martin Baulig <martin@gnome.org>
17389 * debug-mono-symfile.c (read_string, write_string): Reflect latest
17390 changes in the symbol file format.
17392 2002-09-18 Martin Baulig <martin@gnome.org>
17394 * debug-mono-symfile.c: Set version number to 21.
17396 2002-09-18 Dick Porter <dick@ximian.com>
17398 * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17399 on netbsd. Fixes bug 30051.
17401 2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17404 (set_version_from_string): little fix.
17406 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17408 * monosn.c, Makefile.am: added strong name utility.
17409 * reflection.h, reflection.c: implemented delayed signing,
17410 locale, version and hash id assembly attributes.
17412 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17414 * loader.c, metadata.c: load param attributes in signatures.
17416 2002-09-16 Martin Baulig <martin@gnome.org>
17418 * debug-mono-symfile.c: Added string table with all method names.
17420 2002-09-14 Martin Baulig <martin@gnome.org>
17422 * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17423 fast method lookup.
17425 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17427 * reflection.c: record the public key token of referenced assemblies.
17429 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17431 * image.c, image.h: added functions to get the strong name and the
17432 public key of an assembly.
17433 * pedump.c: use them.
17435 2002-09-12 Dietmar Maurer <dietmar@ximian.com>
17437 * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17439 2002-09-12 Miguel de Icaza <miguel@ximian.com>
17441 * marshal.c (mono_marshal_get_managed_wrapper): Added
17444 2002-09-11 Martin Baulig <martin@gnome.org>
17446 * gc.c: Call GC_unregister_disappearing_link() on all links when
17447 finalizing them, this is necessary to aviod a crash in boehm's
17450 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17452 * gc.c: handle GetTarget for finalized objects spotted and fixed by
17455 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17457 * icall.c: implemented MonoType::Module.
17458 * reflection.c, reflection.h: mono_module_get_object () from
17459 Tomi Pakarinen <tomi.pakarinen@welho.com>.
17461 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17463 * icall.c: ignore overridden methods in GetMethods ().
17464 Fix for FieldInfo::SetValue().
17465 * object.c: handle float/double in runtime invoke.
17467 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17469 * object.c: allow a constructor to be called again on an object.
17471 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17473 * class.h, class.c: move field layout code to it's own function and
17474 export it. Get an interface id earlier. Move fields in MonoClass
17475 so they are more cache friendly and align the bitfields.
17476 * loader.c: temporary handle get_param_names() for a runtime method.
17477 * reflection.c, reflection.h: more code to handle runtime creation of
17480 2002-09-09 Martin Baulig <martin@gnome.org>
17482 * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17483 signature with the pinvoke field being set for the actual call.
17485 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17487 * icall.c: removed some unused icalls. Start of map of glib charsets
17488 to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17490 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17492 * debug-helpers.c: break infinite loop (found and fixed by
17493 Holger Arnold <harnold@gmx.de>).
17495 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17497 * icall.c: target may be null in create_delegate.
17499 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17501 * marshal.c: handle a boolean return type.
17503 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17505 * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17507 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17509 * gc.c: fix weakreferences.
17511 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17513 * icall.c: added icall to get default codepage.
17515 2002-09-03 Dick Porter <dick@ximian.com>
17518 * threads.c: Use MonoThread instead of MonoObject where
17521 Store running thread objects in a hash table, so that we have all
17522 the info to hand when waiting for them to finish
17523 (means we don't need OpenThread() any more, so mingw builds should
17524 be fully functional again.)
17527 * object.h: Added thread ID to MonoThread
17529 2002-09-03 Martin Baulig <martin@gnome.org>
17531 * icall.c (System.Reflection.Assembly::get_location): New interncall.
17533 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17535 * icall.c: fixed leak in get_temp_path. Thanks lupus.
17537 2002-09-03 Martin Baulig <martin@gnome.org>
17539 * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17540 argument to store the end address of the disassembled instruction.
17542 * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17543 here from debug-symfile.h.
17544 (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17545 JIT into this struct.
17546 (MonoSymbolFile): Added `char *image_file' field.
17547 (MonoDebugGetMethodFunc): Removed.
17548 (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17549 (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17550 (mono_debug_find_method): New method.
17552 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17553 create a full symbol file.
17554 (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17555 and static symbol files.
17556 (mono_debug_find_method): The symbol file keeps an internal method hash,
17557 call this to get a MonoDebugMethodInfo from a MonoMethod.
17559 * debug-symfile.[ch]: Removed.
17561 2002-08-29 Miguel de Icaza <miguel@ximian.com>
17563 * image.c (do_mono_image_open): Remove linker version check.
17565 2002-08-29 Dietmar Maurer <dietmar@ximian.com>
17567 * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17568 wrappers for instance methods.
17570 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17572 * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17574 2002-08-28 Dick Porter <dick@ximian.com>
17576 * Makefile.am: Export HOST_CC for w32 builds
17578 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17580 * file-io.c process.c: MonoString are null terminated, no
17581 need for mono_string_to_utf16() anymore.
17583 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17585 * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17587 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17589 * icall.c, reflection.h: speedup System.MonoType.
17591 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17593 * reflection.c: allow null as the value of a string argument in
17594 custom attributes constructors.
17596 2002-08-27 Martin Baulig <martin@gnome.org>
17598 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17599 `trampoline_address' field.
17601 2002-08-27 Dietmar Maurer <dietmar@ximian.com>
17603 * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17604 check (fixes bug #29486)
17606 2002-08-27 Martin Baulig <martin@gnome.org>
17608 * debug-mono-symfile.c: Changed the file format in a way that allows us
17609 open it read-only and to use a specially malloced area for all the
17610 dynamic data. We can now also generate a symbol file on-the-fly if we're
17611 debugging IL code and there is no MCS generated symbol file for it.
17613 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17615 * object.c: added a define for a good string and array
17616 creation speedup (not enabled by default because we need to deal with
17619 2002-08-26 Martin Baulig <martin@gnome.org>
17621 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17622 function to create a dynamic symbol file. This is used by the
17623 debugger to create a symbol file for IL code on-the-fly.
17625 2002-08-26 Martin Baulig <martin@gnome.org>
17627 * loader.c (mono_lookup_pinvoke_call): Include the error message
17628 from g_module_error() in the error message.
17630 2002-08-24 Martin Baulig <martin@gnome.org>
17632 * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17633 function to update the symbol file. The symbol file is mmap()ed
17634 writable, but private. This allows us to install the symbol file
17635 together with the assembly.
17637 2002-08-24 Martin Baulig <martin@gnome.org>
17639 * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch]
17640 but they can read the new symbol file format which mcs is now creating.
17642 * debug-symfile.c (mono_debug_find_source_location): Moved to
17643 debug-mono-symfile.c; this is now operating on the new symbol file.
17645 2002-08-23 Martin Baulig <martin@gnome.org>
17647 * debug-helpers.c (mono_method_desc_from_method): New function to get
17648 a MonoMethodDesc from a MonoMethod.
17650 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17652 * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17653 calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17655 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17657 * string-icalls.[ch]: make helper methods static.
17659 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17661 * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17662 types to it and to SetValueInternal.
17664 * object.c: Moved handle_enum label to its proper place. This was the
17667 This time i compiled mcs and gtk-sharp and they both work.
17669 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17671 * icall.c: reverted partially my previous patch until
17672 object.c:set_value handles enums correcly.
17674 2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17677 (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17678 (ves_icall_System_Environment_get_MachineName): removed warning when
17679 compiling under cygwin.
17681 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17683 * object.c: fixed field_get_value() for reference types.
17685 2002-08-22 Dick Porter <dick@ximian.com>
17687 * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17688 Don't free a buffer while it's still needed. Patch from Jonathan
17689 Liger <Jonathan.liger@wanadoo.fr>
17691 2002-08-21 Miguel de Icaza <miguel@ximian.com>
17693 * icall.c (ves_icall_System_Environment_get_Platform): Add new
17696 2002-08-21 Dietmar Maurer <dietmar@ximian.com>
17698 * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17699 (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17701 * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17702 we call unmanaged code which throws exceptions.
17704 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17706 * appdomain.h: added per-domain entry_assembly.
17707 * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17709 * icall.c: Assembly::GetEntryAssembly icall.
17710 * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17711 Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17713 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17715 * appdomain.h, gc.c: added mono_domain_finalize ().
17717 2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17720 (mono_print_unhandled_exception): changed g_warning by g_printerr
17721 because g_log has a 1024 characters limit (yeah, i got a big stack
17722 trace). Don't print exception name, that should be in ToString
17725 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17727 * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17728 * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17730 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17733 (mono_print_unhandled_exception): after previous commit, i realized
17734 that MS calls ToString on the exception. I changed this function to
17735 do that. This way we get stack_trace for free.
17737 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17740 (mono_print_unhandled_exception): invoke Message property instead of
17741 getting 'message' field from Exception. Don't allocate memory for
17742 'trace' and 'message' if not needed.
17744 2002-08-18 Dick Porter <dick@ximian.com>
17746 * unicode.c: Fix asserts to match Encoder.cs checks
17748 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17750 * marshal.c: fix unaligned store issue and a few wrong
17751 opcode argument types.
17753 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17755 * icall.c: added GetUninitializedObjectInternal internal call.
17757 2002-08-16 Dietmar Maurer <dietmar@ximian.com>
17759 * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17760 to the right domain.
17762 2002-08-14 Dietmar Maurer <dietmar@ximian.com>
17764 * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17766 * class.c (class_compute_field_layout): set blittable to false for Strings
17768 * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17770 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17772 * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17773 first chunk of code to create types at runtime. Code to
17774 handle ReflectedType/DeclaringType. Make reflection handles
17777 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17779 * class.c: set correct name in arrays.
17781 2002-08-13 Dietmar Maurer <dietmar@ximian.com>
17783 * appdomain.c (mono_domain_transfer_object): make it work with
17784 valuetypes. bug fixes.
17786 2002-08-12 Dick Porter <dick@ximian.com>
17788 * object.h: Rename some parameters to avoid c++ keywords (Patch
17789 from Joseph Wenninger <kde@jowenn.at>)
17791 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17793 * icall.c: added icall to implement Assembly.GetFile*.
17795 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17797 * reflection.h, reflection.c: code to embed managed resources.
17799 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17801 * class.c: move all the type size stuff into
17802 class_compute_field_layout().
17804 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17806 * class.c: ensure enums have always the correct instance size.
17807 * unicode.c: remove wrong assert.
17809 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17811 * assembly.c: fix mem corruption issue.
17812 * image.h, image.c: added mono_image_get_resource () to access
17814 * icall.c: implemented Assembly.EntryPoint property and some
17815 Managed Resources related internalcalls.
17818 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17820 * image.c, image.h: impemented mono_image_get_entry_point ().
17821 * appdomain.c: use mono_image_get_entry_point.
17823 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17825 * reflection.c: support the object type argument when loading
17828 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
17830 * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17831 String as return type.
17833 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17835 * reflection.c: fix encoding of named args for custom attrs to match
17836 the ms implementation. Read them back when instantiating custom
17839 2002-08-02 Radek Doulik <rodo@ximian.com>
17841 * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17842 by Dietmar as quick fix
17843 (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17844 16 as stack size, used on more places as quick fix before Dietmar
17845 will fix it properly
17847 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17849 * object.h, object.c: added accessors for fields and properties.
17851 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17853 * class.c, class.h: made mono_class_get_field_from_name ()
17854 loop on parent types.
17855 Added mono_class_get_property_from_name ().
17857 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17859 * class.c, class.h: move the code to setup the type vtable in its own
17860 function so that it can be reused also for types created at runtime.
17861 Eliminate the "class" identifier from the header file.
17862 * reflection.c: setup the vtable for enums so that we can create
17863 objects for use in SetConstant ().
17865 2002-08-02 Dietmar Maurer <dietmar@ximian.com>
17867 * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17868 instead of the delegate itself as this pointer (bug #28383)
17870 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
17872 * marshal.c (mono_marshal_get_managed_wrapper): added return type
17875 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17877 * loader.c: don't set the pinvoke bit on icalls.
17879 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
17881 * debug-helpers.c (mono_method_full_name): only print a number to
17882 indicate wrapper type (so that the output is more readable in traces).
17884 2002-07-30 Dietmar Maurer <dietmar@ximian.com>
17886 * class.c (mono_class_init): include method override patch from Paolo
17888 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17890 * icall.c: fixed GetTypeCode().
17892 2002-07-29 Dietmar Maurer <dietmar@ximian.com>
17894 * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17895 use real delegate invoke function to make it work with multicast
17896 delegates (fix bug# 28291).
17898 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17900 * object.c: load constant strings.
17902 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17904 * reflection.c: no magic numbers.
17905 * tabledefs.h: security action enum.
17907 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17909 * assembly.c: fix possible memory corruption.
17911 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17913 * reflection.h, reflection.c: added support for linking resources.
17914 * verify.c: check we have an updated corlib.
17916 2002-07-25 Dietmar Maurer <dietmar@ximian.com>
17918 * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17920 (mono_marshal_string_array): null terminate unmanaged string arrays.
17921 (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17923 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17925 * icall.c: Type.GetType () can now return also types from the
17928 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17930 * loader.h, loader.c: stack walking support.
17931 * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17932 GetCallingAssembly.
17934 2002-07-24 Dietmar Maurer <dietmar@ximian.com>
17936 * marshal.c: added optimisations for blittable types
17938 * class.c (mono_array_class_get): do not set blittable attribute on arrays
17939 (mono_class_setup_mono_type): set blittable attribute for single
17942 * marshal.c (mono_string_utf8_to_builder): impl.
17943 (mono_string_builder_to_utf8): impl.
17944 (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17946 2002-07-23 Dietmar Maurer <dietmar@ximian.com>
17948 * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17949 (mono_marshal_get_managed_wrapper): impl. byref types
17951 2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17954 (search_method): don't display debug message.
17956 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
17958 * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17960 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17962 * appdomain.c: set the missing filename when throwing exception.
17964 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
17966 * metadata.c (mono_type_size): code cleanup
17967 (mono_type_stack_size): removed some test code
17969 2002-07-21 Miguel de Icaza <miguel@ximian.com>
17971 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17972 mono_get_exception_file_not_found now.
17974 * exception.c (mono_exception_from_name_two_strings): New version
17975 that will call a constructor with two string arguments.
17976 (mono_get_exception_file_not_found): New helper routine, used to
17977 report file-not-found errors.
17979 2002-07-20 Dick Porter <dick@ximian.com>
17982 * process.c: Pass file handles to CreateProcess
17986 * file-io.c: Implemented CreatePipe
17988 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
17990 * metadata.c (mono_get_param_info): set alignment for value types
17992 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17994 * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17995 Constify mono_domain_assembly_open().
17996 * loader.c: handle null namespace in icalls.
17998 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
18000 * marshal.c (emit_ptr_to_str_conv): marshal object as structs
18001 (emit_str_to_ptr_conv): marshal object as structs
18003 * metadata.c (mono_type_to_unmanaged): marshal object as structs
18005 * marshal.c (mono_marshal_get_runtime_invoke): support value types
18007 2002-07-18 Dietmar Maurer <dietmar@ximian.com>
18009 * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
18010 (mono_marshal_get_native_wrapper): we an now return value types
18012 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18014 * verify.c: more checks implemented.
18016 2002-07-17 Dietmar Maurer <dietmar@ximian.com>
18018 * marshal.c (mono_delegate_to_ftnptr): invoke the right method
18020 (mono_marshal_get_native_wrapper): allow byref arguments
18021 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
18022 impl. PtrToStringXXX methods
18023 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
18024 (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
18025 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
18026 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
18027 (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
18029 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18031 * reflection.c: fix buglet in parsing an assembly name.
18033 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
18035 * marshal.c (emit_ptr_to_str_conv): first impl.
18037 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18039 * object.c, class.h: cache the vtable in the class as suggested by
18040 vargaz@freemail.hu (Zoltan Varga).
18042 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18044 * class.h, loader.c: added mono_field_from_token().
18045 * verify.c: first cut of type checking code.
18047 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
18049 * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
18051 2002-07-15 Dietmar Maurer <dietmar@ximian.com>
18053 * marshal.c (mono_marshal_get_native_wrapper): handle enum types
18055 (mono_marshal_get_remoting_invoke): impl.
18056 (mono_delegate_begin_invoke): impl.
18057 (mono_mb_emit_save_args): impl.
18058 (mono_delegate_end_invoke): impl.
18059 (mono_marshal_get_delegate_begin_invoke):
18060 (mono_marshal_get_delegate_end_invoke):
18061 (mono_marshal_get_delegate_invoke): generate a special name for
18062 those methods (including the signature) and associate them whith
18063 the delegate class.
18065 2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
18068 (mono_reflection_type_from_name): now it has a MonoImage parameter
18069 which is used as the default image to search the type in. If the image
18070 is NULL or getting the type from it fails, it defaults to corlib.
18072 * icall.c: changed 1 call to mono_reflection_type_from_name to match
18075 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18077 * reflection.c: update the parameter table index.
18079 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18081 * domain.c: don't include the mark byte in the string hash.
18083 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18085 * icall.cs: icall for Type.GetTypeCode ().
18086 * verify: a couple of fixes and disabled local initialization checks.
18088 2002-07-12 Dietmar Maurer <dietmar@ximian.com>
18090 * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18092 * debug-helpers.c (mono_method_full_name): print the type of the
18095 * metadata.c (mono_signature_hash): a hash function for signatures
18096 (mono_signature_hash): better hash algorithm
18098 * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18100 * debug-helpers.c (mono_method_full_name): this can now generate
18101 method names with signatures
18103 * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18104 method dont have this pointers.
18106 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18108 * reflection.c: fixup typebuilder tokens.
18109 * image.c: fix buglet.
18110 * marshal.h: remove whitespace.
18111 * metadata.h, metadata.c: reinstate code that was removed.
18112 * verify.c: handle catch directives and fix another couple of bugs.
18114 2002-07-11 Dietmar Maurer <dietmar@ximian.com>
18116 * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18117 (mono_marshal_get_native_wrapper): make it comp. with the old code
18118 (mono_marshal_get_native_wrapper): support boolean
18119 (mono_marshal_get_managed_wrapper): support more types
18121 2002-06-25 Dietmar Maurer <dietmar@ximian.com>
18123 * class.c (class_compute_field_layout): compute class->blittable attribute.
18125 2002-07-09 Dick Porter <dick@ximian.com>
18127 * threads.c: Make the thread cleaning up cope with threads that
18130 2002-07-08 Radek Doulik <rodo@ximian.com>
18132 * reflection.c (method_encode_code): use non-translated values to
18133 compute finally_start, this fixes exception handling on ppc, yay!
18135 * decimal.h (struct signscale): fix endianess
18137 2002-07-07 Radek Doulik <rodo@ximian.com>
18139 * reflection.c: swap box_val and not val
18141 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18143 * reflection.c, reflection.h: handle full assembly info in type name.
18144 Handle Type arguments when loading custom attributes.
18145 * icall.c: updated to use new mono_reflection_type_from_name () method.
18147 2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18150 (method_from_memberref): also print assembly name when method not found.
18152 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18155 (ves_icall_TypeGetProperties): fixed bug #27473.
18157 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18159 * reflection.c: display image name and token when cannot find the
18160 .ctor for an attribute.
18162 2002-07-05 Martin Baulig <martin@gnome.org>
18164 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18166 2002-07-04 Dick Porter <dick@ximian.com>
18168 * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18169 compile on mingw. This will cause mingw builds to not wait for
18170 subthreads to terminate after the main thread does. I've lodged a
18171 bug with the mingw developers for them to wrap OpenThread().
18173 2002-07-03 Dick Porter <dick@ximian.com>
18175 * threads.c: Store thread IDs instead of handles, because
18176 GetCurrentThread() returns a pseudohandle and therefore stores
18177 useless values. mono_thread_cleanup() continues checking the
18178 array of threads until it is empty, to cope with subthreads
18179 spawning new threads after the main thread has finished.
18183 * profiler-private.h: Pass the thread ID to thread profiler
18184 functions, instead of a handle
18186 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18188 * verify.c: fixes to make it more usable.
18189 * pedump.c: added --verify code to verify IL code in an assembly.
18191 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18193 * reflection.c: turn errors into warnings to allow compiling corlib.
18195 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18197 * reflection.c: add special cases to compile corlib.
18199 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18201 * reflection.c: handle properties with only a set method.
18203 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18205 * opcodes.h: add enum with opcodes in opval order.
18207 2002-07-01 Dick Porter <dick@ximian.com>
18210 * object.c (mono_runtime_run_main): Removed unneeded argument
18212 2002-06-28 Martin Baulig <martin@gnome.org>
18214 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18216 2002-06-27 Dick Porter <dick@ximian.com>
18218 * threads.c: Store the handle in both the parent thread and in the
18219 subthread, to minimise the time between starting a new thread and
18222 2002-06-26 Dick Porter <dick@ximian.com>
18224 * appdomain.c (mono_runtime_cleanup): Close the socket library
18225 after all the threads have finished, not before
18227 2002-06-26 Martin Baulig <martin@gnome.org>
18229 * debug-symfile.c (mono_debug_find_source_location): Added
18230 `guint32 *line_number' argument. If it's not NULL, store the line number
18231 there and return the file name without the line number.
18233 2002-06-25 Dick Porter <dick@ximian.com>
18237 * process.c: Process forking and other support functions
18239 2002-06-25 Dick Porter <dick@ximian.com>
18241 * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18242 things dont happen when the image is closed.
18243 (mono_image_lookup_resource): Walk the resource section looking
18244 for a particular entry
18246 * cil-coff.h: PE resource section decoding
18248 2002-06-25 Dick Porter <dick@ximian.com>
18252 (mono_assembly_foreach): Accessor functions to walk the list of
18254 (mono_assembly_set_main):
18255 (mono_assembly_get_main): Process methods need to know which
18256 assembly is the "main" one
18258 * object.c (mono_runtime_run_main): Record the main assembly
18260 * debug-helpers.c: Fix typo
18262 2002-06-24 Dietmar Maurer <dietmar@ximian.com>
18264 * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18265 (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18267 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18269 * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18271 2002-06-21 Miguel de Icaza <miguel@ximian.com>
18273 * image.c (do_mono_image_open): Initialize reference count,
18274 otherwise we leak the MonoImage.
18276 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18278 * reflection.c: small tweak to handle self-hosting.
18280 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18282 * reflection.c: fix type name parse code.
18284 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18286 * reflection.c: break out of the loop.
18287 * image.c: special case corlib.
18289 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18291 * reflection.c: add all the custom attrs at the end to ensure the
18292 ctors have been properly initialized when the attributes are defined
18293 in the current assembly.
18295 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18297 * reflection.c: handle correctly multiple-nested types.
18299 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18301 * row-indexes.h: fix typos.
18302 * reflection.c: adjust for typos and fix method_def_or_ref
18303 encoding in MethodImpl table.
18305 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18307 * reflection.c: fix entry point patching (thanks Serge!).
18309 2002-06-18 Dietmar Maurer <dietmar@ximian.com>
18311 * verify.c: add check for System.Exception
18313 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18315 * image.c, class.c: minifix for code just c&p'ed.
18316 * reflection.c: warning fix.
18317 * object.h, loader.h, domain.c: load also StringBuilder.
18319 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18321 * marshal.h, marshal.c: some support code to handle complex marshaling.
18323 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18325 * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18326 Better signatures with vtable error dump.
18328 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18330 * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18332 2002-06-17 Dietmar Maurer <dietmar@ximian.com>
18334 * icall.c (ves_icall_Type_GetField): impl.
18336 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18338 * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18339 to retrieve a marshal description blob for a field or param.
18341 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18343 * reflection.h, reflection.c: change order of nested type emission
18344 to avoid table corruption. The NestedTypes table is sorted.
18345 * icall.c: change order of GetConstructor results to workaround mcs bug.
18347 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18349 * reflection.h, reflection.c: handle field and param marshal
18352 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18354 * icall.c, marshal.c marshal.h: more Marshal class implementation.
18356 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18358 * reflection.c: fix call convention.
18360 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18362 * reflection.h, reflection.c: mono_image_get_memberref_token()
18363 takes a type instead of a class, now. Added
18364 mono_image_get_array_token() to create tokens for the special
18365 multi-dim array methods.
18367 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18369 * assembly.c: handle modules (no assembly table). Split
18370 loading references in its own function.
18371 * class.c: handle moduleref resolution scope.
18372 * image.c, image.h: cache module name in image.
18374 2002-06-07 Martin Baulig <martin@gnome.org>
18376 * reflection.c (mono_image_get_type_info): Only add a class layout entry
18377 if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18379 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18381 * icall.c: more signature fixes that used uint instead of int.
18383 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18385 * reflection.c: fixed signature of field refs.
18387 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18389 * class.c, reflection.c: handle typerefs of nested types
18390 (both on read and when writing files).
18392 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18394 * icall.c: fix method signatures that tried to workaround the previous
18397 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18399 * debug-helpers.c: fix typo.
18401 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18403 * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18404 rewrote the PE/COFF writing code (our programs are understood by the
18407 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18409 * gc.c, gc.h, icall.c: weakreference support.
18411 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18413 * Makefile.am, mono-config.c: use $(sysconfdir).
18415 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18417 * icall.c: changed default precision of Double.ToString() to 15.
18418 Fixed memory leak. Unified with Single.ToString.
18420 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18422 * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18424 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18426 * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18427 gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18428 warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18431 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18433 * debug-symfile.c, sysmath.c: yet more compilation fixes.
18435 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18437 * reflection.c, socket-io.c: more compilation fixes.
18439 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18441 * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18442 domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18443 unicode.c: warning and compiler compatibility fixes.
18445 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18447 * class.h, metadata.c: fixed warnings/compilation errors.
18449 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18451 * Makefile.am, mono-config.c, mono-config.h: configuration file
18453 * loader.c, loader.h: make Dll mapping configurable at runtime in the
18454 config file. Export methods to insert and lookup mappings.
18456 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18458 * reflection.c: handle types and boxed objects in custom attr
18461 2002-05-30 Martin Baulig <martin@gnome.org>
18464 (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18466 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18468 * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18469 to lookup the implmap row for a P/Invoke method.
18470 * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18471 P/Invoke method from the runtime on an as needed basis.
18473 2002-05-28 Dietmar Maurer <dietmar@ximian.com>
18475 * metadata.c (mono_metadata_parse_signature): impl.
18477 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18479 * class.c: handle .pack directive.
18481 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18483 * object.c: initialize static fields with RVA data.
18485 2002-05-25 Martin Baulig <martin@gnome.org>
18488 (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18490 2002-05-24 Martin Baulig <martin@gnome.org>
18493 (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18494 (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18495 `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18497 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18499 * object.c: special case string ctros in invoke.
18500 * gc.c: silly whitespace changes.
18502 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
18504 * threadpool.[ch]: impl. a threadpool that can
18505 be used by mint and mono.
18507 2002-05-22 Martin Baulig <martin@gnome.org>
18509 * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18510 The first argument is now a `MonoReflectionModuleBuilder *', the return
18511 value is a `MonoReflectionModuleBuilder *'. Use the AssemblyBuilder's
18512 `methods' field to get the method builder. The `token' argument is the
18515 * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18516 invalid characters instead of g_assert_not_reached()ing. This seems
18517 to be the behaviour of mscorlib.
18519 2002-05-22 Dietmar Maurer <dietmar@ximian.com>
18521 * object.c (mono_runtime_invoke_array): applied patch from Rachel
18522 Hestilow to fix bug #25104
18524 2002-05-21 Martin Baulig <martin@gnome.org>
18526 * debug-symfile.c (mono_debug_find_source_location): New function.
18527 Looks up an IL offset in the line number table and returns the source
18528 location as a string.
18530 2002-05-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18533 (mono_double_ToStringImpl): changed %f by %g until we have something
18536 2002-05-21 Nick Drochak <ndrochak@gol.com>
18538 * icall.c : Use different name for Math.Pow's icall. Needed to check
18539 parameters first in C#.
18541 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18543 * icall.c, reflection.h: added icall to get info about an event.
18545 2002-05-20 Radek Doulik <rodo@ximian.com>
18547 * object.c (mono_value_box): don't use memcpy for boxing on BIG
18549 (mono_value_box): don't use memcpy for small sizes on
18550 architectures with unaligned access
18552 2002-05-20 Martin Baulig <martin@gnome.org>
18554 * reflection.c (mono_reflection_setup_internal_class): Don't crash
18555 if `tb->parent == NULL'.
18556 (mono_reflection_create_internal_class): New function. This is
18557 called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18560 * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18563 2002-05-19 Martin Baulig <martin@gnome.org>
18565 * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18566 argument to get the length, don't default to the array length.
18568 2002-05-18 Miguel de Icaza <miguel@ximian.com>
18570 * assembly.c (mono_assembly_setrootdir): New function used to
18571 override the MONO_ASSEMBLIES directory.
18573 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18575 * icall.c: ValueType_GetHashCode() initialize local var.
18577 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18579 * reflection.c: sort custom attributes table.
18581 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18583 * reflection.c: support named args in custom attributes (write support).
18585 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18587 * reflection.c: fix finally position calculation.
18589 2002-05-15 Radek Doulik <rodo@ximian.com>
18591 * reflection.c: fixed endianess at many places
18593 * icall.c (ves_icall_InitializeArray): comment out debug msg
18595 2002-05-15 Dietmar Maurer <dietmar@ximian.com>
18597 * object.c (mono_unhandled_exception): new function to handle
18598 unhandled exceptions.
18599 (mono_unhandled_exception): call the UnhandledException event.
18600 (mono_runtime_delegate_invoke): impl.
18602 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18604 * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18605 returns the RVA, not the direct pointer to the data. Handle the case
18606 when the class size is fixed.
18608 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18610 * reflection.c: fix some endianess issues.
18612 2002-05-14 Dietmar Maurer <dietmar@ximian.com>
18614 * object.c (mono_runtime_invoke): is now able to catch exceptions.
18616 * threads.c (mono_thread_init): added a callback which is invoked
18619 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
18621 * icall.c: make GetHashCode return non-negative values.
18623 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
18625 * object.c, icall.c, gc.c: revert to address-based hashcode.
18627 2002-05-13 Miguel de Icaza <miguel@ximian.com>
18629 * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18631 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18633 * icall.c, class.c: special case <Module>.
18635 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
18637 * icall.c: fix bug in GetNow().
18639 2002-05-11 Dietmar Maurer <dietmar@ximian.com>
18641 * object.c (mono_runtime_class_init): make sure that we call all
18642 static class constructors.
18644 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18646 * reflection.c: sort methodsemantics table.
18648 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18650 * reflection.h, reflection.c: honour init locals setting.
18652 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18654 * icall.c: copied Double ToStringImpl for Single ToStringImpl
18656 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18658 * reflection.c: support ContructorBuilders in attribute blob creation.
18660 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18662 * reflection.c: some changes to build a binary that can be run
18663 directly in windows.
18665 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18667 * loader.c: print a big message when an icall can't be found.
18669 2002-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18671 * string-icalls.c: fix bug 24248.
18673 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18675 * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18676 icall.c, reflection.h: separate assembly loading by pathname and by
18677 assembly name. Use the MONO_PATH env var to search for assemblies.
18679 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18681 * assembly.c, image.h: add some support for assemblies
18682 with multiple modules.
18683 * class.c, class.h: export mono_class_from_typeref().
18684 * loader.c: remove duplicated code and use mono_class_from_typeref(),
18687 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18689 * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18690 documentation says (the ECMA one is correct).
18692 2002-05-02 Dick Porter <dick@ximian.com>
18694 * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18695 Don't name the synchronisation mutex.
18697 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
18700 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18701 Make the prototypes match.
18702 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18706 (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18707 systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18708 all systems have tm.tm_zone, so use strftime() with %Z to print
18709 the timezone abreviation into a temp string.
18711 * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18712 rather than mono_array_addr() on a MonoString on Big Endian
18715 2002-04-30 Dietmar Maurer <dietmar@ximian.com>
18717 * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18720 2002-04-30 Dick Porter <dick@ximian.com>
18722 * socket-io.c: Cope with SOCKET being an integer rather than a
18725 * threads.c: Added Thread_free_internal, to deal with thread
18726 handle cleanup. Moved calls to handle_store() and handle_remove()
18727 to start_wrapper(), so each can only be called once. Allocate
18728 synchronisation blocks with GC_malloc(), and use GC finalisation
18729 to close the handles.
18731 * icall.c: added System.Threading.Thread::Thread_free_internal
18733 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18735 * icall.c: support Environment.Exit, CommandLineArgs().
18737 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18739 * object.c, object.h: added mono_runtime_run_main () and
18740 mono_runtime_get_main_args () for use in System.Environment.
18742 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18744 * gc.c: fix thinko, enable actual finalization since the jit is now
18747 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18749 * gc.c, object.c: take into account that an object may be offset wrt the address
18750 returned by GC_malloc().
18752 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18754 * image.c: handle files without entries in the assembly table (modules).
18756 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18758 * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow
18759 mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18760 allowed to be null when it's System.Object class setup.
18762 2002-04-27 Martin Baulig <martin@gnome.org>
18764 * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18765 if `tb->parent == NULL' rather than crashing.
18767 2002-04-28 Nick Drochak <ndrochak@gol.com>
18769 * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error. Was
18770 calling acos() where asin() should have been called.
18772 2002-04-26 Martin Baulig <martin@gnome.org>
18774 * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18775 instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18776 there's a subdirectory called `System', but we don't want to read that
18777 subdirectory as an assembly.
18779 2002-04-25 Martin Baulig <martin@gnome.org>
18781 * debug-symfile.c: Reflect latest MonoString changes.
18783 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18785 * rand.c, rand.h: instance method icalls need to have an explicit
18786 this pointer as first argument in the C implementation.
18788 2002-04-25 Nick Drochak <ndrochak@gol.com>
18790 * icall.c: Fix typo in map for GetNonZeroBytes
18792 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
18794 * string-icalls.c : String does now passes unit tests without any
18795 errors, the following changes has been made:
18797 Implemented replace methods.
18798 Renaming of methods to (try) follow the standard.
18799 Fixed compare ordinal
18800 Made all memory allocated directly to function instead of via icall function.
18801 Small performance fix in is_in_array function
18803 (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18805 c (mono_string_Internal_ctor_charp_int_int):
18806 (mono_string_Internal_ctor_sbytep_int_int): Removed check for
18807 sindex < 0, throw ArgumentOutOfRangeException instead of
18808 ArgumentNullException.
18810 Added new check for length == 0, however
18811 I need to make it return String.Empty from the C code.
18813 (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18814 that calculate the length for us here.
18816 (mono_string_Internal_ctor_sbytep_int_int): Replaced
18817 mono_string_new_utf16 with mono_string_new, since value is utf8.
18819 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18821 * object.c: register the object for finalization if needed.
18822 Allocate one more char in the string for the terminating 0 char.
18824 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18826 * class.c, class.h, image.c: check if a type implemenst a destructor.
18827 Use the proper key for array class lookups.
18828 * icall.c: register the icalls in the System.GC class.
18829 * gc.c, gc.h: GC-related functions and icalls.
18831 2002-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18835 * unicode.c: free some strings gotten from mono_string_to_utf8 and
18836 changed a couple of free () by g_free ().
18838 * decimal.c: one-liner in the comments for decimal2string ().
18840 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
18842 * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18844 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
18846 * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18847 * object.c (mono_runtime_invoke_array) : handle null in params
18849 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
18851 * string-icalls.c: fixed bug in split (one off bug)
18853 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
18855 * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18856 * icalls.c: added String::Equals as internal method
18858 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
18860 * threads.c: fixed bug in the double interlocked functions
18862 2002-04-22 Patrik Torstensson <patrik.torstensson@labs2.com>
18864 * threads.c: implemented all of the new interlocked icalls.
18865 * string-icalls.c: fix a bug in insert.
18866 * icalls.c: added the icalls for interlocked, removed old string functions.
18868 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18870 * loader.c: fix off-by-one error when reading argument names.
18872 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18874 * profiler.c: win32 counter implementation (untested).
18875 * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18876 (the latter needs testing and more complete impl. from win32 folks).
18878 2002-04-21 Dan Lewis <dihlewis@yahoo.co.uk>
18880 * object.c: mono_array_new_full workaround mono_array_class_get
18883 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
18885 * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18886 * object.h (mono_string_chars): Changed casting type.
18888 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
18890 * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18891 method signatures to use gunichar2 instead of gint16.
18893 2002-04-20 Dan Lewis <dihlewis@yahoo.co.uk>
18895 * object.h, object.c: domain-specific versions of mono_object_new and
18898 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
18900 * object.c: changed String layout
18902 * string-icalls.c (mono_string_Internal_ctor_chara): added
18903 internal string constructors.
18905 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18907 * threads.c: pass 'this' to the thread start routine.
18909 2002-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18911 * string-icalls.c: fix IndexOf and LastIndexOf. Now
18912 InternalCompareStr don't call twice mono_string_cmp_char for the last
18913 character. Improved performance in mono_string_cmp_char.
18915 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18917 * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18918 code into its own library: libmonoruntime.
18920 2002-04-19 Dan Lewis <dihlewis@yahoo.co.uk>
18922 * object.h, object.c: changed array format so that szarrays do not
18923 require a bounds structure.
18924 * icall.c, appdomain.c: support for new szarray format.
18926 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18928 * metadata.c: compare also the retuns type when comparing signatures:
18929 we didn't do this as an optimization since really overloaded methods
18930 must differ also in the arguments, but this doesn't work with
18931 low-level IL code (or when using explicit conversion operators: see
18932 bug#23498 for an example).
18934 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18936 * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18938 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18940 * icall.c: make MonoType::GetElementType its own icall.
18942 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18944 * icall.c: remove MonoMethod_get_Name().
18945 * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18948 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
18950 * string-icalls.c: optimized a few methods.
18952 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
18954 * icall.c: added all new string internal calls
18955 * string-icalls.c: added, new string internal call implementation.
18956 * object.c: added mono_string_new_size for allocating a string a size
18958 2002-04-17 Dietmar Maurer <dietmar@ximian.com>
18960 * object.c (mono_object_isinst): use the same code as in the
18961 optimized x86 version.
18963 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18965 * profiler.c: TSC-based timer code (faster and more accurate).
18966 Not hooked up in configure, yet (set USE_X86TSC to 1).
18968 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18970 * profiler.c, profiler.h: track time spent compiling methods.
18971 * threads.c: track thread creation/destruction.
18973 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18975 * profiler.c, profiler.h, profiler-private.h: profiling interface
18976 and sample implementation. Moved here so that it can be used also by
18979 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18981 * reflection.c, reflection.h: keep types and other handles separate in
18982 the hash tables for referred tokens. Add guid for modules.
18984 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18986 * assembly.c: fix bugs found with valgrind.
18987 * metadata.h, metadata.c: added mono_metadata_guid_heap().
18989 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
18991 * threads: added icall support for getting current domain for
18994 2002-04-13 Martin Baulig <martin@gnome.org>
18996 * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18997 (MonoDebugVarInfo): Added `index' field for register based addresses.
18998 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18999 (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
19000 `MonoDebugVarInfo *params' and `guint32 this_offset' with
19001 `MonoDebugVarInfo *this_var'.
19003 * debug-symfile.c (relocate_variable): New static function to write
19004 a location description for a local variable or method parameter.
19006 2002-04-12 Martin Baulig <martin@gnome.org>
19008 * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
19009 stack offset and begin/end scope address of a local variable.
19010 (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
19011 'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
19012 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
19014 * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
19015 Added new relocation types for start/end scope of a local variable.
19017 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19019 * object.h: add mono_object_domain() macro.
19020 * reflection.c: handle typespecs.
19021 * icall.c: MonoMethod::get_Name() implementation.
19023 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19025 * icall.c: String::GetHashCode() icall implementation.
19027 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19029 * icall.c: String::IndexOfAny icall.
19030 * object.c, object.h: make array->max_length more useful.
19031 Intrduced mono_object_class() and mono_string_length() macros.
19033 2002-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19035 * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
19036 instead of g_unichar_isdigit.
19038 2002-04-11 Nick Drochak <ndrochak@gol.com>
19040 * icall.c: Implement a simple Double.ToString().
19042 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19044 * appdomain.h: only io-layer.h is supposed to be included.
19045 * icall.c: explicitly import environ. Fix warning.
19047 2002-04-10 Nick Drochak <ndrochak@gol.com>
19049 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
19050 return true even if it's not Daylight Savings time.
19051 Only return false for the case where the function isn't
19052 implemented for a plaform (read Windows).
19054 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19056 * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
19059 2002-04-09 Dietmar Maurer <dietmar@ximian.com>
19061 * mempool.c (mono_mempool_alloc): only use g_malloc when
19062 absolutely necessary.
19064 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
19066 * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
19068 * class.c (mono_class_vtable): use domain mempool to allocate vtable
19069 (mono_class_proxy_vtable): use domain mempool
19071 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19073 * appdomain.h, appdomain.c: split initialization that requires the
19074 execution engine support into mono_runtime_init().
19076 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
19078 * class.c (mono_class_init): don't include vtable inside MonoClass
19079 to save some memory, gather some statistics.
19080 (mono_class_vtable): use g_malloc instead of GC_malloc when possible
19082 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19084 * icall.c: internalcall implementation for ValueType.Equals().
19086 2002-04-06 Dietmar Maurer <dietmar@ximian.com>
19088 * object.c (mono_message_init): moved
19089 (mono_runtime_exec_main): new arch. independent impl.
19090 (mono_runtime_invoke_array): new method - like
19091 mono_runtime_invoke, but you can pass an array of objects.
19092 (mono_remoting_invoke): new arch. independent impl.
19093 (mono_message_invoke): new arch. independent impl.
19094 (mono_runtime_class_init): new arch. independent impl.
19095 (mono_runtime_object_init): new arch. independent impl.
19097 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19099 * metadata.c, object.c, reflection.c: documented the exported
19102 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19104 * icall.c: simpler code to pass the assembly builder data to corlib.
19105 Implement GetNestedTypes() internalcall.
19107 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19109 * class.c: warn if a type can't be loaded.
19111 2002-04-04 Dietmar Maurer <dietmar@ximian.com>
19113 * image.h: typedef MonoImageOpenStatus
19114 * types.h: removed unused file
19116 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
19118 * icall.c: Enum_ToObject accepts enum value arguments.
19120 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19122 * class.c: move initialization of properties, events and nested
19123 classes, so that they happen for interfaces, too.
19125 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19127 * icall.c: cleanup some ugly casts in Array_SetValue*.
19129 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19131 * icall.c: the values array fro enums is of the correct type, now.
19132 Implement (correctly) getFullName instead of assQualifiedName for
19134 * reflection.h, reflection.c: added mono_type_get_name ().
19136 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19138 * assembly.c, image.h: for each MonoImage, record from wich assembly
19140 * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19141 Make Type.Assembly work.
19143 2002-04-03 Dietmar Maurer <dietmar@ximian.com>
19145 * debug-symfile.h: use char* instead of gpointer to avoid
19148 * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19150 * icall.c (ves_icall_InternalExecute): impl. FielSetter
19151 (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19153 2002-03-30 Dietmar Maurer <dietmar@ximian.com>
19155 * icall.c (mono_message_init): impl. (code cleanup)
19156 (ves_icall_InternalExecute): impl. FieldGetter
19158 * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19159 defined we call all (non-static)methods through the vtable.
19161 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19163 * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19164 finalizer even though the memory is still referenced (and the chunk of
19165 memory is not freed).
19167 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19169 * assembly.c: fix brokeness.
19171 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19173 * class.c: kill some warnings. Check explicit interface method
19174 implementation also without considering the namespace.
19175 Load also literal strings in static class data.
19177 2002-03-29 Miguel de Icaza <miguel@ximian.com>
19179 * assembly.c (default_assembly_name_resolver): Kill memory leak.
19180 (default_assembly_name_resolver): Make the resolver take the
19181 "base" directory where the assembly was originally defined, so we
19182 can load DLLs that are in the same directory as the assembly that
19183 is being referenced.
19185 2002-03-28 Dick Porter <dick@ximian.com>
19191 * unicode.c: Warning cleanups
19193 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19195 * object.h, reflection.h: use the correct type instead of MonoObject.
19197 2002-03-28 Martin Baulig <martin@gnome.org>
19199 * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19200 (mono_debug_update_symbol_file): Initialize classes if necessary.
19202 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19204 * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19205 rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19207 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19209 * assembly.h: fix function prototype.
19210 * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19211 * mono-endian.h: use const cast.
19213 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
19215 * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19217 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19219 * loader.c: don't assert when a typeref can't be loaded, give
19220 a chance to the runtime to trow an exception instead.
19221 * loader.h: fix warning.
19223 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
19225 * class.c (mono_class_proxy_vtable): added proxy support
19227 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
19229 * icall.c: removed last of PAL calls, added System.Environment
19230 * file-io.h, file-io.c: MonoIO implementation
19231 * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19233 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19235 * appdomain.c: do not use the byte marker in ldstr table lookup.
19236 * debug-helpers.c: allow two ':' to separate class and method name.
19237 * object.c: allocate arrays bounds with the GC, too.
19238 * verify: add a few more checks.
19240 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19242 * reflection.c: output also literal strings. Allocate parameter data
19243 with GC_malloc() (thanks, Martin, for catching this!).
19245 2002-03-26 Martin Baulig <martin@gnome.org>
19247 * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19248 include the `this' offset in the `param_offsets'.
19250 2002-03-25 Martin Baulig <martin@gnome.org>
19252 * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19253 mono_debug_get_class() function to get the classes. Added new
19254 relocation types for arrays and strings.
19255 (mono_debug_get_class): New static function to search in all
19256 referenced assemblies for a metadata token.
19258 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19260 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19262 * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19263 hold gc-allocated objects. Make the string heap a stream like the
19264 others. Removed duplicated code when writing stream info.
19265 Added asserts to catch possible buffer overflows. Set the sorted map
19266 for tables that need sorting. Added some documentation.
19268 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19270 * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table
19271 for interned strings and vtables.
19273 2002-03-24 Martin Baulig <martin@gnome.org>
19275 * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19276 it in the array since it was created with g_slist_prepend().
19278 2002-03-24 Martin Baulig <martin@gnome.org>
19280 * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19281 to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19282 (mono_debug_method_from_token): Renamed to
19283 ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19284 (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19286 * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19289 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19291 2002-03-24 Martin Baulig <martin@gnome.org>
19293 * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19294 (mono_debug_method_from_token): New func.
19296 * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19297 New interncall, calls mono_debug_local_type_from_signature().
19298 (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19299 calls mono_debug_method_from_token().
19301 2002-03-23 Martin Baulig <martin@gnome.org>
19303 * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19304 specifies the number of bytes to be converted, not the array size.
19305 Return the number of chars, not the number of bytes.
19306 (ves_icall_iconv_get_chars): The `byteCount' argument
19307 specifies the number of bytes to be converted, not the array size.
19309 2002-03-23 Martin Baulig <martin@gnome.org>
19311 * reflection.h (MonoReflectionSigHelper): New type.
19313 * reflection.c (mono_reflection_sighelper_get_signature_local),
19314 (mono_reflection_sighelper_get_signature_local): New functions.
19316 * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19317 (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19320 2002-03-23 Martin Baulig <martin@gnome.org>
19322 * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19323 is_writeable is set.
19324 (mono_raw_buffer_update): New function to write the modified map
19327 * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19329 * debug-symfile.c (mono_debug_update_symbol_file): Call
19330 mono_raw_buffer_update() when done writing.
19332 2002-03-23 Martin Baulig <martin@gnome.org>
19334 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19336 * debug-symfile.c: Added support for arguments and local variables.
19338 2002-03-23 Dick Porter <dick@ximian.com>
19340 * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19341 protected by ifdefs, hence breaking the w32 build.
19343 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19345 * object.c: implement is_interned() the right way.
19347 2002-03-21 Martin Baulig <martin@gnome.org>
19349 * debug-symfile.[ch]: New files to handle debugging information
19350 files. There's also support to dynamically update these symbol
19351 files to include machine dependent information.
19353 2002-03-20 Dietmar Maurer <dietmar@ximian.com>
19355 * threads.c (mono_thread_create): new function to create thread
19358 2002-03-20 Martin Baulig <martin@gnome.org>
19360 * icall.c (ves_icall_InternalInvoke): Create a new object if the
19361 method is a constructor.
19362 (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19363 points to ves_icall_InternalInvoke().
19365 2002-03-20 Dan Lewis <dihlewis@yahoo.co.uk>
19367 * file-io.c: Flush shouldn't throw exceptions.
19369 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
19371 * file-io.c: FileStream flush support; FileSetLength now
19372 restores file pointer.
19374 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19376 * class.c: set image for pointer classes.
19378 2002/03/19 Nick Drochak <ndrochak@gol.com>
19380 * sysmath.c: Forgot one.
19382 2002-03-18 Miguel de Icaza <miguel@ximian.com>
19384 * sysmath.c: Avoid redefining existing names.
19386 2002-03-18 Dan Lewis <dihlewis@yahoo.co.uk>
19388 * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19389 handled by runtime as icall rather than dllimport from libm.so
19390 * file-io.c, file-io.h: fixed handle argument type.
19392 2002-03-18 Dick Porter <dick@ximian.com>
19394 * reflection.c (mono_image_get_type_info): rename interface to
19395 iface, because of "#define interface struct" on windows.
19397 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19399 * class.c, class.h: rename and export mono_ptr_class_get().
19400 * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19401 * reflection.c, reflection.h, icall.c: better/saner type name
19402 parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19405 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
19407 * class.c (mono_class_init): removed hardcoded GHC_SLOT
19409 * icall.c (ves_icall_InternalInvoke): impl.
19411 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19413 * reflection.c: output the interface map table, too.
19415 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
19417 * class.c (class_compute_field_layout): separate computation of
19418 static field layout
19420 2002-03-12 Dan Lewis <dihlewis@yahoo.co.uk>
19422 * icall.c: added System.Buffer support.
19423 * file-io.c: moved file icalls from PAL to FileStream.
19425 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
19427 * icall.c (ves_icall_System_Object_GetHashCode): impl.
19429 2002-03-11 Dietmar Maurer <dietmar@ximian.com>
19431 * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19433 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19435 * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19437 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19439 * debug-helpers.{c,h}: moved here from monograph some useful functions
19440 to locate a method by name/signature in a class or image. Included
19441 also a small and flexible IL disassembler.
19443 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19445 * reflection.c: fixup tokens in methods with small header size, too.
19447 2002-03-08 Dietmar Maurer <dietmar@ximian.com>
19449 * object.c (mono_string_to_utf8): remove assert(!error), instead
19452 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19454 * icall.c: update to the new mono_Array_class_get interface.
19456 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19458 * appdomain.c, object.c: Boehm-GC enable.
19459 * icall.c: make get_data_chunk() support split data requests.
19460 Ensure a class is initialized in more cases. Return only the first
19461 property found in GetProperties() or the compiler gets confused.
19462 Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19463 * reflection.h, reflection.c: add fixup mechanism for field and method
19464 tokens. Initialize assembly->typeref in a single place. Output
19465 properties after events. Support custom attributes for events, too.
19466 Typo fix for paramter custom attrs.
19468 2002-03-07 Martin Baulig <martin@gnome.org>
19470 * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19472 2002-03-07 Dietmar Maurer <dietmar@ximian.com>
19474 * class.c (mono_array_class_get): fix. for multi. dim. arrays
19476 2002-03-06 Martin Baulig <martin@gnome.org>
19478 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19479 non-zero lower bounds. See testcases #F10-#F13.
19481 2002-03-05 Martin Baulig <martin@gnome.org>
19483 * exception.c (mono_get_exception_argument_out_of_range): New exception.
19485 * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19486 ves_icall_System_Array_GetValue(), only calculate the absolute array position
19488 (ves_icall_System_Array_SetValue): Likewise.
19489 (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19490 as argument and does the actual work. This function is used when copying a
19491 multi-dimensional array.
19492 (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19493 now do all the widening conversions of value types.
19494 (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19496 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19498 * class.c: remove some magic numbers and use the smbolic names,
19499 instead. Added init_events() to load event info at class init time.
19500 * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19501 and mono_metadata_methods_from_event().
19502 * reflection.h, reflection.c: added support for writing out the evnets
19503 related information.
19505 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19507 * reflection.h, icall.c: use a different method (GetInterfaces)
19508 to gather interface info and add isbyref, isprimitive and
19509 ispointer to the ves_icall_get_type_info() return value.
19511 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19513 * class.h: stared adding support for events.
19514 * icall.c: split find_members implementation. Added debug icall to get
19515 the address of an object.
19516 * reflection.c: handle TypeBuilders in mono_type_get_object().
19518 2002-03-01 Martin Baulig <martin@gnome.org>
19520 * icall.c (ves_icall_System_Array_GetLength): This must throw an
19521 ArgumentOutOfRangeException(), not an ArgumentException().
19522 (ves_icall_System_Array_GetLowerBound): Likewise.
19523 (ves_icall_System_Array_GetValue): Improved argument checking.
19524 (ves_icall_System_Array_SetValue): Improved argument checking.
19526 2002-03-01 Martin Baulig <martin@gnome.org>
19528 * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19529 called with invalid arguments rather than just dying with g_assert().
19530 (ves_icall_System_Array_SetValue): Likewise.
19531 (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19532 raise a NotImplementedException instead.
19533 (ves_icall_System_Array_GetLength): Added argument checking.
19534 (ves_icall_System_Array_GetLowerBound): Added argument checking.
19536 2002-03-01 Dietmar Maurer <dietmar@ximian.com>
19538 * object.h (mono_assert): new macros mono_assert and
19539 mono_assert_not_reached
19541 2002-02-28 Martin Baulig <martin@gnome.org>
19543 * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19544 and "System::String::IsInterned" to "System::String::_IsInterned".
19546 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19548 * icall.c: remove hacks for typebuilder. Added icall to create a
19549 modified type from a tybebuilder.
19550 * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19551 in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19552 to create a backing MonoClass for a TypeBuilder.
19554 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19556 * class.c, class.h: more refactoring of class init.
19557 Export mono_class_setup_mono_type() and mono_class_setup_parent().
19559 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19561 * marshal.c, marshal.h: start of marshaling interface.
19563 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19565 * icall.c: fix order in assembly qualified name icall.
19567 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19569 * class.c: do not free str, since we store it in the hash table.
19570 * reflection.h: add label field to MonoILExceptionInfo.
19571 * reflection.c: handle references to more than one assembly. Handle
19572 case when there isn't a module created in the assembly.
19574 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19576 * class.c: Fix typo. Start refactoring of class init code.
19578 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19580 * appdomain.c: exit with 1 on error.
19581 * class.c: we already have the name in MonoClassField.
19582 * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19583 MonoStreamHeader instead of an offset of image->raw_metadata.
19585 2002-02-26 Miguel de Icaza <miguel@ximian.com>
19587 * appdomain.c (mono_init): Be even more descriptive about the error.
19589 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19591 * appdomain.c: give the user an informative message when corlib can't
19594 2002-02-26 Martin Baulig <martin@gnome.org>
19596 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19597 New icall to get the time zone data.
19599 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19601 * reflection.c: set virtual and raw size of section correctly.
19602 * threads.c: transfer domain information to newly created threads.
19604 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19606 * class.c: when instancing a class in a domain, load the default
19607 vaules for static fields from the constant table. Fix System.Enum to
19609 * icall.c: implement Object::GetType() internalcall. Implemented
19610 MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19611 Fixed checking of binding flags in find_members().
19612 * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19613 * reflection.c: handle enumerations when writing to the constant
19614 table. Use a different object cache for types.
19617 2002-02-22 Dietmar Maurer <dietmar@ximian.com>
19619 * object.c (mono_object_isinst): fix for arrays
19621 * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19623 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19625 * object.c: don't use mprotect () and fix intern pool hash table
19626 lookup for big endian systems.
19628 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19630 * icall.c: change type_is_subtype_of () signature.
19632 2002-02-21 Mark Crichton <crichton@gimp.org>
19634 * rand.c, rand.h: Added random number generator for
19635 System.Security.Cryptography classes.
19637 * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19639 * icall.c: Added System.Security.Cryptography calls.
19641 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19643 * class.c, icall.c, metadata.c: better support for pointer types.
19644 Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19645 * reflection.c: Add support for getting custom attrs for properties
19646 and simplify some code.
19648 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19650 * icall.c: change getToken () and add custom attribute GetBlob()helper
19652 * reflection.h: add custom attrs array to the reflection builder structures.
19653 * reflection.c: encode and emit custom attributes for all the relevant
19654 reflection objects. Cache fieldref and methodref tokens. Change
19655 mono_image_create_token() interface to take a MonoDynamicAssembly.
19656 More complete custom attributes decoder. Load custom attributes for
19657 Assembly, Field, Method and Constructor objects, too. Make the
19658 returned array an Attribute[] one, not object[]. Added
19659 mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19660 custom attribute constructor.
19662 2002-02-20 Dick Porter <dick@ximian.com>
19666 * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19667 problem code out for now).
19669 2002-02-19 Radek Doulik <rodo@ximian.com>
19671 * object.c (mono_ldstr): use hash table to avoid multiple swapping
19673 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19675 * icall.c: register the GetCustomAttributes method.
19676 * object.c, object.h: add mono_string_new_len ().
19677 * reflection.h, reflection.c: added mono_runtime_invoke(),
19678 mono_install_runtime_invoke(). Added
19679 mono_reflection_get_custom_attrs () to load custom attributes and
19680 create the attribute objects.
19682 2002-02-19 Dick Porter <dick@ximian.com>
19683 * threads-dummy-types.c:
19684 * threads-dummy-types.h:
19687 * threads-pthread-types.c:
19688 * threads-pthread-types.h:
19689 * threads-pthread.c:
19690 * threads-pthread.h: Deleted obsolete files
19692 2002-02-19 Dietmar Maurer <dietmar@ximian.com>
19694 * class.c (mono_class_vtable): runtime init the class when we
19695 allocate static class data.
19697 * icall.c (ves_icall_System_Array_SetValue): check for null values.
19699 * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19700 and String - but we will need generic marshalling support in the
19702 (mono_init): set the domain name in a ms compatible way
19704 * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19707 2002-02-18 Dietmar Maurer <dietmar@ximian.com>
19709 * object.c (mono_array_clone): use alloca() instead of g_malloc
19712 * appdomain.c (mono_domain_unload): impl.
19714 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19716 * appdomain.c, object.c: fix intern pool implementation.
19717 * class.c: fix alignment code.
19719 2002-02-16 Radek Doulik <rodo@ximian.com>
19721 * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19722 and s2 > s1, just copy lower bytes to be compatible with little
19723 endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19724 (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19726 * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19727 force big_endian to be 1 for big endian machines
19728 (ves_icall_iconv_new_decoder): ditto
19730 2002-02-16 Jeffrey Stedfast <fejj@ximian.com>
19732 * socket-io.c (convert_sockopt_level_and_name): If the system
19733 doesn't define SOL_IP or SOL_TCP, get them by hand using
19734 getprotobyname() and caching the values (because this could be a
19736 (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19737 Use the appropriate struct when the system does support it. Ie,
19738 not all systems have struct ip_mreqn so use struct ip_mreq when
19741 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19743 * reflection.c: handle finally clauses.
19745 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19747 * socket-io.c: use g_snprintf() instead of snprintf.
19749 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
19751 * reflection.c (mono_param_get_objects): Cast second argument to
19752 mono_method_get_param_names to a const char** to silence the
19755 * appdomain.c (mono_domain_assembly_open): Put parens around the
19756 truth statement in the for-loop.
19758 * unicode.c (iconv_convert): Got rid of a compiler warning about
19759 int i being unused when the system has a new iconv.
19760 (iconv_get_length): Same.
19762 * image.c (load_class_names): Cast the second argument to
19763 g_hash_table_insert() to char* to hush compiler warnings about the
19765 (mono_image_open): Same here.
19767 * socket-io.c: Don't conditionally include sys/filio.h or
19768 sys/sockio.h here anymore since we now get them from
19769 io-layer/io-layer.h
19770 (inet_pton): If the system doesn't support inet_aton, implement
19771 using inet_addr and also #define INADDR_NONE if it isn't defined
19774 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19776 * metadata.c, metadata.h: added function to get packing and size info
19778 * reflection.h, reflection.c: handle field RVA data. Save info about
19779 the table layout if needed. Assign typedef indexes to all the types
19780 before dumping the info about them to avoid forward reference problems.
19782 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
19784 * socket-io.c (convert_sockopt_level_and_name): ifdef
19785 SO_ACCEPTCONN because it is not defined on my system (old debian)
19787 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19789 * opcode.c: use stddef.h to get NULL.
19791 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
19793 * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19794 for FIONBIO, FIONREAD and SIOCATMARK.
19795 (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19796 define INADDR_NONE and besides, inet_addr() is deprecated and
19797 should not be used. Use inet_pton() instead - it also has the
19798 added bonus that it can easily handle IPv6 addresses as well.
19799 (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19801 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19803 * decimal.c: remove _MSC_VER conditional.
19805 2002-02-13 Dick Porter <dick@ximian.com>
19808 * icall.c: Internal calls for Blocking, Select, Shutdown,
19809 GetSocketOption and SetSocketOption
19811 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19813 * assembly.cs: better resolver: use it instead of some kludgy
19816 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19818 * reflection.c: the best way to speed-up the compiler is to avoid
19821 2002-02-13 Dietmar Maurer <dietmar@ximian.com>
19823 * class.c (mono_class_vtable): changed the object layout
19824 (obj->vtable->class).
19825 (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19827 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19829 * assembly.c: look for assemblies in the assembly dir, too.
19831 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19833 * class.c: fix thinko in mono_class_from_type().
19835 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19837 * exception.h, exception.c: added TypeLoadException.
19838 * object.h, object.c: added mono_array_clone ().
19839 * icall.c: handle throwOnError in AssemblyGetType().
19840 Added Array.Clone().
19841 * opcode.h, opcode.c: use a single value for the opcode val.
19842 Compile fix for non-gcc compilers.
19844 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19846 * opcodes.c, opcodes.h: export interesting info about opcodes.
19848 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
19850 * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19853 * class.c (class_compute_field_layout): set element_class for enums
19854 (mono_class_create_from_typedef): set element_class for normal classes
19856 * icall.c (ves_icall_System_Enum_get_value): impl.
19858 * class.c (mono_class_create_from_typedef): do not set valuetype
19859 flag for System.ValueType and System.Enum
19861 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
19863 * unicode.c (iconv_convert): fix big endian problem.
19865 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19867 * class.c: add asserts if we are ever going to scribble over memory.
19868 * socket-io.c: not all systems have AF_IRDA defined.
19870 2002-01-31 Dietmar Maurer <dietmar@ximian.com>
19872 * class.c (class_compute_field_layout): do not consider static
19873 fields to compute alignment
19875 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
19877 * appdomain.c (mono_appdomain_get): impl.
19878 (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19880 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19882 * icall.c: ignore "file://" prefix when loading an assembly.
19884 2002-01-23 Dick Porter <dick@ximian.com>
19888 * Makefile.am: Added socket support
19890 2002-01-23 Miguel de Icaza <miguel@ximian.com>
19892 * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19893 code back. This should return the assemblies that are loaded by
19894 the runtime on behalf of an application domain.
19896 The current implementation is still broken, it just returns every
19897 assembly loaded, but until we get real applications domain this
19900 2002-01-23 Dietmar Maurer <dietmar@ximian.com>
19902 * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19905 2002-01-23 Miguel de Icaza <miguel@ximian.com>
19907 * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19908 the mono_class_from_name lookup.
19909 (ves_icall_get_parameter_info): ditto.
19910 (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19912 (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19914 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19916 * class.c: load also nested classes on class init.
19917 System.ValueType instance methods gets passed boxed
19918 values, unless methods in derived classed that get a pointer to the
19920 * icall.c: use better name parsing code in GetType().
19921 * image.c, image.h: add mono_image_loaded ().
19922 * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19923 * reflection.c, reflection.h: added mono_reflection_parse_type().
19925 2002-01-22 Veronica De Santis <veron78@interfree.it>
19927 * icall.c : Added mapping of internal calls for Manual and Auto reset events
19928 * threads.c : Added the implementation of internal calls for events
19929 * threads.h : Added prototypes of internal calls for events
19931 2002-01-21 Radek Doulik <rodo@ximian.com>
19933 * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19935 2002-01-21 Dietmar Maurer <dietmar@ximian.com>
19937 * class.c (mono_class_init): set min_align to 1 (instead of 0)
19938 (mono_class_value_size): use min_align
19940 2002-01-20 Dick Porter <dick@ximian.com>
19943 * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19944 so it compiles on w32.
19946 2002-01-17 Dietmar Maurer <dietmar@ximian.com>
19948 * metadata.c (mono_type_stack_size): impl.
19950 * class.c (mono_class_get_field): impl. memberref token
19952 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19954 * icall.h : Added the internal calls mapping for CreateMutex_internal
19955 and ReleaseMutex_internal.
19956 * threads.h : Added the prototype of mutexes internal calls.
19957 * threads.c : Added the implementations of mutexes internal calls.
19959 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19961 * metaparse.h: removed unused file.
19962 * reflection.c, reflection.h: added stream_data_align () function
19963 to align data in streams and keep stream aligned. Add support for
19964 exception support in method headers.
19966 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19968 * unicode.c: make iconv_convert () return the number of bytess written
19969 in the output buffer.
19971 2002-01-15 Dick Porter <dick@ximian.com>
19972 * threads.c: Make the runtime's idea of infinite timeouts coincide
19973 with the class library's
19975 Fix a particularly egregious bug in mono_thread_cleanup(). That
19976 code was so utterly bogus it must have been written on a Monday.
19978 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19980 * reflection.h: add subtypes field to TypeBuilder.
19981 * reflection.c: encode constants for literal fields.
19982 Handle subtypes. Fix user string token (and add a zero byte)
19985 2002-01-14 Dietmar Maurer <dietmar@ximian.com>
19987 * class.c (mono_class_init): bug fix: assign slot numbers for
19990 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19992 * reflection.c: don't try to output a code RVA for abstract methods.
19993 Small fixes for method header format. Output parameter info to the
19994 ParamDef table. Save method overriding info to MethodImpl table.
19995 Fix property support. Allow typedef.extends to be a type in the
19997 * verify.c: fix off-by-one error.
19999 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
20001 * class.c: fix mono_class_from_mono_type () for szarray types.
20002 Remove unused cache check in mono_class_from_type_spec().
20003 * icall.c: *type_from_name () functions handle simple arrays and byref.
20004 * reflection.c: handle byref and szarray types. Handle methods without
20005 body (gets P/Invoke compilation working). Handle types and fields in
20007 * reflection.h: add rank to MonoTypeInfo.
20009 2002-01-10 Dick Porter <dick@ximian.com>
20011 * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
20014 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20016 * icall.c: initialize class in type_from_handle ().
20017 Loop also in parent classes for get_method ().
20018 * reflection.c: properly encode class and valuetype types.
20019 Start on encoding TypeBuilder types. Handle fieldrefs.
20020 Use correct length when registering a user string.
20021 Handle ConstructorBuilder and MonoMethod in get_token ().
20022 Make mono_type_get_object () aware of cached types.
20023 * object.c: back out change to mono_string_new ().
20025 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
20026 * object.c: mono_string_new should return a NULL when the string
20027 passed in is NULL -- not try to deference it.
20029 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20031 * icall.c: hack to make IsSubType work for TypeBuilders.
20032 * reflection.c: emit constructors before methods.
20033 Retrieve param names in mono_param_get_objects().
20035 2002/01/05 Nick Drochak <ndrochak@gol.com>
20037 * Makefile.am: fix list of headers and sources so automake 1.5
20038 doesn't complain. Removed \# at end of list.
20040 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20042 * reflection.c: get token for a method ref. Set return type of
20043 constructor to void.
20044 * loader.c: debug message.
20045 * class.c: typo fix.
20047 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
20049 * icall.c: fix array init with rank > 1. FindMembers
20050 loops in parent class as well.
20051 * image.c: do not insert nested types in name cache.
20052 * reflection.c: warning fix.
20053 * reflection.h: add override method (for interface impl).
20055 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
20057 * metadata.c: fix customattr decoding.
20059 2001-12-21 Miguel de Icaza <miguel@ximian.com>
20061 * rawbuffer.cs: Added native Win32 implementation, avoids using
20062 mmap on Cygwin. This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
20064 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
20066 * class.c: make the low-level routines handle the cache.
20068 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
20070 * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
20072 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
20074 * class.c: fix mono_array_element_size() for objects.
20075 * class.h, class.c: add properties to MonoClass and load them
20077 * icall.c: check with isinst() when assigning a value to an array
20078 instead of requiring the classes to match exactly.
20079 Implemented icall for System.Type::GetType().
20080 Implemented icalls to get ParameterInfo, ProprtyInfo and info about
20081 enums. Handle bindingflags when looking for methods and fields.
20082 * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
20083 and mono_metadata_methods_from_property().
20084 * reflection.h, reflection.c: added structures for propreties,
20085 parameters and enums. Implemented mono_property_get_object() and
20086 mono_param_get_objects().
20088 2001-12-18 Dick Porter <dick@ximian.com>
20090 * file-io.c: Use mono_string_to_utf16() instead of
20091 mono_string_chars()
20093 * object.c: Added mono_string_to_utf16(), which copies the non
20094 NULL-terminated MonoString into a new double-null-terminated
20097 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
20099 * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20101 2001-12-16 Dietmar Maurer <dietmar@ximian.com>
20103 * file-io.c: raise exceptions if handle is invalid.
20105 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20107 * assembly.c: yet another check for mscorlib.
20108 * class.c, class.h: load nesting info for classes.
20109 * icall.c: many new functions to support the Reflection classes.
20110 * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20111 * reflection.h, reflection.c: mono_image_create_token(),
20112 mono_assembly_get_object(), mono_type_get_object(),
20113 mono_method_get_object(), mono_field_get_object(): methods to return
20114 objects that parallel the C representation of assemblies, types,
20117 2001-12-11 Dick Porter <dick@ximian.com>
20120 * file-io.c: Internal calls for file IO.
20122 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20124 * tabledefs.h: missing FileAttributes.
20125 * verify.h, verify.c: use is_valid_string () to simplify and check for
20126 valid strings more correctly. Fix warnings and speeling.
20127 Check more tables: Filed, File, ModuleRef, StandAloneSig.
20128 Check code: branches, maxstack, method calls.
20130 2001-12-04 Dietmar Maurer <dietmar@ximian.com>
20132 * object.c (mono_object_allocate): removed static, so that the jit
20133 can allocate value types.
20135 * icall.c (ves_icall_System_DateTime_GetNow): impl.
20137 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20139 * class.c: init enum types right away and register the
20140 token->MonoClass map in mono_class_create_from_typedef ().
20141 * verify.h, verify.c: first cut of the verifier.
20142 * pedump.c: add --verify switch to verify metadata tables.
20143 * tabledefs.h: add some missing enums.
20145 2001-11-30 Dietmar Maurer <dietmar@ximian.com>
20147 * class.c (mono_install_runtime_class_init): impl.
20148 (mono_class_init): renamed mono_class_metadata_init to
20149 mono_class_init, also removed the metadata_inited flag
20151 * object.c (mono_object_isinst): use faster algorithm
20153 2001-11-30 Radek Doulik <rodo@ximian.com>
20155 * mono-endian.h: reverted last change
20156 added function prototypes
20158 * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20159 add mono-endian.c back
20161 * mono-endian.c: returned back, as Paolo pointed out, it's needed
20162 for unaligned access, I've mistaked it with endianess. I am
20164 (mono_read16): fix reverted endianess
20165 (mono_read64): ditto
20166 (mono_read32): ditto
20168 2001-11-30 Dick Porter <dick@ximian.com>
20170 * exception.c: Implement mono_exception_from_name()
20172 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20174 * metadata.h, metadata.c: remove params_size and locals_size and their
20175 calculation from the metadata code: they are only usefult to the
20178 2001-11-29 Radek Doulik <rodo@ximian.com>
20180 * object.c (mono_ldstr): swap bytes here, it's probably not the
20181 best place, but works for me now, I'll redo it once I know mono
20182 better, also note that I add PROT_WRITE and don't reset back, also
20183 note that it's only affects big endians, so x86 should be OK
20185 * mono-endian.h (read16): use just glib macros for both endians
20187 * mono-endian.c: removed as glib macros are used in in
20188 mono-endian.h so we don't need to care about endianess for read
20189 macros as glib does that for us already
20191 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20193 * class.h, class.h: take minimum alignment into consideration so
20194 that the fields of a class remain aligned also when in an array.
20196 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20198 * loader.h, loader.c: add mono_method_get_param_names().
20199 * class.c: 0-init class fields.
20201 2001-11-26 Dick Porter <dick@ximian.com>
20205 * threads.c: New file that handles System.Threading on all platforms
20208 * object.h: Remove the synchronisation struct from MonoObject,
20209 replace it with a pointer that gets initialised on demand
20211 * Makefile.am: Replace all the system-specific threading code with
20212 a single file that uses the new wrapper library
20214 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20216 * class.c, class.h: add mono_install_trampoline() so that the runtime
20217 can register a function to create a trampoline: removes the ugly
20218 requirement that a runtime needed to export arch_create_jit_trampoline.
20219 * object.h, object.c: added mono_install_handler() so that the runtime
20220 can install an handler for exceptions generated in C code (with
20221 mono_raise_exception()). Added C struct for System.Delegate.
20222 * pedump.c: removed arch_create_jit_trampoline.
20223 * reflection.c: some cleanups to allow registering user strings and
20224 later getting a token for methodrefs and fieldrefs before the assembly
20226 * row-indexes.h: updates and fixes from the new ECMA specs.
20228 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20230 * class.h, class.c: add enum_basetype field to MonoClass.
20231 * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20232 to get index in the constant table reated to a field, param or
20234 * reflection.h, reflection.c: handle constructors. Set public-key and
20235 version number of the built assembly to 0.
20236 * row-indexes.h: update from new ECMA spec.
20238 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20240 * class.h, class.c: add a max_interface_id to MonoClass.
20241 * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20242 since it's used to do that. Added mono_type_type_from_obj().
20243 Make GetType() return NULL instead of segfaulting if the type was not
20244 found. Handle simple arrays in assQualifiedName.
20245 * object.h: add a struct to represent an Exception.
20246 * reflection.c: output call convention in method signature.
20247 Add code to support P/Invoke methods and fixed offsets for fields.
20249 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20251 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20253 * icall.c: use mono_array_addr instead of array->vector: fixes the
20254 reflection image writing.
20255 * reflection.c: init call convention byte to 0 in method signature.
20256 Encode the property signature. Don't output property-related methods
20257 twice. Really process the properties for a type (don't cast a field to
20258 a property, my mom always told me that).
20259 Fix 64 bit issues in pointer alignment in a different and more
20262 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
20264 * loader.h: Removed type class from MonoDefaults, added monotype
20266 * loader.c: Loaded MonoType, removed loading of Type
20268 * icall.c (my_mono_new_object): Now returns a System.MonoType,
20269 and fills in System.Type._impl with a RuntimeTypeHandle rather
20270 than the actual MonoClass *
20272 (ves_icall_type_from_handle): change from type_class to
20275 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20278 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20281 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20283 (ves_icall_System_Reflection_Assembly_GetType): implemented
20285 (ves_icall_System_MonoType_assQualifiedName): implemented
20287 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20289 2001-11-09 Miguel de Icaza <miguel@ximian.com>
20291 * assembly.c (mono_assembly_open): Implement a cache for the
20294 (mono_assembly_close): only destroy the assembly when the last
20297 2001-11-09 Dick Porter <dick@ximian.com>
20299 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20301 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
20303 * class.c (mono_class_metadata_init): bug fix: compute the right slot
20305 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20307 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20308 from Martin Weindel.
20309 * object.h: add mono_string_chars ().
20311 2001-11-07 Miguel de Icaza <miguel@ximian.com>
20313 * reflection.c (build_compressed_metadata): Eliminates warnings
20314 and uses 64-bit clean code.
20316 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20317 (mono_type_equal): Change signature to eliminate warnings.
20319 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20321 * icall.c, loader.c: remove the internalcall array constructors.
20322 Changes to match the new MonoArray structure.
20323 * object.h, object.c: an array object doesn't allocate an extra
20324 vector. Add mono_array_new_full () to create jagged arrays easily.
20326 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20328 * metadata.h, metadata.c: add mono_metadata_field_info () to
20329 retreive all the info about a field from vairous tables.
20330 * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20331 * class.h, class.c: augment MonoClassField with more info.
20332 Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20333 policy and load a field's RVA if needed.
20335 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
20337 * class.c (mono_class_metadata_init): create a trampoline for all
20338 virtual functions instead of actually compiling them.
20340 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20342 * class.h, class.c: include name in MonoClassField.
20343 * class.c: fix fundamental type of System.Object and System.String.
20344 Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20346 * icall.c: remove internalcalls for the Reflection stuff that is now
20348 * loader.c: mono_field_from_memberref () implementation.
20349 * mono-endian.c: thinko (s/struct/union/g).
20350 * object.c, object.h: make the mono_string_* prototypes actually use
20351 MonoString instead of MonoObject.
20352 * reflection.c, reflection.h: updates for changes in the reflection
20353 code in corlib: we use C structures that map to the actual C# classes.
20354 Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20355 fat method header if needed and use the info from the ILGenerator for
20356 methods. Handle fields in types. Misc fixes.
20358 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
20360 * class.c (mono_class_metadata_init): bug fix: always allocate
20361 space for static class data
20363 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
20365 * class.c (mono_compute_relative_numbering): use relative
20366 numbering to support fast runtime type checks.
20368 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
20370 * class.c (mono_class_create_from_typeref): added debugging output
20371 to print class name when MonoDummy is returned instead of real class
20373 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
20375 * class.c (mono_class_metadata_init): interface offset table now
20376 contains pointers into the vtable - this is more efficient for the jit
20378 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
20380 * class.c (mono_class_metadata_init): use a temporary vtable (the
20381 old algorithm only worked for the interpreter, but not for the jit)
20383 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
20385 * loader.c (method_from_memberref): use mono_class_get to get the
20386 class of an array instead of using System.Array directly.
20387 (mono_get_method): also add MEMBERREF methods to the method cache
20388 which usefull for arrays.
20390 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
20392 * pedump.c (arch_compile_method): added to compute vtable entry
20394 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20395 number of interfaces.
20397 * class.h: merged MonoArrayClass into MonoClass
20399 * class.c (mono_class_create_from_typedef): compute the vtable size and
20400 allocate space to include the vtable inside MonoClass
20401 (mono_class_metadata_init): initialize the vtable
20403 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20405 * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20406 Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20407 * image.c: endian fixes by Laurent Rioux.
20408 * object.h, object.c: rename MonoStringObject to MonoString and
20409 MonoArrayObject to MonoArray. Change some function names to conform to
20410 the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20411 guint16* as first argument, so don't use char*.
20412 Provide macros to do the interesting things on arrays in a portable way.
20413 * threads-pthread.c: updates for the API changes and #include <sched.h>
20414 (required for sched_yield()).
20415 * icall.c: updates for the API changes above.
20416 * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20417 platforms that need them.
20419 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20421 * class.c: set the correct type for all the fundamental
20422 type when loading the class.
20424 2001-10-05 Dick Porter <dick@ximian.com>
20426 * threads-pthread.c (pthread_mutex_timedlock): Simple
20427 compatibility version for C libraries that lack this call.
20429 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20431 * class.c: MonoTypes stored in MonoClass are stored as
20432 fundamental MonoTypes when the class represents a
20433 fundamental type (System.Int32, ...).
20434 The TypeHandle return by ldtoken is a MonoType*.
20435 * icall.c: ves_icall_get_data_chunk () write out all the
20436 PE/COFF stuff. Implement ves_icall_define_method (),
20437 ves_icall_set_method_body (), ves_icall_type_from_handle ().
20438 * image.c: properly skip unknown streams.
20439 * loader.h, loader.c: add type_class to mono_defaults.
20440 * metadata.c, metadata.h: export compute_size () as
20441 mono_metadata_compute_size () with a better interface.
20442 Typo and C&P fixes.
20443 * pedump.c: don't try to print the entry point RVA if there is no entry point.
20444 * reflection.c, reflection.h: many cleanups, fixes, output method
20445 signatures and headers, typedef and typeref info, compress the metadata
20446 tables, output all the heap streams, cli header etc.
20447 * row-indexes.h: typo fixes.
20449 2001-10-04 Dick Porter <dick@ximian.com>
20451 * object.h: Add a synchronisation mutex struct to MonoObject
20453 * object.c (mono_new_object): Initialise the object
20454 synchronisation mutexes
20456 * icall.c: System.Threading.Monitor internal calls
20458 * threads-pthread.h:
20459 * threads-pthread.c: System.Threading.Monitor internal calls
20461 * threads-types.h: New file, includes the system-specific thread
20464 * threads-pthread-types.h:
20465 * threads-pthread-types.c: New files, handle pthread-specific
20466 synchronisation types
20468 * threads-dummy-types.h:
20469 * threads-dummy-types.c: New files of dummy support for
20470 thread-specific types
20474 * pedump.c: include mono-endian.h not endian.h
20476 * Makefile.am: More threads files.
20477 Name mono-endian.h not endian.h
20479 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20481 * Makefile.am, reflection.h, reflection.c: move here the reflection related
20482 stuff and implement a few more bits.
20483 * icall.c: a field needs to be dereferenced twice. Do not use the same
20484 name for two variables in the same scope.
20485 * image.c, image.h: cleanups.
20487 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
20489 * class.c (mono_class_metadata_init): bug fix: compute the right size
20491 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20493 * icall.c: implemented some of the Reflection internalcalls.
20494 * image.c, image.h: start writing out the PE/COFF image.
20495 * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20496 that does the reverse than decode_blob_size ().
20497 * object.c: use mono_metadata_encode_value (). Move here
20498 temporary implementation of mono_string_to_utf8 ().
20499 * rawbuffer.c: make malloc_map static.
20501 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20503 * metadata.c: fix type comparison for arrays.
20504 * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20505 Added a couple of new classes to monodefaults.
20506 * icall.c: added a couple of Reflection-related internalcalls.
20507 * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20508 Added a byval_arg MonoType to MonoClass.
20510 2001-09-28 Dick Porter <dick@ximian.com>
20513 * threads-pthread.h:
20514 * threads-pthread.c: Implemented internal calls for
20515 LocalDataStoreSlot operations. Applied mutexes around all shared
20516 data. Reworked the thread creation and Start() operations to
20517 avoid a race condition.
20520 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20522 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20524 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20526 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20528 * class.c, loader.c: warn and return NULL instead of erroring out.
20529 * icall.c: added System.AppDomain::getCurDomain().
20530 * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20532 2001-09-25 Dick Porter <dick@ximian.com>
20534 * threads-pthread.h:
20535 * threads-pthread.c: Implemented timed thread joining and added
20536 System.Threading.Thread::Join_internal internal call
20538 * icall.c: Added System.Threading.Thread::Join_internal internal call
20541 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20543 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20545 * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20546 mono_string_intern () to implement the semantics of the ldstr opcode
20547 and the interning of System.Strings.
20548 * icall.c: provide hooks to make String::IsIntern and String::Intern
20551 2001-09-23 Dick Porter <dick@ximian.com>
20554 * threads-dummy.h: New files of dummy threading routines
20556 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20557 support code based on system specifics
20559 Rename PTHREAD_LIBS to THREAD_LIBS
20561 2001-09-23 Dick Porter <dick@ximian.com>
20563 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20564 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20566 (mono_thread_init): Set up a Thread object instance to return when
20567 the main thread calls Thread.CurrentThread
20568 (mono_thread_cleanup): Wait for all subthreads to exit
20570 * icall.c: New internal calls for System.Threading.Thread::Sleep
20571 (including Schedule) and CurrentThread
20573 * threads.h: New file, to insulate thread-specific stuff from the
20576 2001-09-21 Dick Porter <dick@ximian.com>
20578 * threads-pthread.h:
20579 * threads-pthread.c: New file, for handling pthreads-style
20580 threading support. Start() now starts a new thread and executes
20581 the ThreadStart delegate instance.
20583 * icall.c: Added the internalcall for
20584 System.Threading.Thread::Start_internal
20586 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20588 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20590 * loader.c: work around the different signatures for delegates
20591 constructors csc generates in compiled code vs the ones compiled in mscorlib.
20593 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20595 * class.h, class.c: add mono_class_get_field_from_name ().
20596 * *: Fix C comments and other ANSI C issues.
20598 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20600 * endian.h, assembly.c: fix some endianness issues.
20602 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20604 * loader.h, load.c: add delegate_class to mono_defaults.
20605 Handle runtime provided methods in mono_get_method ().
20607 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
20609 * loader.c (mono_get_method): use pinvoke for internal call
20611 * icall.c: use pinvoke for internal call
20613 * loader.c (method_from_memberref): set the method name
20615 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20617 * metadata.c: help the compiler generate better code for
20618 mono_class_from_mono_type ().
20620 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
20622 * class.c (mono_class_metadata_init): delayed computing of the
20623 class size to mono_class_metadata_init ()
20625 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20627 * class.c, class.h: add an interfaces member to MonoClass.
20628 * image.c, image.h: add assembly_name field to MonoImage
20629 from the assembly table.
20630 * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20632 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20634 * class.c: Handle Array in mono_class_from_mono_type ().
20635 * metadata.c, pedump.c: some endian fixes.
20637 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20639 * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20640 * metadata.c: fix small problem introduced with the latest commit.
20642 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20644 * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20645 We don't need a MonoMetadata pointer anymore to compare signatures in
20646 mono_metadata_signature_equal (), update callers.
20647 Reduced memory usage an number of allocations for MonoMethodHeader and
20648 MonoMethodSignature.
20650 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20652 * metadata.c: added compare for szarray.
20654 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20656 * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20657 and add a couple more types to it and mono_defaults. Give an hint on
20658 classes that need implementing in our corlib and are referenced
20661 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20663 * class.h, class.c: keep track if a class is also an Enum.
20664 * loader.c: Implement a couple more types for use in libffi
20665 marshalling. Gives better diagnostics when failing to dlopen
20666 a library. Set method->klass for P/Invoke methods, too.
20668 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20670 * class.c, class.h: add a MonoType this_arg to MonoClass that
20671 represents a pointer to an object of the class' type that
20672 can be used by the interpreter and later the type cache.
20673 Add best guess alignment info for valuetype objects.
20675 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20677 * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20678 into MonoType: one less level of indirection and allocation and
20679 simplifies quite a bit of code. Added cache for MonoTypes that are
20680 used frequently, so that we don't need to allocate them all the time.
20682 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
20684 * class.c (mono_class_create_from_typedef): System.Enum is also a
20685 value type, although it does not derive from System.ValueType
20686 (maybe a bug in the ms compiler?)
20688 * metadata.c (mono_type_size): return the right size for value types
20690 * loader.c (mono_get_method): only initialize method header if not abstract
20692 * class.c (mono_class_from_mono_type): use mono_default values.
20694 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
20696 * *: use MonoClass pointers instead of <type_tokens>
20698 * class.h: new flag: metadata_inited.
20700 * class.c (mono_class_metadata_init): impl.
20701 (mono_class_instance_size): impl.
20702 (mono_class_data_size): impl.
20704 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20706 * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20707 MonoClass now has the name and name_space fields.
20708 MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20709 mono_get_method () takes and optional MonoClass as argument.
20710 Removed mono_typedef_from_name() and added mono_class_token_from_name()
20711 instead that takes advantage of a map from class names to typedef
20712 tokens in MonoImage.
20714 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20716 * metadata.c: zero is not a valid alignment boundary.
20717 Merge MONO_TYPE_VOID in default decoding code.
20719 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
20721 * image.h: merged MonoMetadata into MonoImage
20723 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20724 identify the type of elements.
20726 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20728 * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20729 * cil-coff.h: split MonoMSDOSHeader and add size info.
20730 * image.c: add some consistency checks.
20731 * metadata.c: fix row size computation: one programmer
20732 error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20733 add explanation for the locator routine.
20734 Fix decoding of size in method header.
20736 2001-08-20 Miguel de Icaza <miguel@ximian.com>
20738 * assembly.c (g_concat_dir_and_file): Use _S for string concat.
20739 (g_concat_dir_and_file): Bring g_concat_dir_and_file
20740 function from gnome-libs. This uses the right path separator
20741 based on the OS, and also works around a bug in some systems where
20742 a double slash is not allowed.
20743 (default_assembly_name_resolver): Use g_concat_dir_and_file
20744 (mono_assembly_open): ditto.
20746 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
20748 * metadata.c (mono_metadata_signature_equal): impl.
20750 * *: void is now a realy MonoType (instead of using NULL)
20752 * metadata.c (do_mono_metadata_parse_type): use
20753 mono_metadata_parse_type to parse void value.
20755 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20757 * metadata.c, metadata.h: in the signature and method header store
20758 only the space required for holding the loca vars and incoming arguments.
20760 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
20762 * metadata.c (do_mono_metadata_parse_type): treat void like any
20763 other type (instead of assigning NULL);
20765 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
20767 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20769 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
20771 * image.c (do_mono_image_open): added a cache for arrays.
20773 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20775 * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20776 decode a single column from a row in a metadata table and changes
20777 to take advantage of it in the typedef locator (gives a nice speed up).
20778 Store offset info for function params.
20780 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
20782 * image.h (MONO_IMAGE_IS_CORLIB): removed
20784 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20786 * assembly.c: how could mono_assembly_close () had ever worked?
20787 * metadata.c, metadata.h: provide offset info for local vars.
20788 Implement mono_type_size () to take care of alignment as well
20789 as size (it was mono_field_type_size in cli/class.c before).
20791 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
20793 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20795 * assembly.h (CORLIB_NAME): set to corlib.dll
20797 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20799 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20801 * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20802 cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20803 tokentype.h: massive namespace cleanup.
20805 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20807 * metadata.h, metadata.c: decode exception clauses when parsing method header.
20809 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
20811 * metadata.c (mono_metadata_free_type): added check for type !=
20812 NULL (void) before calling mono_metadata_free_type()
20814 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20816 * metadata.h, row_indexes.h: added header with enumerations to use
20817 to index in the columns from tables in metadata and to decode coded
20818 tokens: we should start using this instead of embedding magic numbers
20821 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20823 * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20824 Move metadata_t info from cli_image_info_t to MonoImage, where
20825 it's easily accessible. Changed all the uses accordingly.
20826 Added the method and class caches to MonoImage.
20827 * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20828 and mono_metadata_decode_value () signature to be more consistent
20829 with the other parse functions (and simplify code). Taken advantage
20830 of zero-length array allocation with GCC. Removed reduntant (and
20831 wrong) MonoFieldType struct and use MonoParam instead. Changed
20832 mono_metadata_parse_field_type () to use common code for parsing.
20833 Added mono_metadata_typedef_from_field () and
20834 mono_metadata_typedef_from_method () to lookup a typedef index from a
20835 field or method token.
20836 Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20838 2001-07-23 Miguel de Icaza <miguel@ximian.com>
20840 * metadata.c (mono_metadata_parse_field_type): Implement.
20841 (do_mono_metadata_parse_type): Split engine from
20842 mono_metadata_parse_type, so that we can create smaller structures
20843 for things that just have one pointer to the MonoType (look at
20846 2001-07-20 Miguel de Icaza <miguel@ximian.com>
20848 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20849 as Jan Gray found out, it is incorrect.
20851 2001-07-18 Miguel de Icaza <miguel@ximian.com>
20853 * assembly.c: Implement asssembly loading. This loads an image
20854 and loads all the referenced assemblies. Come to think of it, we
20855 could always do lazy loading of the assemblies.
20857 * image.c (mono_image_open): Keep loaded images in a hashtable.
20859 * image.h (MonoImage): Add reference count.
20861 2001-07-17 Miguel de Icaza <miguel@ximian.com>
20863 * assembly.c (mono_assembly_open): Keep track of the file name in
20864 case the assembly has no ASSEMBLY table.
20866 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
20869 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20871 * metadata.c, metadata.h: decode local vars in method header
20872 parse function. Change callers accordingly.
20874 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20876 * metadata.h, cil-coff.h: protect against multiple inclusion.
20877 Added some new structures to hold information decoded from metadata:
20878 MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20879 and relevant decoding/free functions.
20880 * metadata.c: implement decoding functions. Add warning for out of bounds
20881 index in mono_metadata_locate(). Implement mono_get_method () to retreive
20882 all the info about a method signature and invocation. Remove check on
20883 uninitialized local var in parse_mh() and fix memory leak.
20885 2001-07-12 Miguel de Icaza <miguel@ximian.com>
20887 * metadata.h: More macros.
20889 * tokentype.h: New file.
20891 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20893 * assembly.c: added a consistency check and initialize
20894 some structures with g_new0().
20895 * metadata.c: fixed a couple more bugs in table size computation
20896 and add other checks for out-of bound access to metadata.
20898 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20900 * metatada.c: fix bugs computing table sizes. Spew a
20901 warning when index in string heap is out of bounds.
20903 2001-07-04 Miguel de Icaza <miguel@ximian.com>
20905 * metadata.h: Add a couple of macros to manipulate tokens.
20907 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20909 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20910 cli_section_tables).
20912 2001-07-01 Miguel de Icaza <miguel@ximian.com>
20914 * metadata.c (mono_metadata_user_string): New function, provides
20915 access to the UserString heap.
20917 2001-06-27 Miguel de Icaza <miguel@ximian.com>
20919 * metadata.c: Add inline documentation.
20921 2001-06-26 Miguel de Icaza <miguel@ximian.com>
20923 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20926 2001-06-22 Miguel de Icaza <miguel@ximian.com>
20928 * typeattr.h: New file, TypeAttribute flags.
20930 2001-06-21 Miguel de Icaza <miguel@ximian.com>
20932 * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20933 mono_assembly_ensure_section): Section loading code.
20934 (load_section_tables): Load the sections.
20936 * mono/metadata/metadata.c (mono_metadata_locate_token,
20937 mono_metadata_locate): Functions to locate the information
20938 definition given a token or a table and an index.
20939 (mono_metadata_compute_table_bases): New.
20940 (compute_size): New function to compute the sizes of the various
20943 * mono/metadata/metadata.h: Finish listing the different index
20946 * mono/metadata/pedump.c: Improve to dump new information.
20948 2001-06-19 Miguel de Icaza <miguel@ximian.com>
20950 * mono/metadata/metadata.c: Entered all the tables matching
20953 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2