2 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
4 * gc.c: register a new weak link only if the object is non-null
7 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
9 * culture-info.h : short time pattern too.
11 2005-05-26 Atsushi Enomoto <atsushi@ximian.com>
13 * culture-info.h : expand long time pattern string length.
15 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
17 * culture-info-table.h : update (more French date format; #72788).
19 2005-05-25 Zoltan Varga <vargaz@freemail.hu>
21 * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
22 the method is static. Fixes #75029.
24 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
26 * reflection.c: Update the table_idx field of method builders after
27 saving the module, since it can change. This is a workaround for
30 2005-05-25 Atsushi Enomoto <atsushi@ximian.com>
32 * culture-info-table.h : update (additional French date format).
34 2005-05-20 Zoltan Varga <vargaz@freemail.hu>
36 * icall.c (ves_icall_type_Equals): Revert last change.
38 * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
40 * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
42 2005-05-20 Sebastien Pouliot <sebastien@ximian.com>
44 * class-internals.h: Added executioncontext_class field to
45 MonoDefaults structure.
46 * domain.c: Cache System.Threading.ExecutionContext class in
48 * object.c: Capture the ExecutionContext for asynchroneous calls in
49 mono_async_result_new.
50 * object-internals.h: Added execution_context and original_context
51 fields to MonoAsyncResult. Added execution_context to MonoThread.
52 * security-manager.c|.h: Added mono_get_context_capture_method to
53 return the capture method (if required by the security manager or by
54 the framework version used).
55 * threadpool.c: Apply capture (if present) ExecutionContext in
56 mono_async_invoke and revert to original context after it completes.
58 2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
60 * culture-info-table.h : updated (real hacky solution for zh-CHT).
62 2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
64 * culture-info-table.h : zh-CHT related workaround.
66 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
68 * marshal.c (emit_marshal_custom): Add some error checking and call the
69 methods in the ICustomMarshaler interface. Fixes #74875.
71 * marshal.c (emit_marshal_array): Implement [Out] marshalling in
72 native->managed wrappers.
74 2005-05-12 Martin Baulig <martin@ximian.com>
76 * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
77 here and use the loader lock.
79 * mono-debug.c: Properly lock when the debugger is not attached.
80 (mono_debug_init): Release the initial lock if we're not running
83 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
85 * marshal.c (emit_marshal_custom): Pass through NULL values without
86 calling the custom marshalling routines.
88 * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
89 conversion in structures. Fixes #74882.
91 2005-05-12 Atsushi Enomoto <atsushi@ximian.com>
93 * culture-info-table.h : zh-* cultures were missing.
95 2005-05-12 Lluis Sanchez Gual <lluis@novell.com>
97 * threads.c: Added a new event background_change_event which is signaled
98 when a thread changes its background mode.
99 Moved here several checks previously done in managed code. The checks
100 require the thread lock, and using the thread lock in managed code
101 can result in deadlocks.
102 Merged Start_internal and Thread_internal into a single method. Now
103 Thread_internal does all work of creating and starting a thread.
104 Added icalls for setting and getting the state of the object. Moved from
105 managed code to avoid locking there.
106 Added wait_for_tids_or_state_change() which is called instad of
107 wait_for_tids when waiting for non-backround threads to end. This method
108 will return if one of the threads ends or the background_change_event
110 * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
111 the background mode. This method signals the background_change_event
114 * threads-types.h: Added icalls for ClrState, SetState and GetState, and
115 removed Start_internal.
117 2005-05-11 Martin Baulig <martin@ximian.com>
119 * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
120 to order of some fields to get proper alignment on 64-bit machines.
122 2005-05-11 Martin Baulig <martin@ximian.com>
124 * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
125 changes as they're broken and completely fuck up the debugger.
127 * mono-debug.c (mono_debug_add_method): Properly unlock on error.
129 2005-05-10 Martin Baulig <martin@ximian.com>
131 * reflection.c (mono_reflection_generic_class_initialize): Don't
132 call mono_class_setup_parent() here.
134 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
136 * metadata/socket-io.c: on windows, getsockopt/setsockopt for
137 send/receive timeout use an integer in milliseconds. We were using a
140 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
143 (internal_get_cultures): reserve the first slot of the array for the
144 InvariantCulture, which will be filled in managed code.
146 2005-05-06 Zoltan Varga <vargaz@freemail.hu>
148 * reflection.c (mono_image_fill_module_table): Initialize the
149 GENERATION field as well.
151 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
153 * monitor.c: ignore calls to Monitor.Exit even if no one ever called
154 Monitor.Enter on the object.
156 2005-05-05 Lluis Sanchez Gual <lluis@novell.com>
158 * threads.c: Enable the wait for running threads when exiting.
159 * icall.c: Suspend all threads before exiting.
161 2005-05-05 Zoltan Varga <vargaz@freemail.hu>
163 * assembly.c (mono_assembly_load_reference): Fix warning.
165 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
167 * threadpool.c: changed the default number of threads per cpu. From now
168 on, the default will be 20 + (5 * number of cpus) instead of 50.
170 2005-05-04 Zoltan Varga <vargaz@freemail.hu>
172 * loader.c (mono_method_get_signature_full): Add locking here.
174 2005-05-03 Lluis Sanchez Gual <lluis@novell.com>
176 * appdomain.c: Moved methods for parsing and freeing assembly
178 * assembly.c, domain-internals.h: Created public methods for parsing
179 assembly names. Fixed mono_assembly_load_with_partial_name:
180 it now finds the best match, taking into account the version,
181 token and culture specified in the partial name. Also return
182 the latest version if no version information is specified.
184 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
186 * threadpool.c: replace check for SocketAsyncCall class.
188 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
190 * threadpool-internals.h:
191 * Makefile.am: added threadpool-internals.h
193 * threadpool.c: call mono_unhandled_exception on exceptions not handled
194 that happen in threadpool threads (tested on MS).
195 (mono_thread_pool_remove_socket): new function that dispatch any pending
196 AIO call on a socket that is closing. By now only epoll really needs it,
197 as select/poll wake up when the socket closes.
200 * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
202 2005-05-01 Zoltan Varga <vargaz@freemail.hu>
204 * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
206 2005-05-01 Lluis Sanchez Gual <lluis@novell.com>
208 * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
210 2005-04-30 Lluis Sanchez Gual <lluis@novell.com>
212 * threads.c: In mono_thread_suspend_all_other_threads, if a thread
213 has an abort request, convert it into a suspend request.
215 2005-04-30 Ben Maurer <bmaurer@ximian.com>
217 * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
218 warning for the usage of `UnmanagedFunctionPointerAttribute' which
219 is not supported yet.
221 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
223 * image.c: register assemblies loaded from data (bundles) in the loaded
224 assemblies hash. Fixes bug #74772.
226 2005-04-29 Martin Baulig <martin@ximian.com>
228 * class.c (mono_type_get_name_recurse): Update to the new naming
229 schema from the latest .NET 2.x beta2.
230 (mono_class_setup_vtable_general): If we're a generic instance,
231 copy the vtable from our generic type definition and inflate all
234 * loader.c (find_method): Update to the new naming schema from the
235 latest .NET 2.x beta2.
237 2005-04-29 Raja R Harinath <harinath@gmail.com>
239 * class.c (mono_class_init): Add a mono_loader_unlock to the
242 2005-04-28 Zoltan Varga <vargaz@freemail.hu>
244 * icall.c (ves_icall_System_Environment_Exit): Remove the
245 suspend_all_other_threads () call for the time being, since it can hang.
247 * threads.c (mono_thread_manage): Similarly, disable the waiting for
248 the background threads to exit, since it can also hang.
250 * class.c (mono_class_init): Applied patch from Ankit Jain
251 (radical@gmail.com). Avoid pending init errors when a field refers
252 to a nested class using a typeref. Fixes #74734.
254 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
255 this for dynamic modules.
257 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
259 * threads.c: don't wait for threads that are in the process of aborting
260 or aborted. Set the 'shutting_down' flag before cleaning the threadpool
261 and waiting for background threads to finish. This makes xsp and
262 mod-mono-server exit without random length delays and/or hangs.
264 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
266 * icall.c: remove duplicate assignment from GetReferencedAssemblies.
268 2005-04-25 Zoltan Varga <vargaz@freemail.hu>
270 * class.c (mono_class_is_assignable_from): Call is_assignable_to for
271 dynamic types to prevent infinite loops. Fixes #74727.
273 * reflection.c (mono_reflection_call_is_assignable_from): Rename to
274 ..._is_assignable_to.
276 2005-04-25 Sebastien Pouliot <sebastien@ximian.com>
278 * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
280 2005-04-25 Martin Baulig <martin@ximian.com>
282 Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
285 (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
287 * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
289 * reflection.c (build_compressed_metadata): Set metadata header
292 2005-04-23 Zoltan Varga <vargaz@freemail.hu>
294 * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
295 number into an integral and a decimal part. Fixes #70473.
297 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
299 2005-04-23 Atsushi Enomoto <atsushi@ximian.com>
301 * culture-info-table.h : reflected the latest locale-builder output.
303 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
305 * threadpool.c: check for SuspendRequested too when deciding if
306 mono_thread_interruption_checkpoint should be called.
308 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
310 * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
311 * threads.c: remove interruption_mutex and use Interlocked instead. When
312 suspending all the threads, wait for all the suspended events at once.
313 If we're shutting down and get an APC that is going to be queued,
314 call mono_thread_execute_interruption immediately, as the thread might
315 be sleeping on a pthread condition or mutex.
317 * icall.c: call mono_runtime_set_shutting_down before suspending the
320 Fixes bug #74693. And now xsp is happier when exiting.
322 2005-04-22 Zoltan Varga <vargaz@freemail.hu>
324 * loader.c (mono_stack_walk): Fix #74690.
326 2005-04-22 Martin Baulig <martin@ximian.com>
328 * mono-debug.h (MonoDebugMethodJitInfo): Added
329 `MonoDebugMethodJitInfo *jit'.
331 * mono-debug.c (mono_debug_read_method): Cache the
332 MonoDebugMethodJitInfo in `address->jit'.
333 (mono_debug_free_method_jit_info): New public method.
335 2005-04-22 Martin Baulig <martin@ximian.com>
337 * class.c (mono_class_is_assignable_from): Disallow
338 type parameter -> interface.
340 2005-04-21 Dick Porter <dick@ximian.com>
342 * threads.c (mono_thread_create): Turn an assertion into an error.
344 2005-04-20 Zoltan Varga <vargaz@freemail.hu>
346 * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
348 * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c:
349 Fix some gcc 4.0 warnings.
351 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
353 * file-io.c: fix alt dir separator char on unix systems
354 and cleanup (fixes bug #71214).
356 2005-04-19 Lluis Sanchez Gual <lluis@novell.com>
358 * marshal.c: Use CALLVIRT instead of CALL when dispatching
359 a call to a remote domain, since the method may be an
360 interface method in the client domain. This fixes bug #74192.
362 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
364 * threadpool.c: recv/send are now performed before going back to managed
365 code to save one transition.
367 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
369 * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
371 * metadata/threadpool.c: removed hack to workaround the bug above.
375 2005-04-16 Zoltan Varga <vargaz@freemail.hu>
377 * reflection.c reflection.h: Fix handling of parameter defaults in
378 dynamic methods. Also fixes handling of parameter attributes.
381 * mono-debug.c (mono_debug_close_image): Fix warning.
383 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
385 * socket-io.h: replaced old unused field with new 'blocking'.
386 * threadpool.c: restore socket blocking state on windows(tm).
388 2005-04-14 Sebastien Pouliot <sebastien@ximian.com>
390 * icall.c: don't return the codebase in the AssemblyName[] returned by
391 ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
392 * object-internals.h: Removed FIXME (fields were presents) and fixed
393 versioncompat declaration.
395 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
397 * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
398 not closed, so don't cleanup when it happens.
400 2005-04-13 Chris Toshok <toshok@ximian.com>
402 * mono-debug-debugger.h: change prototype for
403 mono_debugger_lookup_type.
405 * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
406 this function, although it should probably be named
407 mono_debugger_init_type.
409 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
411 * threadpool.c: fix non-AIO case.
413 2005-04-13 Zoltan Varga <vargaz@freemail.hu>
415 * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
416 the built-in profiler to measure just JIT compilation times.
418 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
420 * threadpool.c: the epollfd might be closed by another thread at
421 any time, so ignore EBADF at treat it as a "we're closing" sign.
423 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
425 * threadpool.c: release the semaphores with a count equals to the number
426 of working threads in both IO and regular pools. Fixed typo that messed
427 up the count of IO pool threads. Don't initialize the pipe handles if
430 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
432 * threadpool.c: some systems don't like a NULL when deleting the socket
435 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
437 * threadpool.c: fix semaphore allocation.
439 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
441 * threadpool.c: added epoll() based implementation for asynchronous IO
442 that is used instead of the default poll() when available.
443 It can be disabled by setting MONO_DISABLE_AIO.
445 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
447 * threadpool.c: windows needs 'closesocket' and instead of returning
448 0 when the stream is closed while in select, it returns -1. Fixes bug
451 2005-04-12 Zoltan Varga <vargaz@freemail.hu>
453 * class.c (class_compute_field_layout): Fix the regression caused by
456 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
458 * threadpool.c: separate pool for socket async. IO.
459 * threadpool.h: mono_max_worker_threads is not a global any more.
461 2005-04-10 Zoltan Varga <vargaz@freemail.hu>
463 * class.c (class_compute_field_layout): Fix #74549.
465 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
467 * threadpool.c: select() on windows doesn't allow pipe handles, soooo
468 use 2 connected sockets instead.
470 2005-04-08 Miguel de Icaza <miguel@novell.com>
472 * mono-config.c: Add new entry point for mkbundle
473 mono_config_parse_memory.
475 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
477 * threadpool.c: removed another unused function.
479 2005-04-08 Ankit Jain <radical@corewars.org>
481 * reflection.c (get_default_param_value_blobs): Add 'types'
482 parameter to get the types encoded in the constant table.
483 (mono_param_get_objects): Use the type from the constant table,
484 not the type of the parameter, when creating default values.
485 Handle null default values correctly.
487 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
494 * socket-io.c: removed dead code for async IO.
496 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
498 * socket-io.h: 2 more fields in MonoSocketAsyncResult.
500 * threadpool.c: intercept socket async. calls and pass them to a thread
501 that is polling and dispatching the job items to the threadpool as
502 socket become ready. Fixes bugs #71217, #71933.
504 * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
505 between char and short/ushort arrays.
507 * socket-io.c: remove dead code.
509 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
512 icall.c : removed InternalToUpper_Comp() and
513 InternalToLower_Comp().
515 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
517 * char-conversions.h : The tables were incorrectly generated. Should
518 be generated against invariant culture.
520 2005-04-04 Zoltan Varga <vargaz@freemail.hu>
522 * object.c (mono_runtime_invoke_array): Fix return value when
523 passing pre-created valuetype objects to ctors.
525 * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer
526 (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
529 2005-03-30 Sebastien Pouliot <sebastien@ximian.com>
531 * domain.c: removed g_assert for runtimesecurityframe_class. This is
532 only used with --security and hides the wrong corlib version error.
534 2005-03-30 Joshua Tauberer <tauberer@for.net>
536 * class.c: Changed mono_class_name_from_token so that types
537 outside of a namespace don't have an initial period. Improved
538 the g_warning message used in _mono_class_get when loading
540 * assembly.c: In mono_assembly_load_reference, when an assembly
541 can't be found, "No such file or directory" is misleading and
542 unhelpful because a few paths were checked for the presence of
543 the assembly. When that happens (ENOENT), display a nicer
544 message indicating the directories that were searched. In all
545 cases, the warning is made easier to read for non-hackers.
547 2005-03-29 Sebastien Pouliot <sebastien@ximian.com>
549 * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
551 * appdomain.h|domain.c: Removed inline from functions.
552 * appdomain.c: Reduced warnings when compiling on windows.
553 * icall.c: Fixed output_debug declaration to gunichar2*.
554 * mono-config.c: Reduced warnings when compiling on windows.
555 * rand.c: Added missing "windows.h". Added missing return value.
556 * rawbuffer.c: Added missing winsock2.h for windows.
557 * sysmath.h: Added mono-compiler.h header to allow/ease
558 compilation with non-GCC compilers.
559 * threads.c: Fixed declarations to compile with VS.NET C compiler.
560 Removed cast warnings.
562 Adapted from the work of J Lothian (for VC6).
564 2005-03-29 Zoltan Varga <vargaz@freemail.hu>
566 * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
569 2005-03-27 Zoltan Varga <vargaz@freemail.hu>
571 * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
574 2005-03-27 Raja R Harinath <harinath@gmail.com>
576 * Makefile.am (assembliesdir): Fix. If it is arch-dependent it
577 has to be in $(exec_prefix). $(prefix) is for arch-independent
578 stuff, and it would probably use $(prefix)/share rather than
581 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
583 * console-io.c: added 2 includes that might be missing.
585 2005-03-24 Zoltan Varga <vargaz@freemail.hu>
587 * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
590 * reflection.c (create_custom_attr): Allocate the params array using
591 alloca so it gets GC tracking.
593 2005-03-23 Chris Toshok <toshok@ximian.com>
595 * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
598 2005-03-24 Raja R Harinath <rharinath@novell.com>
600 * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
601 changes to pick up any changes in prefix, etc.
603 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
605 * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
607 * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
608 * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
610 2005-03-23 Zoltan Varga <vargaz@freemail.hu>
612 * class-internals.h object-internals.h class.c reflection.c: Extend the
613 mono_lookup_dynamic_token () function to return the class of the
616 * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
619 2005-03-23 Sebastien Pouliot <sebastien@ximian.com>
621 * security-manager.c: Skip inheritance checks for intra-corlib
622 class inheritance and method overrides. This skips a lot of checks
623 and (anyway) permissions cannot work until corlib is loaded.
625 2005-03-23 Martin Baulig <martin@ximian.com>
627 * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
628 MONO_TYPE_GENERICINST.
630 2005-03-23 Martin Baulig <martin@ximian.com>
632 * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
634 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
636 * class.c: added locking comments to some functions.
637 Cache the interface offsets arrays (saves about 20 KB
638 of runtime memory in a typical app).
639 Reduce the time overhead in mono_class_setup_supertypes ().
641 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
643 * icall.c: speedup and fix leaks in GetMethodsByName and
646 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
648 * reflection.c: some locking fixes.
650 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
652 * metadata.c: added missing break in case statement.
654 2005-03-22 Zoltan Varga <vargaz@freemail.hu>
656 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
657 typedbyref return values. Fixes #73941.
659 2005-03-17 Sebastien Pouliot <sebastien@ximian.com>
661 * security-manager.c|h: Added demandunmanaged method and
662 suppressunmanagedcodesecurity class to MonoSecurityManager.
663 Renamed aptc class to allowpartiallytrustedcallers.
665 2005-03-17 Martin Baulig <martin@ximian.com>
667 * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
669 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
671 * file-io.c: disabled file async. IO using aio_*. It uses the
672 threadpool now. Workaround for bug #73718.
674 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
676 * assembly.h, mono-config.c: added code to deal with bundled configs
677 for bundled assemblies.
679 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
681 * *.c, private.h: cleanup, removing old private.h header file.
683 2005-03-16 Zoltan Varga <vargaz@freemail.hu>
685 * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
686 and throw_on_unmappable_char attributes.
688 2005-03-13 Sebastien Pouliot <sebastien@ximian.com>
690 * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
691 _ProcessName_internal.
693 2005-03-13 Zoltan Varga <vargaz@freemail.hu>
695 * object.c (mono_array_new_full): Fix aligning of array size. Fixes
698 * icall.c threads.c threads-types.h: Remove slothash icalls as they
701 2005-03-11 Zoltan Varga <vargaz@freemail.hu>
703 * object.c (compute_class_bitmap): Add support for generics. Fixes
706 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
708 * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
710 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
712 * filewatcher.c: commented out the code for windows watcher, as we don't
713 use it (we use the managed implementation instead).
715 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
717 * object-internals.h (MonoThread): Remove 'unused1' field.
719 * appdomain.c: Bump corlib version.
721 * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
723 * reflection.c (mono_reflection_create_runtime_class): Remove the
724 AssemblyBuilder.Save optimization since it causes too many problems.
726 2005-03-10 Sebastien Pouliot <sebastien@ximian.com>
728 * exception.c|h: Added mono_get_exception_reflection_type_load to
729 create a ReflectionTypeLoadException object.
730 * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
731 to return NULL is a InheritanceDemand fails during reflection. Updated
732 ves_icall_System_Reflection_Assembly_GetTypes to throw a
733 ReflectionTypeLoadException if an InheritanceDemand fails during
734 reflection. Added icall mapping for GetLinkDemandSecurity.
735 * security-manager.c|h: Added ves_icall_System_Security_
736 SecurityManager_GetLinkDemandSecurity internal call to return the
737 class and methods permissions set for a LinkDemand. Removed unused
738 fields in MonoSecurityManager.
740 2005-03-10 Martin Baulig <martin@ximian.com>
742 * class.c (mono_bounded_array_class_get): Initialize `eclass' if
743 it's a generic instance.
745 2005-03-09 Zoltan Varga <vargaz@freemail.hu>
747 * reflection.c (mono_get_object_from_blob): Applied patch from
748 Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
750 * class.c (mono_class_is_assignable_from): Another try at fixing
751 #73469 without breaking anything.
753 2005-03-08 Zoltan Varga <vargaz@freemail.hu>
755 * class.c: (mono_class_is_assignable_from): Revert the last changes
756 since they don't work with generics.
758 * class.c (mono_class_is_assignable_from): Fix build bustage.
760 * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
761 the managed IsAssignableFrom method. Fixes #73469.
763 * reflection.c (mono_reflection_call_is_assignable_from): New helper
766 2005-03-04 Zoltan Varga <vargaz@freemail.hu>
768 * object.c (mono_load_remote_field_new): Fix returning uninitialized
769 memory when the remoting callback does not sets the out arguments.
772 * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
775 * string-icalls.c: Return String.Empty where needed. Fixes #73310.
777 * object-internals.h (MonoStackFrame): Sync with managed object layout.
779 * appdomain.c: Bump corlib version.
781 2005-03-03 Zoltan Varga <vargaz@freemail.hu>
783 * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
786 * threads.c (mono_thread_attach): Detect threads which are not started
787 by the GC pthread wrappers.
789 2005-03-03 Sebastien Pouliot <sebastien@ximian.com>
791 * icall.c: Added new icall for RNG.
792 * rand.c|h: Added new icall to open the RNG. This allows to share a
793 single handle on Linux to access /dev/urandom and fix #73183.
795 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
797 * object.c: setting the new vtable in a transparent proxy object must
798 not change the GC descriptor.
800 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
802 * object.c: fixed compilation without GCJ support.
803 * reflection.c: for runtime-created types ensure klass->has_references
804 is correct (bug #73215).
806 2005-03-02 Martin Baulig <martin@ximian.com>
808 * class.c (mono_class_is_assignable_from): Make this work if
809 `oklass' is a generic instance; fixes #72831.
811 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
813 * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
816 * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
818 * marshal.c: Reorganize native->managed marshalling code to also use
819 the emit_marshal_... functions.
821 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
823 * object.c: typed allocs have issues with bitmap sizes > 30,
824 so check for max_set >= 30.
826 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
828 * marshal.c (emit_marshal_array): Implement marshalling of arrays to
829 managed code. Fixes #73012.
831 * metadata.h (MonoMarshalSpec): Add elem_mult field.
833 * metadata.c reflection.c: Load/Emit elem_mult as well.
835 * metadata.h (MonoMarshalSpec): Add comment.
837 * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
839 * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
840 num_elem to -1 if not given.
842 * object-internals.h (MonoReflectionMarshal): Add has_size field.
844 * reflection.c (encode_marshal_blob): Differentiate between 0 and not
847 2005-03-01 Marek Safar <marek.safar@seznam.cz>
849 * null-gc.c (mono_gc_free_fixed): Was not compilable.
851 2005-02-28 Zoltan Varga <vargaz@freemail.hu>
853 * reflection.c (encode_marshal_blob): Encode param_num field as well.
855 * object-internals.h (MonoReflectionMarshal): Add param_num field.
857 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
859 * object.c: generalized the reference bitmap creation
860 and added hooks for the new GC.
861 * class-internals.c: removed the gc_bitmap field from MonoClass.
863 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
865 * domain.c: help the compiler to produce better code
866 in mono_jit_info_table_find ().
868 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
870 * object.c: make all allocations look typed.
872 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
874 * socket-io.c: load Mono.Posix if it's not loaded already
877 2005-02-24 Martin Baulig <martin@ximian.com>
879 * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
880 * reflection.c (dup_type): Likewise.
882 2005-02-24 Zoltan Varga <vargaz@freemail.hu>
884 * gc.c (run_finalize): Set the domain for finalizing delegates as well.
885 Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
887 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
889 * domain.c, threads.c, object-internals.h: make the critical thread
890 local vars use the fast access mode (even when we're compiled in
891 a lib). Provide accessors to be used by the jit during codegen.
893 2005-02-24 Carlos Alberto Cortez <calberto.cortez@gmail.com>
895 * appdomain.c: Changed hook functios behavior to include
896 support for the reflection only assemblies. Some icalls were changed
897 to support the mentioned assemblies too. Signatures of static methods
898 try_assembly_resolve and real_load now have an additional parameter:
901 * assembly.c: General changes to mono_assembly_ methods to support
902 reflection only api. Functions mono_assembly_open, mono_assembly_load,
903 mono_assembly_load_from and mono_assembly_loaded have got a '_full'
904 suffix, to support an additional gbool parameter to specify whether
905 the assembli is reflection only or not. Created some new hook functions
906 to add support for reflection only assemblies. Signatures of static
907 methods load_in_path, search_loaded, and mono_assembly_load_from_gac
908 have now an additional parameter: refonly.
910 * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
911 indicating whether the assembly is reflection only or not.
913 * exception.c: Add mono_get_exception_invalid_operation.
915 * icall.c: Throw an InvalidOperationException when trying to invoke
916 a property/method/event, or trying to set/get the value of a field.
917 Also add an icall to retrieve the ref_only flag to the
918 MonoReflectionAssembly.
920 2005-02-23 Chris Toshok <toshok@ximian.com>
922 Part of fix for #72827.
923 * mono-debug.c (mono_debug_add_method): add lexical block data to
924 the info we write. Kind of a hack at the moment - we copy the
925 lexical block info from the MonoDebugMethodInfo to the
926 MonoDebugMethodJitInfo here, before writing it.
927 (mono_debug_read_method): read the lexical block info.
929 * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
931 * debug-mono-symfile.h: add lexical block support.
933 * debug-mono-symfile.c (mono_debug_find_method): add lexical block
936 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
938 * loader.c (mono_lookup_pinvoke_call): Fix warning.
940 * object.c (mono_runtime_free_method): Call mono_free_method () and
943 * loader.c (mono_free_method): Free up most memory allocated for
946 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
948 * reflection.c: properly flag a Type argument to a
949 named custom attr value (bug #72248).
951 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
953 * reflection.c: reduce code duplication in named custom
956 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
958 * reflection.c: properly encode custom attrs of type object
961 2005-02-23 Zoltan Varga <vargaz@freemail.hu>
963 * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
965 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
967 * socket-io.c: load System.dll if it's not loaded already
968 (bug #72850 and #70477).
970 2005-02-21 Martin Baulig <martin@ximian.com>
972 * marshal.c (mono_marshal_get_runtime_invoke): Add support for
975 2005-02-21 Martin Baulig <martin@ximian.com>
977 * reflection.c (mono_image_build_metadata): We also need to
978 "fixup" the MethodImpl table after we computed the final method
979 indices. Call fixup_methodimpl() to do that.
980 (fixup_methodimpl): New private method.
982 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
984 * assembly.c: special case mscorlib.dll (bug#72536),
985 patch from Carlos Alberto Cortez.
987 2005-02-20 Zoltan Varga <vargaz@freemail.hu>
989 * threads-types.h threads.c: Fix build bustage.
991 * threads.c: Use a union for long<->double conversions.
993 * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
994 functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
996 * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock
997 containing the checkpoint call with NOT_TAKEN.
999 * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt
1000 checkpoint before pushing the arguments, so they won't have to be
1003 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1005 * domain.c, assembly.c, domain-internals.h: make some data
1006 const and relocation-free.
1008 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
1010 * object.c, appdomain.c, class-internals.h: introduce the
1011 MonoClassRuntimeInfo structure to hold the info needed to
1012 use a class at runtime. Made mono_class_vtable() lock-free
1013 for all the appdomains.
1015 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
1017 * metadata-internals.h, image.c: introduce a per-image mempool to
1018 be used for memory that has the same lifetime as the image.
1020 2005-02-18 Lluis Sanchez Gual <lluis@novell.com>
1022 * domain.c: In mono_init_internal(), instead of selecting the first
1023 runtime version supported by an executable, get a list of all
1024 supported versions and select the one for which an mscorlib exists
1025 (since even if the runtime supports a given version, it doesn't mean
1026 that the framework for that version is installed).
1027 Modified get_runtimes_from_exe to support this behavior.
1028 In supported_runtimes, added information about additional system
1031 * assembly.c: Added support for more than one system assembly version
1032 per runtime version. Updated the assembly list.
1033 In mono_assembly_remap_version, removed the initial version check,
1034 since we don't know to which version we need to compare until we
1035 get the version set on which the assembly is based.
1036 Moved the code for loading corlib into the new method
1037 mono_assembly_load_corlib(), so it can be used by the initialization
1040 * domain-internals.h: Updated data structures and added declaration
1041 for mono_assembly_load_corlib.
1043 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
1045 * reflection.c (resolve_object): Fix the creation of the signature in
1046 the SignatureHelper case.
1048 * assembly.c (mono_assembly_remap_version): Fix binary search.
1050 2005-02-17 Sebastien Pouliot <sebastien@ximian.com>
1052 * class.c: Added inheritance check when a method is overloaded (from a
1053 virtual method or when implementing an interface) and when a class is
1054 inherited. Added functions to set a failure for a class and to
1055 retreive the exception from a failure.
1056 * class-internals.h: Added fields to MonoClass to keep the exception
1057 information status for inheritance (or other exceptions) to be thrown
1058 later (i.e. not at load time).
1059 * object.c: Throw the inheritance SecurityException when a type is to
1060 be created with either class or method inheritance violations.
1061 * reflection.c|h: Fix when getting declsec from a class. Removed
1062 unrequired code for class. Improved sanity in parameter naming.
1063 * security-manager.c|h: Added functions to check for class and method
1066 2005-02-17 Zoltan Varga <vargaz@freemail.hu>
1068 * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
1069 and has_finalize in dynamic types as well.
1071 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
1073 * culture-info-table.h : fixed currency format for en-GB (and so on).
1075 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
1077 * gc.c: ensure the GC handles never have 0 as a value.
1079 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
1081 * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
1082 a pointer to a struct to unmanaged code. Fixes #72625.
1084 2005-02-16 Martin Baulig <martin@ximian.com>
1086 * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
1088 2005-02-16 Zoltan Varga <vargaz@freemail.hu>
1090 * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
1092 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
1094 * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
1096 * marshal.c (mono_ftnptr_to_delegate): If the delegate has the
1097 UnmanagedFunctionPointerAttribute, use it for determining calling convention
1100 * reflection.c (mono_custom_attrs_get_attr): New helper function.
1102 * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
1104 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
1106 * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
1107 changes to make the current context a field in MonoThread.
1109 2005-02-15 Zoltan Varga <vargaz@freemail.hu>
1111 * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
1114 * marshal.c (mono_marshal_emit_native_wrapper): New helper function
1115 extracted from mono_marshal_get_native_wrapper.
1117 * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
1118 to create wrappers around native functions.
1120 * marshal.c (mono_ftnptr_to_delegate): Add support for creating
1121 delegates for arbitrary function pointers. Fixes #71472.
1123 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1125 * threads.c: cleaned up the code a little.
1127 2005-02-15 Martin Baulig <martin@ximian.com>
1129 * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
1132 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
1133 allocate larger chunks if needed.
1135 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
1137 * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
1140 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
1142 * domain.c: keep the domains in an array and ensure the domain ids
1143 are kept small, so they can be used as indexes to domain-specific data
1144 with a small memory overhead.
1146 2005-02-14 Zoltan Varga <vargaz@freemail.hu>
1148 * icall.c: Handle byref types in Type icalls. Fixes #72544.
1150 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
1152 * Makefile.am: remove libmetadata: we build just libmonoruntime now.
1154 2005-02-13 Zoltan Varga <vargaz@freemail.hu>
1156 * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
1158 * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
1161 * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
1163 2005-02-12 Ben Maurer <bmaurer@ximian.com>
1165 * domain-internals.h: add the hashtable here.
1167 * class-internals.h: Remove `info' from MonoMethod
1169 * domain.c: Add a new hashtable, jit_trampoline_hash
1171 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1173 * object.c: don't set the value of static fields
1176 2005-02-11 Martin Baulig <martin@ximian.com>
1178 * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
1179 (mono_debug_add_method): Silently ignore the method if it's too big.
1180 (mono_debug_add_type): Likewise.
1182 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
1184 * threads.c, appdomain.c: remove #ifdefs from the code.
1186 2005-02-10 Sebastien Pouliot <sebastien@ximian.com>
1188 * metadata-internals.h: Added flags to MonoAssembly to cache the most
1189 common security informations. This allows us to stay in unmanaged code
1190 when doing LinkDemand and it's special cases (except for the first
1191 time for initialization). The flags a very much used with --security.
1192 * reflection.c|h: Added code to get declarative security attributes
1193 for LinkDemand and InheritanceDemand. This required to refactor the
1194 existing code for Demand.
1195 * security-manager.c|h: Added new method fields for the special cases
1198 2005-02-10 Martin Baulig <martin@ximian.com>
1200 * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
1201 (ves_icall_MonoDebugger_GetTypeToken): New interncall.
1203 2005-02-10 Martin Baulig <martin@ximian.com>
1205 * mono-debug.c, mono-debug-debugger.c: Completely reworked the
1206 debugging code; this is almost a complete rewrite.
1208 * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
1210 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1212 * domain.c, object.h: expose mono_string_equal () and
1213 mono_string_hash ().
1214 * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
1215 it's implemented in managed code.
1217 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1219 * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
1220 lo leak objects between appdomains.
1222 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1224 * assembly.c: old compilers compilation fix from
1225 robertj@gmx.net (Robert Jordan).
1227 2005-02-09 Ben Maurer <bmaurer@ximian.com>
1229 * class-internals.h: Little reminder for the future.
1231 * debug-helpers.c: Fix up wrapper_type_names
1233 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1235 * image.c, metadata-internals.h: when loading an image from a file,
1236 mmap all of it and use the same codepaths as when using a
1237 in-memory image: the code is simpler and we use less memory
1238 (both writable and readonly).
1240 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1242 * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
1243 API to alloc runtime data structures that need to be tracked by the
1244 GC and contain pointers.
1245 * appdomain.c, threads.c, object.c, gc.c: use the above changes to
1246 make the code more readable and eventually use a different GC.
1248 2005-02-09 Zoltan Varga <vargaz@freemail.hu>
1250 * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
1253 2005-02-09 Lluis Sanchez Gual <lluis@novell.com>
1255 * object.c: In release_type_locks(), don't release the cctor lock
1256 if it has already been released. This fixes a crash in the
1259 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1261 * gc.c, marshal.c, icall.c: register a delegate for finalization
1262 only when the native function pointer has been allocated for it.
1264 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1266 * object.c: cleaned up some code, allocate objects that are
1267 pointer free with the atomic malloc variant. Allocate memory
1268 for static data from the mempool if it's pointer-free.
1269 Allocate the bounds array at the end of the array data, when needed.
1270 * object-internals.h, object.h: move a private function in a private
1272 * class.c: handle missing case in tracking references in fields.
1274 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1276 * class.c, class-internals.h: keep track if a type has
1277 reference fields in either the instance or static fields.
1279 2005-02-07 Lluis Sanchez Gual <lluis@novell.com>
1281 * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
1282 and renamed to MonoRuntimeInfo. Added fields to store the expected
1283 framework assembly version. Changed mono_get_framework_version and
1284 mono_get_runtime_version for a single mono_get_runtime_info method.
1286 * assembly.c: Added method to remap system assembly versions to the
1287 current executing runtime version. Removed old mapping code.
1288 Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
1290 * icall.c, reflection.c: Track api changes.
1292 2005-02-06 Miguel de Icaza <miguel@novell.com>
1294 * loader.c (method_from_memberref): Improve error reporting,
1295 produce the class name instead of the typeref/typedef index.
1297 2005-02-07 Zoltan Varga <vargaz@freemail.hu>
1299 * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
1301 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
1303 * loader.c (mono_lookup_pinvoke_call): Allow for combination of
1304 stdcall and charset name mangling. Reorganize the code and add
1307 2005-02-05 Ben Maurer <bmaurer@ximian.com>
1309 * monodiet.c: More iters!
1311 * marshal.c: Iter usage.
1313 * icall.c: Iter usage.
1315 * object.c: Use iters.
1317 * debug-helpers.c: More iters
1319 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
1321 * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
1324 2005-02-05 Ben Maurer <bmaurer@ximian.com>
1326 * mono-debug-debugger.c: use iters
1328 * class.c, class-internals.h: mono_class_setup_events is static
1331 * All callers: use iters
1333 2005-02-05 Zoltan Varga <vargaz@freemail.hu>
1335 * class.c string-icalls.c marshal.c reflection.c: Applied patch from
1336 Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
1338 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
1340 * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
1342 * marshal.h: Add prototypes for ldfld/stfld_remote.
1344 * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
1345 this is called during startup.
1347 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
1349 * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
1350 MonoThreadsSync struct private in monitor.c. Changed the way
1351 MonoThreadsSync is allocated so it's faster and there is no
1352 need to keep track of it with a finalizer and it uses less memory.
1353 This also finally allows us to allocate mono objects as ptrfree when
1354 there are no reference fields.
1356 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
1358 * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
1359 disappearing link to the GC interface and use them to simplify
1362 2005-02-04 Zoltan Varga <vargaz@freemail.hu>
1364 * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
1365 stfld_remote which call mono_load/store_field_new. This allows methods
1366 calling ldfld/stfld wrappers to be AOTed.
1368 * console-io.c: Include sys/filio.h under solaris.
1370 * console-io.c: Include curses.h if needed correctly.
1372 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
1374 * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
1375 method->klass as well.
1377 * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
1379 * class.c (mono_class_init): Switch on lazy initialization of
1382 * class.c (mono_class_get_finalizer): Handle the case when the
1383 finalizer is inherited.
1385 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1387 * console-io.c: <curses.h> is needed by term.h on solaris.
1389 2005-02-03 Ben Maurer <bmaurer@ximian.com>
1391 * icall.c, class-internals.h, monodiet.c, class.c: Remove
1392 mono_class_setup_properties where possible. Remove this ftn from
1393 the header file, and make it static.
1395 2005-02-03 Zoltan Varga <vargaz@freemail.hu>
1397 * loader.c: Add missing setup_... call.
1399 * class.c: Add missing setup_... calls.
1401 * class.c (mono_class_init): Switch on lazy initialization of
1404 * class.c (mono_class_init): Fix generics broken by the recent changes.
1406 * monodiet.c (handle_type): Add missing setup_... calls.
1408 * class.c: Back out garbage in previous patch.
1410 * class.c: Add missing setup_... calls.
1412 * class.c (mono_class_get_method_from_name_flags): Avoid calling
1413 mono_class_setup_methods () if possible.
1415 * class-internals.h (MonoClass): Add 'has_cctor' flag.
1417 * class-internals.h (MonoCachedClassInfo): New structure.
1419 * class.c: Initialize properties and events fields of MonoClass lazily.
1421 * class.c: Add infrastructure for lazily initializing the methods and
1422 vtable fields of MonoClass. Not yet used.
1424 * class.c (mono_class_get_finalizer): New helper function.
1426 * class.c: Add infrastructure for loading some class related data from
1429 * object.c: Add infrastructure for initializing the vtable from data
1432 * gc.c (run_finalize): Use mono_class_get_finalizer ().
1434 * class.c loader.c object.c icall.c gc.c reflection.c: Call the
1435 appropriate initialization function before accessing parts of the
1436 MonoClass structure.
1438 * marshal.c: Fix warnings.
1440 * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
1442 * mono-debug-debugger.c (get_exception_message): Use
1443 mono_class_get_method_from_name_flags ().
1445 2005-02-02 Ben Maurer <bmaurer@ximian.com>
1447 * reflection.c, appdomain.c: Replace a few manual searches that
1448 Zoltan missed. (Paolo approved this part of my initial patch).
1450 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
1452 * profiler.c: disable recording statistical events at report time.
1454 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1456 * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
1457 to byteswap arrays of enum values, too (bug #72080).
1459 2005-02-02 Zoltan Varga <vargaz@freemail.hu>
1461 * appdomain.c (set_domain_search_path): Allow this to be called if
1462 domain->setup is not yet set.
1464 * loader.c (mono_method_get_index): New helper function.
1466 * loader.c reflection.c: Use mono_method_get_index ().
1468 * class.c (mono_class_get_method_from_name_flags): New helper method.
1470 * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
1473 * class.c (mono_class_get_cctor): New helper method.
1475 * string-icalls.c object.c class.c marshal.c reflection.c: Use
1476 mono_class_get_method () to look up methods.
1478 2005-02-01 Miguel de Icaza <miguel@novell.com>
1480 * console-io.c: Fix the build, this should work on Windows.
1482 2005-01-31 Ben Maurer <bmaurer@ximian.com>
1484 * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
1485 be set to null to keep things valid
1487 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1489 * icall.c: added Console 2.0 icalls.
1490 * Makefile.am: added console-io.[ch]
1491 * console-io.[ch]: internal calls for Console 2.0 API.
1493 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1495 * class.c: make sure we consider all the interfaces
1496 when calculating max_interface_id (bug found by
1497 Jeroen Frijters running ikvm).
1499 2005-01-31 Zoltan Varga <vargaz@freemail.hu>
1501 * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
1502 valuetype fields to null.
1504 * object.c (set_value): Ditto. Fixes #71669.
1506 2005-01-31 Martin Baulig <martin@ximian.com>
1508 * metadata.c (mono_metadata_has_generic_params): New public
1509 function; checks whether something is a generic method.
1511 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
1513 * appdomain.c: fix infinite recursion when adding assemblies.
1515 2005-01-30 Sebastien Pouliot <sebastien@ximian.com>
1517 * object.c: Fix small typo to return all items for Environment.
1520 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1522 * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
1523 reflection.c: more domain and assembly-unload related fixes
1524 and memory leaks plugs.
1526 2005-01-30 Zoltan Varga <vargaz@freemail.hu>
1528 * 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.
1530 2005-01-29 Ben Maurer <bmaurer@ximian.com>
1532 * loader.c (mono_method_signature): Make this method lazy
1533 (mono_get_method_from_token): Don't computate the signature here.
1535 Doing this saves quite a bit of memory. I got 90 kb on starting up
1536 monodoc. It should also save some disk reads on startup.
1538 * *: MonoMethod->signature might be NULL now. You *MUST* use
1539 mono_method_signature.
1541 2005-01-29 Zoltan Varga <vargaz@freemail.hu>
1543 * object.c (mono_runtime_get_main_args): Return an array from the
1544 current domain here. Fixes #71938.
1546 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
1548 * monitor.c: formatting changes to comply with the
1549 mono coding style and remove #ifdefs from the code.
1551 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1553 * metadata.c, private.h: remove some unneeded data
1554 and use a more compact representation for table schemas.
1556 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
1558 * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
1559 to get a better distribution in hash tables.
1560 * *.c: use mono_aligned_addr_hash() where appropriate.
1561 * assembly.c: make var static.
1563 2005-01-28 Zoltan Varga <vargaz@freemail.hu>
1565 * domain-internals.h: Put MonoJitInfo on a diet.
1567 * domain.c: Fix a warning.
1569 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1571 * gc.c: rework the gc handles code to reuse handles
1574 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1576 * domain.c: fixed long standing bug in mono_string_equal() which
1577 was brought to light with the ldstr changes.
1579 2005-01-26 Sebastien Pouliot <sebastien@ximian.com>
1581 * reflection.c: Remove warning by adding missing include for marshal.h
1583 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1585 * domain.c, object.c: change the ldstr_table to hold
1586 MonoString* as keys: makes the runtime isinterned lookup
1587 faster and simplifies memory management.
1589 2005-01-25 Sebastien Pouliot <sebastien@ximian.com>
1591 * icall.c: Renamed GetEnvironmentVariable so internal* so it was
1592 possible to add imperative security checks before calling the icall.
1593 * reflection.c: Return security attributes on the original MonoMethod
1594 (and not the wrapped one). This fix permissions on icalls.
1596 2005-01-25 Dick Porter <dick@ximian.com>
1598 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
1599 the check for mktime() support actually test the mktime() return
1600 value. "Fixes" bug 71682, though the output is still different to
1603 2005-01-25 Martin Baulig <martin@ximian.com>
1605 * class.c (mono_class_is_assignable_from): Make this work for
1608 2005-01-24 Ben Maurer <bmaurer@ximian.com>
1610 * marshal.c (mono_string_utf8_to_builder)
1611 (mono_string_builder_to_utf16): We might not have ownership of the
1612 string. In thise case, we need to create a new buffer.
1614 * object-internals.h (mono_stringbuilder_capacity): sb->str might
1615 be null, in which case, use the default capacity.
1617 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1619 * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
1620 GC events to the profiler.
1622 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1624 * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
1625 if you don't want the GC to run.
1627 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
1629 * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
1630 start providing a GC API and keeping different implementations in
1632 * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
1634 2005-01-22 Ben Maurer <bmaurer@ximian.com>
1636 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
1637 mmap rather than allocating a huge buffer.
1638 (mono_debug_close_mono_symbol_file): Free the buffer allocated
1641 2005-01-22 Sebastien Pouliot <sebastien@ximian.com>
1643 * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
1644 and CheckExecutionRights.
1645 * reflection.c|h: Keep the index of the declarative security to be
1646 used, instead of the pointer, when AOT compiler is used. Also add
1647 class initialization when requesting demands.
1648 * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
1649 CheckExecutionRights. Both properties are now FALSE by default, and
1650 unmodifiable, unless the --security option is used.
1652 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1654 * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
1655 reflection.c: properly refcount images and assemblies, many leaks fixed.
1657 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1659 * threadpool.c: increase the timeout for threads in the thread pool to
1660 10s. Fixes bug #67159.
1662 2005-01-20 Bernie Solomon <bernard@ugsolutions.com>
1664 * class-internals.h: Sun's compiler insists on explicit
1665 signed on bit fields to handle then correctly.
1667 2005-01-19 Miguel de Icaza <miguel@ximian.com>
1669 * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
1670 Make the size of the array fit only the number of invalid path
1673 * class.c (_mono_class_get): Improve the error reporting when a
1674 class referenced is not found, to assist debugging.
1676 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
1678 * threads.c: fix off-by-one error.
1679 * domain.c: free data allocated in the domain.
1681 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
1683 * reflection.c (mono_method_body_get_object): Fill out exception info
1686 * object-internals.h: Add MonoReflectionExceptionHandlingClause
1689 2005-01-19 Martin Baulig <martin@ximian.com>
1691 * loader.c (mono_get_method_constrained): Make this work again.
1693 2005-01-19 Zoltan Varga <vargaz@freemail.hu>
1695 * object-internals.h (_MonoReflectionMethodBody): Make local_index a
1696 guint16 to match the managed side.
1698 * reflection.c (mono_reflection_body_get_object): Fill out local
1701 * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
1704 * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
1705 'local_var_sig_token'.
1707 2005-01-18 Zoltan Varga <vargaz@freemail.hu>
1709 * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks
1712 * reflection.c (mono_method_body_get_object): Handle abstract and
1715 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
1717 * marshal.c, loader.c, class-internals.h, reflection.c:
1718 store the emthod data for a wrapper in an array instead of a list.
1720 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
1722 * marshal.c: change the code to allocate memory more
1723 conservatively for method wrappers.
1725 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
1727 * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
1728 fields from MonoClass to the marshal info structure where they belong.
1730 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1732 * class.c, object.c, class-internals.h, marshal.c: rearrange
1733 some fields and tweak some types to lower memory usage.
1735 2005-01-17 Zoltan Varga <vargaz@freemail.hu>
1737 * threads.c (signal_thread_state_change): Handle the case when the
1738 target thread is the current thread.
1740 * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
1742 * marshal.c: Rename emit_ptr_to_str_conv and its pair to
1743 emit_ptr_to_object_conv.
1745 * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
1746 marshalling. Fixes #71352.
1748 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1750 * metadata.h, blob.h: move table enum to blob.h so it can be included
1752 * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
1753 cut the size of MonoImage/MonoDynamicImage.
1755 2005-01-16 Zoltan Varga <vargaz@freemail.hu>
1757 * profiler.c (mono_profiler_install_simple): Fix default arguments.
1759 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
1761 * reflection.c, reflection.h, icall.c: add a function to check
1762 if an attribute type is defined for a metadata object.
1764 2005-01-14 Lluis Sanchez Gual <lluis@novell.com>
1766 * object-internals.h: Added some needed fields from StringBuilder class.
1767 * marshal.c: Set the maxCapacity when creating a StringBuilder.
1769 2005-01-13 Zoltan Varga <vargaz@freemail.hu>
1771 * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
1772 threads before shutting down the runtime.
1774 * threads.c (mono_thread_suspend_all_other_threads): New helper function.
1776 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1778 * object-internal.h, threads.c: implement stacksize and
1779 parameterized thread start functionality (requires
1780 matching corlib). Marked broken code for later removal.
1782 2005-01-12 Martin Baulig <martin@ximian.com>
1784 * class-internals.h (MonoGenericClass): Moved the `initialized'
1785 flag to MonoDynamicGenericClass, removed `init_pending'.
1786 (MonoGenericInst): Added `is_reference' flag.
1788 2005-01-12 Zoltan Varga <vargaz@freemail.hu>
1790 * reflection.c (mono_image_create_pefile): Only set the pe_offset
1791 inside the MSDOS header. Fixes #71201.
1793 * gc.c (mono_gc_cleanup): Handle the case when this is called from the
1795 (mono_domain_finalize): Ditto.
1797 2005-01-12 Martin Baulig <martin@ximian.com>
1799 * class.c (mono_get_shared_generic_class): Use the cache for
1800 non-dynamic generic classes.
1802 * class-internals.h (mono_class_create_generic_2): Removed
1803 function prototype, this function is now static inside class.c.
1805 * class.c (mono_class_create_generic_2): Made this static, only
1806 call it from mono_class_init() and mono_class_setup_parent().
1807 (collect_implemented_interfaces_aux): Call mono_class_init() on
1808 the interfaces we collect.
1809 (mono_class_setup_vtable): Call mono_class_init (class->parent).
1811 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
1813 * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
1814 it a real thread handle.
1816 * domain-internals.h: Move exvar_offset from MonoJitInfo to
1817 MonoJitExceptionInfo, since each catch clause needs its own variable.
1819 2005-01-11 Dick Porter <dick@ximian.com>
1821 * image.c (mono_pe_file_open): New variant on mono_image_open()
1822 that does not set up the CLI metadata; used for FileVersionInfo so
1823 it can get the data for windows binaries too.
1825 * process.c (process_read_string_block): Don't read off the end of
1826 the StringTable block.
1828 These both fix bug 70766.
1830 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
1832 * gc.c: set some fields to NULL at GC cleanup time.
1833 * threads.c: if we quit the main thread, call exit ().
1835 2005-01-11 Zoltan Varga <vargaz@freemail.hu>
1837 * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
1839 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
1841 * threads.h, threads.c, object.c: added accessor and settor for
1842 main_thread. Handle it specially when exiting from it: wait
1843 for other foreground threads to exit.
1845 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
1847 * process.c, verify.c: remove some bloat.
1849 2005-01-09 Zoltan Varga <vargaz@freemail.hu>
1851 * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
1852 the calling convention to cdecl under win32.
1854 2005-01-08 Ben Maurer <bmaurer@ximian.com>
1856 * object.c (mono_object_get_size): New function to get the size of
1859 * profiler.c (simple_allocation): Use above.
1861 2005-01-08 Sebastien Pouliot <sebastien@ximian.com>
1863 * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
1864 ves_icall_System_AppDomain_getRootDomain (as it's not required to
1865 get an appdomain by it's id and we can't assume the root's id is 0).
1866 * domain-internals.h: Change the function prototype to match.
1867 * icall.c: Change the icall table for AppDomain.
1869 2005-01-08 Miguel de Icaza <miguel@ximian.com>
1871 * locales.c (string_invariant_compare_char): Only compute
1872 GUnicodeTypes in the case where we need them. Test for ordinality
1873 first and return if so.
1878 * FIXME: here we must use the information from c1type and c2type
1879 * to find out the proper collation, even on the InvariantCulture, the
1880 * sorting is not done by computing the unicode values, but their
1881 * actual sort order.
1884 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1886 * loader.c: for P/Invoke methods, allow the "Internal" shared
1887 library name to refer to the calling process symbol namespace.
1889 2005-01-07 Sebastien Pouliot <sebastien@ximian.com>
1891 * Makefile.am: Add the security manager to the build.
1892 * security-manager.c|h: New. Initialization of the security manager.
1894 2005-01-07 Dick Porter <dick@ximian.com>
1897 * monitor.c: Update thread state during Monitor and WaitHandle
1898 waits. Fixes bug 71031.
1900 2005-01-07 Zoltan Varga <vargaz@freemail.hu>
1902 * reflection.c (property_encode_signature): Correctly handle when the
1903 property has no methods.
1905 2005-01-06 Zoltan Varga <vargaz@freemail.hu>
1907 * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
1909 * reflection.c (reflection_methodbuilder_from_method_builder): Copy
1910 fields from mb, not rmb. Fixes #71017.
1912 * marshal.c (emit_ptr_to_str_conv): Add support for
1913 ByValTStr -> string conversion. Fixes #71015.
1915 * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
1917 * mempool.c (mono_mempool_contains_addr): New helper function.
1919 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
1921 * metadata.c (mono_metadata_compute_size): Fix size calculation of
1922 HasSematics encoded fields.
1924 * metadata.c (mono_type_to_unmanaged): Improve error message for
1925 invalid string marshalling.
1927 * metadata.c: Fix warnings.
1929 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1931 * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
1934 2005-01-05 Zoltan Varga <vargaz@freemail.hu>
1936 * domain.c object.c domain-internals.h: Revert part of r38077 since the
1937 keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
1940 2005-01-03 Zoltan Varga <vargaz@freemail.hu>
1942 * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
1943 so methods containing these can be AOTed.
1945 2005-01-03 Martin Baulig <martin@ximian.com>
1947 * loader.c (find_method): Removed the hack for generic instances.
1948 (method_from_memberref): If our parent is a generic instance, pass
1949 its generic type definition to find_method() and then inflate the
1951 (mono_get_method_constrained): Pass the generic type definition to
1952 find_method() and inflate the method later.
1954 * class-internals.h (MonoStats): Added `generic_class_count'.
1956 * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
1957 Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
1959 * reflection.c (mono_custom_attrs_from_params): Don't ignore
1960 generic type definitions.
1962 2004-12-30 Zoltan Varga <vargaz@freemail.hu>
1964 * loader.c icall.c: Fix warnings.
1966 2004-12-29 Zoltan Varga <vargaz@freemail.hu>
1968 * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
1969 blittable types. Fixes #70864.
1971 2004-12-29 Martin Baulig <martin@ximian.com>
1974 (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
1976 * reflection.c (mono_method_get_object): Create a
1977 "System.Reflection.MonoGenericMethod" for inflated methods; don't
1978 call mono_get_inflated_method().
1980 * class-internals.h (MonoStats): Added `inflated_method_count_2'.
1982 2004-12-27 Martin Baulig <martin@ximian.com>
1984 * class-internals.h (MonoMethod): Added `is_inflated' flag.
1985 (MonoMethodInflated): Added `inflated' field.
1987 * class.c (mono_class_inflate_generic_method): Don't really
1988 inflate the method here; just set the `is_inflated' flag in the
1990 (mono_class_get_inflated_method): Actually inflate the method here
1991 if it's not already inflated; we use the MonoMethodInflated's new
1992 `inflated' field as a cache.
1994 2004-12-26 Martin Baulig <martin@ximian.com>
1997 (inflate_generic_class): Moved some code out of inflate_generic_type().
1998 (mono_class_inflate_generic_method): If we're already inflated,
1999 inflate the context and use the declaring method; ie. make sure
2000 the declaring method of an inflated method is always the generic
2002 (mono_class_create_from_typedef): Create
2003 `class->generic_container->context->gclass'.
2005 2004-12-24 Ben Maurer <bmaurer@ximian.com>
2007 * metadata-internals.h, marshal.c, reflection.c: More
2008 MonoGHashTable->GHashTable.
2010 * domain-internals.h, class.c: Change MonoGHashTable's into
2011 GHashTables for some cases where no gc stuff is used
2013 All users: update apis
2015 2004-12-23 Ben Maurer <bmaurer@ximian.com>
2017 * metadata.c (builtin_types): Make this `const'. Makes this get
2018 put into the shareable section.
2019 (mono_metadata_init): Casts to make gcc happy.
2021 2004-12-22 Zoltan Varga <vargaz@freemail.hu>
2023 * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
2025 2004-12-21 Sebastien Pouliot <sebastien@ximian.com>
2027 * icall.c: Added an internal call to retrieve the position and length
2028 of assembly-level declarative security attributes (RequestMinimum,
2029 RequestOptional and RequestRefuse). This is used by the Assembly class
2030 to re-create the corresponding permission sets.
2032 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
2034 * marshal.c: fix the stelemref wrapper to be type correct
2037 2004-12-20 Ben Maurer <bmaurer@ximian.com>
2039 * icall.c (ves_icall_System_Object_GetHashCode): There was no need
2040 to do key & 0x7fffffff. Hashtable already does this. It just
2041 results in longer code.
2043 2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
2045 * appdomain.c: Bump corlib version.
2046 * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
2047 * domain.c: Add RuntimeSecurityFrame to mono_defaults.
2048 * reflection.c|h: Add functions to get declarative security infos
2049 (blob position and length) for assemblies, classes and methods.
2051 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
2053 * reflection.c: sort the constant table (bug #70693).
2055 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
2057 * object-internals.h, threads.c, domain.c: add accessors for
2058 the MonoThread and MonoDomain tls keys.
2060 2004-12-18 Martin Baulig <martin@ximian.com>
2062 * class.c (inflate_generic_type): If we're inflating a generic
2063 instance, set `ngclass->context->container = context->container';
2064 ie. the container we inflated into.
2066 * metadata.c (mono_metadata_parse_generic_param): Reflect above
2067 inflate_generic_type() changes.
2069 2004-12-17 Martin Baulig <martin@ximian.com>
2072 (MonoGenericClass): Replaced `MonoType *generic_type' with
2073 `MonoClass *generic_class'. Removed `dynamic_info'; if
2074 `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
2075 (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
2077 2004-12-16 Zoltan Varga <vargaz@freemail.hu>
2079 * exception.c (mono_exception_from_token): New helper function.
2081 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
2083 * assembly.c (mono_assembly_load_with_partial_name): Call
2084 mono_assembly_loaded before invoking the preload hooks. Fixes
2087 * object-internals.h (MonoThread): Change culture_info and
2088 ui_culture_info into an array.
2090 * threads.c: Cache culture info objects from more than one appdomain.
2092 * threads.c threads-types.h icall.c: Add icalls for manipulating the
2095 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
2097 * threads.h threads.c appdomain.c: Clear the culture_info field of
2098 all threads during unloading if they point to an object in the dying
2101 2004-12-13 Ben Maurer <bmaurer@ximian.com>
2103 * culture-info.h (TextInfoEntry): New struct
2104 * object-internals.h: sync with managed
2105 * locales.c: fill the `text_info_data' field
2106 * culture-info-tables.h: update
2108 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
2110 * Makefile.am, monodiet.c: add monodiet, an IL code garbage
2113 2004-12-12 Ben Maurer <bmaurer@ximian.com>
2115 * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
2116 (ves_icall_ModuleBuilder_getMethodToken): Ditto
2118 2004-12-12 Martin Baulig <martin@ximian.com>
2120 * mono-debug-debugger.c (write_type): If we're an enum and the
2121 builtin types have already been initialized, call mono_class_init().
2123 2004-12-11 Martin Baulig <martin@ximian.com>
2125 * metadata.c (mono_metadata_load_generic_params): Added
2126 `MonoGenericContainer *parent_container' argument; automatically
2127 compute `container->is_method'; pass the correct owner to
2130 * reflection.c (compare_genericparam): Sort the GenericParam table
2131 according to increasing owners.
2133 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
2135 * profiler.c: allow disabling the default profiler.
2137 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
2139 * decimal.c, icall.c: allow disabling System.Decimal support.
2141 2004-12-09 Marek Safar <marek.safar@seznam.cz>
2143 * reflection.c: Add support for null attribute arguments.
2145 2004-12-09 Martin Baulig <martin@ximian.com>
2147 * metadata.h, loader.h: Use `idx' instead of `index' in parameter
2148 names to get rid of compiler warnings.
2150 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
2152 * marshal.c (mono_marshal_get_struct_to_ptr): Call
2153 mono_marshal_load_type_info (). Fixes #69625.
2154 (mono_marshal_get_ptr_to_struct): Likewise.
2156 2004-12-08 Martin Baulig <martin@ximian.com>
2158 * mono-debug.h: Bumped version number to 47.
2160 * mono-debug-debugger.c
2161 (mono_debugger_event_handler, mono_debugger_event): Take two
2162 guint64 arguments insteed of a gpointer and a guint32.
2164 2004-12-08 Martin Baulig <martin@ximian.com>
2166 * debug-mono-symfile.h
2167 (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
2168 `address' to `native_offset'.
2170 2004-12-08 Martin Baulig <martin@ximian.com>
2172 * class.c (mono_class_create_from_typespec): Only inflate if we
2173 either have `context->gclass' or `context->gmethod'.
2175 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
2177 * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
2179 * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
2181 * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
2183 * reflection.c (mono_assembly_get_object): Remove the workaround put
2186 * appdomain.c: Use the corlib_internal field from MonoAssembly.
2188 * appdomain.c: Bump corlib version.
2190 * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
2191 be visible in other appdomains.
2193 2004-12-07 Ben Maurer <bmaurer@ximian.com>
2195 * threads.c: Interlocked inc and dec for longs were messed up,
2196 use a KISS based impl for this. Fixes 70234
2198 2004-12-07 Zoltan Varga <vargaz@freemail.hu>
2200 * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
2202 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
2204 * icall.c: fix to follow policy not to allow struct
2205 arguments in icalls.
2207 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2209 * process.c: make the patch that handles spaces in file paths work
2210 on mono/windows too.
2212 2004-12-06 Martin Baulig <martin@ximian.com>
2214 * class.c (mono_class_create_generic): Call
2215 mono_class_setup_supertypes() if we're dynamic.
2216 (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
2218 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
2220 * object-internals.h: Add new fields to MonoThread.
2222 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2224 * icall.c threads-types.h threads.c: Add new icalls.
2226 * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
2228 * object-internals.h (MonoReflectionAssembly): Sync object layout with
2231 * appdomain.c: Bump corlib version.
2233 * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
2234 internal assemblies. Fixes #69181.
2236 2004-12-05 Martin Baulig <martin@ximian.com>
2238 * class.c (mono_class_inflate_generic_signature): Make this a
2239 no-op if `context' is NULL or we don't have any type parameters;
2240 also copy `sentinelpos'.
2242 2004-12-04 Zoltan Varga <vargaz@freemail.hu>
2244 * image.c: Add unbox_wrapper_cache.
2246 * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
2248 * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
2251 * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
2254 * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
2256 2004-12-04 Martin Baulig <martin@ximian.com>
2258 * loader.c (mono_method_get_signature_full): New public function;
2259 like mono_method_get_signature(), but with an additional
2260 `MonoGenericContext *' argument.
2262 * class.c (mono_class_inflate_generic_signature): Formerly known
2263 as inflate_generic_signature(); make this public.
2265 2004-12-04 Martin Baulig <martin@ximian.com>
2268 (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
2269 instead of a `MonoGenericContainer *'.
2270 (mono_metadata_parse_array_full): Likewise.
2271 (mono_metadata_parse_signature_full): Likewise.
2272 (mono_metadata_parse_method_signature_full): Likewise.
2273 (mono_metadata_parse_generic_inst): Likewise.
2274 (mono_metadata_parse_generic_param): Likewise.
2275 (mono_metadata_parse_mh_full): Likewise.
2276 (mono_type_create_from_typespec_full): Likewise.
2278 2004-12-03 Martin Baulig <martin@ximian.com>
2280 * class-internals.h (MonoGenericContainer): Replaced the
2281 `MonoGenericContext * pointer with a `MonoGenericContext'
2282 structure and made it the first element.
2284 2004-12-03 Martin Baulig <martin@ximian.com>
2287 (inflate_generic_type): Set the `context->container' when creating
2288 a new MonoGenericContext.
2289 (mono_class_inflate_generic_method): Likewise.
2290 (mono_class_create_from_typespec): Just use `context->container'
2291 to get the container.
2293 * loader.c (method_from_methodspec): Set `context->parent' from
2294 `context->container' - and if that's a method container, use its
2295 parent. Also set the `context->container' when creating a new
2297 (mono_get_method_from_token): Use just `context->container' to get
2300 * metadata.c (do_mono_metadata_parse_generic_class): Also set
2301 `gclass->context->container'.
2303 * reflection.c (do_mono_reflection_bind_generic_parameters): Set
2304 the `context->container' when creating a new MonoGenericContext.
2306 2004-12-03 Zoltan Varga <vargaz@freemail.hu>
2308 * reflection.c (compare_genericparam): Sort params with identical
2309 owner by their number. Fixes gen-111 on sparc.
2311 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
2313 * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
2314 around the domain changes.
2316 * appdomain.c (mono_domain_unload): Handle the case when the thread
2317 calling Unload is itself being aborted during unloading. Fixes #70022.
2319 * appdomain.h: Add prototype for mono_install_runtime_cleanup.
2321 * marshal.c (emit_thread_interrupt_checkpoint_call): Call
2322 checkpoint_func as an icall so it gets a wrapper.
2323 (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
2324 in the cross-appdomain wrappers too.
2326 * threads.c (mono_thread_has_appdomain_ref): Make this public.
2328 * assembly.c (mono_assembly_open_from_bundle): Fix warning.
2330 * reflection.c: Fix some memory leaks.
2332 2004-12-02 Martin Baulig <martin@ximian.com>
2334 * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
2336 * metadata.c (generic_class_cache): New static hashtable.
2337 (mono_metadata_lookup_generic_class): New public method.
2339 2004-12-02 Martin Baulig <martin@ximian.com>
2341 * class.c (mono_class_create_from_typedef): Call
2342 mono_class_setup_parent() and mono_class_create_mono_type() before
2343 parsing the interfaces.
2345 2004-12-02 Martin Baulig <martin@ximian.com>
2347 * metadata.c (generic_inst_cache): New static hashtable.
2348 (mono_metadata_lookup_generic_inst): New public function.
2349 (mono_metadata_inflate_generic_inst): New public function.
2350 (mono_metadata_parse_generic_inst): New public function.
2351 (do_mono_metadata_parse_generic_class): Use the new
2352 mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
2353 since this'll also use the cache.
2355 * reflection.c (mono_reflection_bind_generic_method_parameters):
2356 Use mono_metadata_lookup_generic_inst() to use the new cache.
2358 * class.c (inflate_mono_type): Use
2359 mono_metadata_inflate_generic_inst() to inflate a generic
2360 instance; this'll also use the new cache.
2362 * loader.c (method_from_methodspec): Use
2363 mono_metadata_parse_generic_inst() and
2364 mono_metadata_inflate_generic_inst() rather than parsing it
2365 manually, so we can use the new cache.
2367 2004-12-02 Zoltan Varga <vargaz@freemail.hu>
2369 * threads.c (wait_for_tids): Do not incorrectly free threads when
2372 2004-12-01 Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2374 * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
2375 iter->args based on whether parameters are passed in registers (i.e.
2376 MONO_ARCH_REGPARMS is defined)
2378 2004-12-01 Zoltan Varga <vargaz@freemail.hu>
2380 * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
2381 the exception message. Fixes #70070.
2382 (method_from_methodspec): Fix warnings.
2384 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2386 * process.c: (complete_path) return the path quoted
2388 2004-12-01 Martin Baulig <martin@ximian.com>
2390 * class-internals.h (MonoGenericInst): New structure.
2391 (MonoGenericClass): Replaced `type_argc', `type_argv' and
2392 `is_open' with `MonoGenericInst *inst'.
2393 (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
2394 `is_open' with `MonoGenericInst *inst'.
2396 2004-11-30 Martin Baulig <martin@ximian.com>
2398 Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
2400 * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
2401 to `generic_class_cache'.
2404 (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
2405 (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
2406 (mono_generic_inst_is_valuetype): Renamed to
2407 mono_generic_class_is_valuetype().
2410 (MonoGenericInst): Renamed to MonoGenericClass.
2411 (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
2412 (MonoClass): Renamed `generic_inst' to `generic_class'.
2413 (MonoGenericContext): Renamed `ginst' to `gclass'.
2415 * object-internals.h
2416 (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
2418 * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
2419 mono_reflection_generic_class_initialize().
2421 * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
2422 now known as "System.Reflection.MonoGenericClass".
2423 (monogenericinst_icalls): Renamed to monogenericclass_icalls.
2425 2004-11-29 Sebastien Pouliot <sebastien@ximian.com>
2427 * class-internals.h: Added a flag field to MonoClass to cache the
2428 declarative security attributes actions associated with the class.
2429 * domain-internals.h: Added booleans to MonoJitInfo to cache the
2430 (class or method level) stack modifiers (Assert, Deny and PermitOnly)
2431 applicable to the JITted method.
2432 * reflection.c|h: Added functions to extract (as flags) which security
2433 actions are available (declaratively) for a method, class or assembly.
2434 * metadata.c|h: Added functions to search the declarative security
2435 table in the metadata.
2437 2004-11-29 Ben Maurer <bmaurer@ximian.com>
2439 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
2440 EXPORTEDTYPES are already in the class name cache, so there is no
2441 need to add extra code here to look at them. Just removes a bit of
2444 (ves_icall_System_Environment_get_TickCount): No need for #if
2445 WINDOWS. We already have the code in io-layer.
2447 2004-11-28 Martin Baulig <martin@ximian.com>
2450 (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
2453 2004-11-27 Miguel de Icaza <miguel@ximian.com>
2455 * assembly.c (do_mono_assembly_open): Instead of having a
2456 conditional WITH_BUNDLE, incorporate support for bundles here, by
2457 having a global `bundles' variable holding a pointer to the actual
2460 (mono_register_bundled_assemblies): New API call used by the
2463 See mkbundle.1 for details.
2465 2004-11-27 Martin Baulig <martin@ximian.com>
2467 * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
2468 the vtable for generic methods.
2470 2004-11-26 Martin Baulig <martin@ximian.com>
2473 (mono_metadata_generic_method_hash): New public function.
2474 (mono_metadata_generic_method_equal): Likewise.
2477 (MonoGenericContainer): Added `GHashTable *method_hash'.
2479 * reflection.c (ReflectionMethodBuilder): Added
2480 `MonoGenericContainer *generic_container'.
2481 (reflection_methodbuilder_to_mono_method): Don't create a new
2482 MonoGenericContainer each time we're called.
2483 (mono_reflection_bind_generic_method_parameters): Use
2484 `container->method_hash' to cache the results so we don't create a
2485 different method if we're called several times with the same
2488 * loader.c (method_from_methodspec): Use the new
2489 `container->method_hash' here, too.
2491 2004-11-26 Martin Baulig <martin@ximian.com>
2493 * class.c (inflate_generic_signature): Correctly compute
2494 `res->has_type_parameters'.
2495 (mono_class_vtable): Use the `has_type_parameters' flag to
2496 determine whether we're a generic method.
2498 * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
2500 2004-11-25 Zoltan Varga <vargaz@freemail.hu>
2502 * object.c (mono_runtime_run_main): Fix a small memory leak.
2504 2004-11-25 Martin Baulig <martin@ximian.com>
2506 * class.c (set_generic_param_owner): Fixed the loop.
2508 2004-11-25 Martin Baulig <martin@ximian.com>
2510 * object.c (mono_class_vtable): Don't create any JIT wrappers for
2513 2004-11-24 Zoltan Varga <vargaz@freemail.hu>
2515 * reflection.c: Allow all kinds of whitespace, not just ' ' in type
2516 names. Fixes #69787.
2518 2004-11-24 Martin Baulig <martin@ximian.com>
2520 * class.c (mono_class_create_generic_2): If we don't have a
2521 `ginst->parent', inflate `gklass->parent' to get our parent.
2523 2004-11-24 Martin Baulig <martin@ximian.com>
2525 * reflection.c (compare_genericparam): Correctly sort the
2526 GenericParam table; fixes #69779.
2528 2004-11-23 Ben Maurer <bmaurer@ximian.com>
2530 * reflection.c: When writing a PE file, don't create a huge
2531 buffer in memory. Just write the arrays we have to the file.
2532 This reduces memory usage.
2534 * metadata-internals.h: MonoDynamicStream pefile is no longer used
2537 2004-11-17 Martin Baulig <martin@ximian.com>
2539 * class.c (mono_class_init): Don't setup `class->parent' for
2540 dynamic instances; moved this to mono_class_generic_2().
2541 (mono_class_create_generic): Also set `klass->inited' for dynamic
2543 (mono_class_create_generic_2): Don't do anything for dynamic
2544 generic instances. Set `klass->parent' here and also call
2545 mono_class_setup_parent() here.
2547 * reflection.c (do_mono_reflection_bind_generic_parameters): Added
2548 `MonoType *parent' argument; set `ginst->parent' before calling
2549 mono_class_create_generic_2(), so we set the correct parent.
2551 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
2553 * reflection.c: allow getting attributes from ModuleBuilder
2556 2004-11-17 Martin Baulig <martin@ximian.com>
2558 * class.c (mono_class_create_from_typedef): If a type parameter is
2559 inherited from an outer class, set its owner to that class.
2561 2004-11-17 Atsushi Enomoto <atsushi@ximian.com>
2563 * reflection.c: (mono_image_create_pefile): Don't use NULL argument
2564 for (int*) written size. This fixes bug #69592.
2566 2004-11-15 Sebastien Pouliot <sebastien@ximian.com>
2568 * icall.c: Added IsAuthenticodePresnet internal call.
2569 * image.c|h: New function that check a MonoImage for an Authenticode
2570 signature in the certificate PE data directory.
2571 * security.c|h: New internal call to ask the runtime if an
2572 Authenticode signature seems referenced in the PE header.
2574 2004-11-15 Zoltan Varga <vargaz@freemail.hu>
2576 * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
2578 * reflection.c (mono_image_create_pefile): Free the assembly streams
2579 after writing out the assembly file.
2581 * object.c (mono_runtime_run_main): Fix small memory leak.
2583 * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
2584 property access modifiers. Fixes #69389.
2586 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
2588 * domain.c, object.c, object-internals.h, domain-internals.h,
2589 object.h, marshal.c: keep dynamic code info per domain.
2591 2004-11-15 Martin Baulig <martin@ximian.com>
2593 * class.c (mono_type_get_name_recurse): Put type arguments in
2594 `[',`]' instead of in `<','>'. Thanks to Atsushi for the patch,
2597 2004-11-15 Martin Baulig <martin@ximian.com>
2599 * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
2600 (mono_class_setup_vtable): When computing `the_cname' for a
2601 generic instance, don't include the namespace since we'd otherwise
2604 2004-11-15 Martin Baulig <martin@ximian.com>
2606 * class.c (mono_class_create_generic): Changed return type to void.
2607 (mono_class_create_generic_2): New public function; setup
2608 `class->method', `class->field' and `class->interfaces' here
2609 instead of in mono_class_init().
2611 * class.h (mono_class_create_generic): Moved to class-internals.h.
2613 2004-11-14 Ben Maurer <bmaurer@ximian.com>
2615 * reflection.c (mono_image_create_pefile): take a file HANDLE.
2616 rather than writing to memory, write to this file. Right now,
2617 we are just writting into a buffer, and copying that. However
2618 we can avoid the buffer later.
2620 (mono_dynamic_stream_reset): new function
2622 * icall.c, object-internals.h: update for the above.
2624 2004-11-13 Ben Maurer <bmaurer@ximian.com>
2626 * reflection.c: Remove *_ATOMIC macros. We really shouldn't
2627 have been using gc'd memory. First it is slower, unlikely
2628 the comment in the source code said, secondly, it increases
2629 our footprint to do it in the gc.
2631 * icall.c (WriteToFile): rename of getDataChunk. Rewrite
2632 the method so that it does not have to copy to managed code.
2634 2004-11-12 Zoltan Varga <vargaz@freemail.hu>
2636 * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
2638 2004-11-12 Martin Baulig <martin@localhost>
2640 * reflection.c (mono_image_create_token): Allow generic method
2641 definitions here, since they may appear in an `.override'; see
2642 gen-98/gen-99 for an example.
2644 2004-11-11 Zoltan Varga <vargaz@freemail.hu>
2646 * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
2649 * marshal.c (mono_string_to_ansibstr): Make g_error messages more
2652 2004-11-11 Martin Baulig <martin@ximian.com>
2654 * class.c (mono_class_setup_vtable): In an explicit interface
2655 implementation, the method name now includes the arity.
2657 2004-11-10 Zoltan Varga <vargaz@freemail.hu>
2659 * object.c (mono_array_full_copy): Fix warning.
2661 2004-11-10 Lluis Sanchez Gual <lluis@novell.com>
2663 * appdomain.c: Removed look_for_method_by_name(). Use the new method
2664 mono_class_get_method_from_name() instead.
2666 * class-internals.h: Added two new types of wrappers.
2667 Added MonoRemotingTarget enum. Added new trampoline function type, which
2668 takes an additional MonoRemotingTarget value as parameter, so it is
2669 possible to request a trampoline for a specific target.
2671 * class.c: Added new mono_class_get_method_from_name() method.
2673 * class.h: In MonoRemoteClass, we can have now to vtables, one for
2674 general remoting sinks and one specific for cross domain calls.
2676 * debug-helpers.c: Added new wrapper names.
2678 * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
2681 * image.c: Porperly delete value objects form the remoting invoke hashtable.
2683 * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
2684 with several other methods (mono_marshal_get_xappdomain_dispatch,
2685 mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
2686 and others) can generate a fast remoting wrapper for cross domain calls.
2687 More information can be found in docs/remoting.
2688 Other changes: Removed mono_find_method_by_name, and used
2689 mono_class_get_method_from_name instead.
2690 Remoting wrappers are now stored in a MonoRemotingMethods struct, which
2691 is stored in the remoting invoke hashtable.
2693 * marshal.h: published the new method for getting the xdomain wrapper,
2694 and also added a method for getting the adequate wrapper for a given
2697 * object-internals.h, object.c: Added a couple of methods for capying and
2699 Modified mono_install_remoting_trampoline, which takes the new remoting
2700 trampoline that has a remoting target as parameter.
2701 mono_class_proxy_vtable now also takes a remoting target as parameter, and
2702 will return the most suitable vtable for the target.
2703 Added mono_remote_class_vtable, which returns the vtable of a remote class
2704 (which can be the normal remoting vtable or the xdomain vtable).
2706 * threads.c: the xdomain invoke and dispatch wrappers must also be
2707 protected against interruptions.
2709 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2711 * icall.c: use memmove in BlockCopyInternal when the source and
2712 destination arrays are the same.
2714 2004-11-09 Martin Baulig <martin@ximian.com>
2716 * class-internals.h (MonoGenericContainer): Removed `method' and
2717 `signature', replaced them with `is_method' and `is_signature'
2718 flags. Added `context'.
2720 * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
2721 instead of a `MonoGenericContainer *'.
2723 * metadata.c (mono_metadata_generic_param_equal): Removed the hack
2724 for dynamic type parameters.
2725 (mono_metadata_load_generic_params): Setup `container->context'.
2727 * reflection.c (mono_reflection_setup_generic_class): Setup
2728 `tb->generic_container->context'.
2729 (do_mono_reflection_bind_generic_parameters): Use
2730 mono_class_inflate_generic_type() to correctly inflate types,
2731 rather than using our own hack just for MONO_TYPE_VAR.
2733 2004-11-09 Martin Baulig <martin@ximian.com>
2735 * class.c (mono_class_inflate_generic_method): Small fix; don't
2739 (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
2740 (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
2741 (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
2742 (ves_icall_Type_BindGenericParameters): Likewise.
2743 (ves_icall_Type_get_IsGenericInstance): Likewise.
2744 (ves_icall_Type_GetGenericParameterPosition): Likewise.
2745 (ves_icall_MonoType_get_HasGenericArguments): Likewise.
2746 (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2747 (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2749 2004-11-09 Zoltan Varga <vargaz@freemail.hu>
2751 * assembly.c (mono_assembly_names_equal): Reenable the comparison of
2752 assembly versions and public key tokens. Fixes #69113.
2754 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
2756 * metadata.c: fix bug introduced with the type cache changes
2759 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
2761 * metadata.h, metadata.c, domain-internals.h, marshal.c: include
2762 the MonoClass pointer instead of the token in exception clauses.
2763 * reflection.c: updates for the above and make the code not depend
2764 on the structure of MonoExceptionClause.
2766 2004-11-08 Zoltan Varga <vargaz@freemail.hu>
2768 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
2769 Add support for dynamic assemblies. Fixes #69114.
2771 * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
2773 2004-11-07 Ben Maurer <bmaurer@ximian.com>
2775 * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
2776 since most only those methods use it. the code member of
2777 MonoMethodPInvoke was dead, so that can be removed too. Also,
2778 remove inline_count (again, not used), and move slot so that it
2779 can share bits with some other flags. This saves 8 bytes in the
2780 structure and gives us about 50 kb back for mcs helloworld.cs
2782 * *.[ch]: Do naming changes for the above.
2784 * loader.c (mono_method_get_header): Lazily init the header
2786 (mono_get_method_from_token): don't init the header here
2787 (mono_free_method): the header may never be allocated
2789 Overall, this saves 150 kb of unmanaged allocations
2790 for mcs helloworld.cs. That accounts for 10% of the unmanaged
2793 * loader.c, loader.h (mono_method_get_header): new accessor.
2795 * *.[ch]: use the above method. Prepares us to lazily load
2798 * *.[ch]: Clean up all the pesky warnings. gcc now only gives
2799 three warnings, which are actual bugs (see 69206).
2801 * class-internals.h (MonoMethod): Remove remoting_tramp. It is
2802 unused. Saves a cool 4 bytes / method.
2804 2004-11-06 Ben Maurer <bmaurer@ximian.com>
2806 * metadata.c (builtin_types): Add types for System.Object here.
2807 (mono_metadata_parse_type_full): Cache MonoType*'s that are
2808 for a class or valuetype from klass->this_arg or klass->byval_arg.
2810 On mcs for a hello world, this gets us down from 21836 MonoType's
2813 (mono_metadata_free_type): Account for the above change.
2815 2004-11-06 Zoltan Varga <vargaz@freemail.hu>
2817 * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an
2818 exception instead of asserting if name is null.
2819 (ves_icall_System_AppDomain_GetData): Ditto.
2821 2004-11-05 Zoltan Varga <vargaz@freemail.hu>
2823 (ves_icall_get_enum_info): Avoid crash when called on a non-finished
2826 * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly):
2827 Return NULL when the domain does not have entry_assembly set.
2829 * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal):
2830 Add a 'resource_modules' argument.
2831 (ves_icall_type_GetTypeCode): Fix typecode of byref types.
2833 * reflection.c (mono_reflection_create_runtime_class): Move setting
2834 of wastypebuilder here, so mono_get_type_object () returns a MonoType
2837 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
2838 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
2839 Throw an ArgumentNullException if 'ptr' is null.
2841 * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
2842 assemblies here. Fixes #69020.
2844 2004-11-05 Geoff Norton <gnorton@customerdna.com>
2846 * reflection.c (build_compressed_metadata): Fix the previous patch for
2847 big endian systems. GUINT32_FROM_LE isn't needed on strlen and was overwriting
2850 2004-11-04 Zoltan Varga <vargaz@freemail.hu>
2852 * assembly.c (mono_assembly_names_equal): Allow a match if one of
2853 the cultures is false. Fixes #69090.
2855 * reflection.c (build_compressed_metadata): Fix invalid memory read
2856 detected by valgrind.
2858 * reflection.c (mono_reflection_get_type): Avoid triggering a
2859 TypeResolve multiple times for the same type. Fixes #65577.
2861 2004-11-04 Ben Maurer <bmaurer@ximian.com>
2863 * marshal.c: Avoid using ldftn to call managed functions. It is
2864 much slower than just a call.
2866 * reflection.c (mono_module_get_object): free the basename we
2867 allocate here from glib.
2869 * reflection.c (ensure_runtime_vtable): make sure to free
2870 overrides. Also, we were allocating an array of MonoMethod not an
2871 array of MonoMethod*.
2873 * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
2875 * image.c (mono_image_close): free image->guid here.
2877 2004-11-02 Zoltan Varga <vargaz@freemail.hu>
2879 * reflection.c: Fix some spec conformance issues with the PE file
2880 structures so mcs compiled apps run on the Net 2.0 beta.
2882 2004-11-01 Zoltan Varga <vargaz@freemail.hu>
2884 * string-icalls.c (ves_icall_System_String_ctor_encoding):
2885 Implement this. Fixes #67264.
2887 * debug-helpers.h debug-helpers.c marshal.c: Move
2888 mono_find_method_by_name to debug-helpers.c.
2890 2004-10-31 Zoltan Varga <vargaz@freemail.hu>
2892 * object.c (mono_release_type_locks): type_initialization_hash is
2895 * reflection.c object.c object-internals.h: Fix warnings.
2897 * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
2898 without accessors. Fixes #61561.
2900 * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
2901 application base from the root domain if not set. Fixes #65641.
2902 (mono_runtime_init): Fix warning.
2904 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2906 * appdomain.c: call mono_thread_pool_init.
2907 * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
2908 of worker threads based on the number of CPUs and the environment
2909 variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
2910 for non-windows (windows) systems.
2912 2004-10-27 Chris Toshok <toshok@ximian.com>
2914 * mono-debug-debugger.c (write_class): don't call mono_class_init
2915 here, as even with the check for (!klass->init_pending), we get
2916 into a situation where we're hitting cycles in class
2917 initialization. Fixes #68816.
2919 2004-10-25 Zoltan Varga <vargaz@freemail.hu>
2921 * image.c: Avoid overwriting values in the loaded_images_hash when an
2922 assembly is loaded multiple times. Fixes #61152.
2924 * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
2925 so multiple satellite assemblies for the same name can be loaded.
2928 * mono_domain_assembly_preload: Actually return the loaded assembly,
2931 * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
2932 (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
2934 * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
2935 pending finalizers are not invoked after the appdomain has been
2936 unloaded. Fixes #67862.
2938 2004-10-22 Martin Baulig <martin@ximian.com>
2940 * mono-debug-debugger.c
2941 (mono_debugger_runtime_invoke): Don't box valuetypes.
2943 2004-10-22 Chris Toshok <toshok@ximian.com>
2945 * mono-debug-debugger.c (do_write_class): handle .cctors too, and
2946 don't hide private methods.
2948 2004-10-22 Sebastien Pouliot <sebastien@ximian.com>
2950 * icall.c: Allows the runtime to "share" (when known) the public key
2951 token of an assembly. This avoid the need to recalculate the token
2952 (from the public key) in managed code.
2954 2004-10-21 Chris Toshok <toshok@ximian.com>
2956 * debug-helpers.c (append_class_name): argh, revert last patch.
2958 2004-10-21 Chris Toshok <toshok@ximian.com>
2960 * debug-helpers.c (append_class_name): use '+' as the delimiter,
2961 not '/', so that it matches what the debugger uses to look up
2964 2004-10-21 Martin Baulig <martin@ximian.com>
2966 * mono-debug-debugger.c (mono_debugger_throw_exception): New
2967 public method; this is called each time an exception is thrown and
2968 allows the debugger to use exception catch points.
2970 2004-10-21 Martin Baulig <martin@ximian.com>
2972 * mono-debug-debugger.c (mono_debugger_handle_exception): Write
2973 the stack pointer and the exception object in some struct and pass
2974 that to the debugger.
2976 2004-10-21 Chris Toshok <toshok@ximian.com>
2978 * mono-debug-debugger.c (do_write_class): add instance/static
2979 event support. We don't expose "raise" or "other" yet.
2980 (event_is_static): new method.
2982 2004-10-20 Bernie Solomon <bernard@ugsolutions.com>
2984 * mono-debug-debugger.c
2985 (mono_debugger_handle_exception): Remove
2986 bogus return value for fussy compilers.
2988 2004-10-20 Martin Baulig <martin@ximian.com>
2990 * mono-debug-debugger.c
2991 (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
2992 (mono_debugger_handled_exception): Likewise.
2994 2004-10-20 Martin Baulig <martin@ximian.com>
2996 * mono-debug-debugger.h (MonoDebuggerEvent): Added
2997 MONO_DEBUGGER_EVENT_EXCEPTION.
2999 * mono-debug-debugger.c (mono_debugger_handle_exception): New
3000 public function to send the debugger a notification for an
3001 exception and inform it about a catch/finally clause.
3003 2004-10-19 Zoltan Varga <vargaz@freemail.hu>
3005 * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
3006 Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
3009 * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
3011 2004-10-18 Zoltan Varga <vargaz@freemail.hu>
3013 * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
3014 marshalled as [In,Out]. Fixes #58325.
3016 2004-10-14 Zoltan Varga <vargaz@freemail.hu>
3018 * reflection.c (mono_method_body_get_object): Implement some fields.
3020 2004-10-12 Martin Baulig <martin@ximian.com>
3022 * reflection.c (mono_reflection_bind_generic_parameters): Small
3023 fix, correctly retrieve our parent from a generic instance.
3025 2004-10-12 Martin Baulig <martin@ximian.com>
3027 * metadata.c (mono_metadata_generic_param_equal): We always have
3031 (mono_class_from_generic_parameter): We need to have an owner.
3032 (my_mono_class_from_generic_parameter): Likewise.
3034 * reflection.c (mono_reflection_setup_generic_class): Renamed to
3035 mono_reflection_create_generic_class() and added a new
3036 mono_reflection_setup_generic_class().
3037 (mono_reflection_initialize_generic_param): If we're a nested
3038 generic type and inherited from the containing class, set our
3039 owner to the outer class.
3041 2004-10-11 Zoltan Varga <vargaz@freemail.hu>
3043 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
3045 * reflection.c (mono_method_body_get_object): New function to create
3046 a MethodBody object.
3048 * object-internals.h object.h: Add MonoReflectionMethodBody structure.
3050 2004-10-11 Martin Baulig <martin@ximian.com>
3052 * metadata.c (_mono_metadata_type_equal): Renamed to
3053 do_mono_metadata_type_equal() and made static.
3055 2004-10-11 Martin Baulig <martin@ximian.com>
3057 * appdomain.c: Bump corlib version number to 28.
3059 2004-10-10 Martin Baulig <martin@ximian.com>
3062 (MonoGenericInst): Added `MonoGenericContainer *container'.
3063 (MonoGenericMethod): Likewise.
3064 (MonoGenericContext): Likewise.
3065 (MonoGenericParam): Added `MonoGenericContainer *owner'.
3068 (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
3069 (do_mono_metadata_parse_generic_inst): Likewise.
3070 (mono_metadata_parse_type_full): New public method. This is the actual
3071 mono_metadata_parse_type() implementation - with an additional
3072 `MonoGenericContainer *' argument.
3073 (mono_metadata_parse_array_full): Likewise.
3074 (mono_metadata_parse_signature_full): Likewise.
3075 (mono_metadata_parse_method_signature_full): Likewise.
3076 (mono_metadata_parse_mh_full): Likewise.
3077 (mono_type_create_from_typespec): Likewise.
3078 (mono_metadata_interfaces_from_typedef_full): New public method;
3079 this is similar to the other _full() methods, but we take a
3080 `MonoGenericContext *' since we have to pass it to mono_class_get_full().
3081 (mono_metadata_parse_generic_param): Take an additional
3082 `MonoGenericContainer *' argument and lookup the MonoGenericParam
3083 from that container.
3084 (mono_metadata_generic_param_equal): New static method to compare
3085 two type parameters.
3086 (_mono_metadata_type_equal): New static method; takes an
3087 additional `gboolean signature_only' argument - if true, we don't
3088 compare the owners of generic parameters.
3089 (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
3090 with a TRUE argument - do a signature-only comparision.
3092 * loader.c: Use the new _full() methods and pass the
3093 MonoGenericContainer to them.
3095 * object-internals.h (MonoReflectionTypeBuilder): Added
3096 `MonoGenericContainer *generic_container' field.
3097 (MonoReflectionMethodBuilder): Likewise.
3099 2004-10-08 Zoltan Varga <vargaz@freemail.hu>
3101 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
3102 case initial images of dynamic assemblies.
3104 * reflection.c (mono_image_basic_init): Set 'initial_image' field.
3106 * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
3108 * reflection.c (mono_reflection_event_builder_get_event_info): Fix
3109 length of event->other array.
3110 (typebuilder_setup_events): Ditto.
3112 * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
3113 'assembly_by_name' and add an 'assemblies' list.
3115 * assembly.h assembly.c: Add a new search hook for determining whenever
3116 an assembly is already loaded. Use this instead of searching in the
3117 loaded_assemblies list.
3119 * domain.c appdomain.c: Implement the new search hook so loaded
3120 assemblies are now scoped by appdomain. Fixes #67727.
3122 2004-10-07 Zoltan Varga <vargaz@freemail.hu>
3124 * threads.c (mono_thread_attach): Initialize synch_lock field so
3125 mono_thread_detach works again.
3127 * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
3128 'lib' too. Fixes #63130.
3130 2004-10-06 Jackson Harper <jackson@ximian.com>
3132 * culture-info-tables.h: regenerated.
3134 2004-10-06 Zoltan Varga <vargaz@freemail.hu>
3136 * icall.c (ves_icall_Type_GetInterfaces): Include interfaces
3137 implemented by other interfaces in the result. Fixes #65764.
3139 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
3140 Handle unloadable modules without crashing.
3142 * image.c (load_modules): Revert the previous patch since modules must
3143 have a fixed index inside the array.
3145 * image.c (load_modules): Don't include native modules in the modules
3148 2004-10-05 Zoltan Varga <vargaz@freemail.hu>
3150 * reflection.h: Add param_defaults field.
3152 * reflection.c: Add support for parameter defaults in dynamic methods.
3155 * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
3156 an empty string when a type has no namespace. Fixes #64230.
3158 2004-10-04 Sebastien Pouliot <sebastien@ximian.com>
3160 * tabledefs.h: Added "internal" security actions to support non-CAS
3161 permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance.
3162 Note: they do not seems to be used anymore in 2.0 (new metadata format)
3164 2004-10-04 Zoltan Varga <vargaz@freemail.hu>
3166 * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
3167 constructor of abstract class. Fixes #61689.
3169 2004-10-04 Martin Baulig <martin@ximian.com>
3171 * class-internals.h (MonoGenericContainer): New type.
3172 (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
3173 `MonoGenericContainer *generic_container'.
3174 (MonoClass): Replaced `gen_params' and `num_gen_params' with
3175 `MonoGenericContainer *generic_container'.
3177 * metadata.c (mono_metadata_load_generic_params): Return a
3178 `MonoGenericContainer *' instead of a `MonoGenericParam *';
3179 removed the `num' argument.
3181 2004-10-03 Zoltan Varga <vargaz@freemail.hu>
3183 * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
3186 * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
3189 * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
3191 * reflection.c: Save pe_kind and machine values into the generated
3194 * appdomain.c: Bump corlib version number.
3196 * object-internals.h: Reorganize layout of LocalBuilder.
3198 * class-internals.h class.c (mono_class_get_implemented_interfaces):
3199 New helper function.
3201 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
3202 created MonoType for dynamic types. Fixes #66180.
3204 2004-10-02 Ben Maurer <bmaurer@ximian.com>
3206 * threadpool.c: the ares hashtable needs a critical section around it.
3207 this prevents some nasty segfaults
3209 2004-10-02 Massimiliano Mantione <massi@ximian.com>
3211 * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
3212 on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
3215 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
3217 * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
3219 2004-09-30 Lluis Sanchez Gual <lluis@novell.com>
3221 * image.c: Always canonicalize image file names, to avoid loading
3222 the same assembly twice when referenced using a relative path.
3224 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
3226 * marshal.h marshal.c icall.c: Fix bugs in previous patch.
3228 * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
3230 * marshal.c: Fix warnings.
3232 2004-09-29 Geoff Norton <gnorton@customerdna.com>
3234 * marshal.c (mono_ftnptr_to_delegate): This method was improperly
3235 attempting to marshal the delegate_trampoline as the method_addr.
3236 This patch has a static hashtable of marshalled delegates so that
3237 we can map delegate_trampoline addresses back to delegates. This
3238 allows a delegate passed to managed code to be passed back into native
3241 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
3243 * icall.c: Add GetFunctionPointerForDelegateInternal icall.
3245 * reflection.c (method_encode_code): Align method headers properly.
3248 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
3250 * marshal.c: In the runtime invoke wrapper, reset the abort
3251 exception if it is cached. This avoids the automatic rethrowal of
3252 the exception after the catch of the wrapper. Also check for pending
3253 interruptions before calling the managed method. This is done using
3254 the new method emit_thread_force_interrupt_checkpoint, since the
3255 normal checkpoint method is ignored when running the invoke wrapper.
3256 * object.c: If the abort exception is rethrown, set the abort_exc
3257 field of the thread, so it will be rethrown aftere every catch.
3258 * threadpool.c: Only run an interruption checkpoint if what has been
3259 requested is a stop of the thread (aborts will be ignored).
3260 * threads.c: By default, a thread will now never be interrumped while
3261 running the runtime invoke wrapper (this ensures that runtime_invoke
3262 will always return to the caller if an exception pointer is provided).
3263 There is a new special method mono_thread_force_interruption_checkpoint()
3264 to force an interruption checkpoint even if running a protected
3265 wrapper, which is used by the same runtime invoke wrapper to do a check
3268 2004-09-28 Lluis Sanchez Gual <lluis@novell.com>
3270 * object.c, object-internals.h: Implemented mono_release_type_locks,
3271 which releases the cctor locks held by a thread.
3272 * threads.c, threads.h: In thread_cleanup, release cctor locks held
3273 by a thread. Added mono_thread_exit() method to be used to safely stop
3276 2004-09-28 Raja R Harinath <rharinath@novell.com>
3278 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
3279 Move null check before dereference. Avoid indexing beyond the end
3280 of the 'modules' array.
3282 2004-09-28 Raja R Harinath <rharinath@novell.com>
3284 * metadata-internals.h (MonoImage): Add module_count field.
3285 * image.c (load_modules): Set image->module_count.
3286 (mono_image_load_file_for_image): Use image->module_count.
3287 * reflection.c (mono_image_load_module): Append to image->modules array
3288 of dynamic assembly.
3289 (mono_module_get_object): Fix loop to actually increment index.
3290 Use image->module_count.
3291 * assembly.c (mono_assembly_load_references): Use image->module_count.
3292 * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
3295 2004-09-28 Zoltan Varga <vargaz@freemail.hu>
3297 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
3298 Avoid assert on generic types.
3300 2004-09-26 Zoltan Varga <vargaz@freemail.hu>
3302 * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
3304 * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
3306 * reflection.c (mono_reflection_marshal_from_marshal_spec): New
3307 function to convert a MarshalSpec structure to its managed counterpart.
3309 * reflection.c: Fix warnings.
3311 * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
3314 * icall.c (mono_create_icall_signature): Fix build.
3316 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
3318 * icall.c: Add MakePointType icall.
3320 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
3323 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3325 * threadpool.c: reuse allocated slots in the queue.
3327 2004-09-24 Zoltan Varga <vargaz@freemail.hu>
3329 * object-internals.h (MonoReflectionDllImportAttribute): New structure.
3331 * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
3333 * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
3336 * tabledefs.h: Add constants for pinvoke attributes BestFit and
3337 ThrowOnUnmappableChar.
3339 * icall.c (ves_icall_Type_GetPacking): New icall.
3341 2004-09-24 Martin Baulig <martin@ximian.com>
3343 * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
3345 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3348 (mono_domain_set): allow setting a domain that is being unloaded.
3349 (mono_domain_unload): invoke the DomainUnload callbacks in the domain
3352 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
3354 * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
3355 the GetCustomAttributes icall.
3357 2004-09-23 Martin Baulig <martin@ximian.com>
3359 * object-internals.h (MonoReflectionGenericParam): Replaced
3360 'has_ctor_constraint', `has_reference_type' and `has_value_type'
3361 with `guint32 attrs'.
3363 2004-09-23 Martin Baulig <martin@ximian.com>
3365 * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
3367 2004-09-23 Martin Baulig <martin@ximian.com>
3369 * object-internals.h (GenericParameterAttributes): New enum.
3371 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
3373 * object-internals.h (MonoEventInfo): Add 'other_methods' field.
3375 * class.c (init_events): Fill out event->other field.
3377 * class.c: Fix warnings.
3379 * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
3381 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
3383 * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
3384 walk which doesn't supply the IL offset.
3386 2004-09-22 Martin Baulig <martin@ximian.com>
3388 * reflection.c (mono_reflection_setup_internal_class): If we're
3389 System.ValueType, System.Object or System.Enum, set
3390 `klass->instance_size' and create the vtable.
3391 (mono_reflection_create_internal_class): If we're an enum type,
3392 get the base class from our current corlib.
3394 2004-09-22 Zoltan Varga <vargaz@freemail.hu>
3396 * reflection.h (MonoResolveTokenError): New type.
3398 * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
3401 * icall.c: Add an 'error' argument to the ResolveToken icalls.
3403 2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
3405 * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
3406 Support also calling constructors, but only for already allocated objects.
3408 2004-09-17 Geoff Norton <gnorton@customerdna.com>
3410 * reflection.c (type_get_qualified_name): If the klass is null
3411 return the typename to avoid a NullRefEx.
3412 (encode_cattr_value): Get the qualified name of the boxed type,
3413 not the underlying enumtype. Fixes #62984.
3415 2004-09-21 Zoltan Varga <vargaz@freemail.hu>
3417 * marshal.c: Fix problems with previous checkin.
3419 2004-09-21 <vargaz@freemail.hu>
3421 * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
3422 existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
3424 * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
3426 2004-09-21 Geoff Norton <gnorton@customerdna.com>
3428 * icall.c (ves_icall_MonoType_GetElementType): GetElementType
3429 should only return a type for pointers, arrays, and passbyref types.
3432 2004-09-21 Martin Baulig <martin@ximian.com>
3434 * domain.c (mono_debugger_check_runtime_version): New public
3437 * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.
3439 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
3441 * reflection.c: Added missing sort to the declarative security
3442 attributes table. MS implementation stops seeing the attributes if the
3443 token number regress in the table (as shown by ildasm and permview).
3445 2004-09-20 Zoltan Varga <vargaz@freemail.hu>
3447 * object-internals.h (MonoReflectionModule): Add 'token' field.
3449 * reflection.c (mono_reflection_get_token): Add support for Module
3451 (mono_module_get_object): Set 'token' field.
3452 (mono_module_file_get_object): Set 'token' field.
3454 * icall.c: Add new Assembly and Module icalls.
3456 * appdomain.c: Bump corlib version.
3458 2004-09-19 Zoltan Varga <vargaz@freemail.hu>
3460 * loader.h loader.c class.h class.c: Add helper functions for obtaining
3461 tokens of metadata objects.
3463 * reflection.h reflection.c (mono_reflection_get_token): New function
3464 to obtain the token of a metadata object.
3466 * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
3468 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
3470 * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
3472 * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
3474 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
3476 * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
3477 * object-internals.h: Added 3 MonoArray* members to MonoReflection
3478 AssemblyBuilder to access the permissions set in the class lib.
3479 * reflection.c: Added security attributes encoding step in
3480 mono_image_build_metadata.
3481 * tabledefs.h: Added new security actions defined in 2.0:
3482 LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
3484 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
3486 * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
3489 2004-09-16 Lluis Sanchez Gual <lluis@novell.com>
3491 * locales.c: nullify the ICU_collator member of CompareInfo when it is
3492 finalized. There where random SIGSEVs at program termination, when
3493 an object being finalized was trying to do a string comparison and
3494 the current culture was already finalized.
3496 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3498 * threads.c: call thread_cleanup before finishing the thread if we get
3501 2004-09-16 Zoltan Varga <vargaz@freemail.hu>
3503 * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
3504 assemblies from the parent. Fixes #65665.
3506 2004-09-15 Zoltan Varga <vargaz@freemail.hu>
3508 * metadata.c (mono_metadata_parse_type): Fix parsing of custom
3511 2004-09-14 Bernie Solomon <bernard@ugsolutions.com>
3513 * reflection.h: add prototype for mono_get_dbnull_object
3514 * reflection.c: add prototypes for get_default_param_value_blobs
3515 and mono_get_object_from_blob for fussier compilers
3517 2004-09-14 Lluis Sanchez Gual <lluis@novell.com>
3519 * object.c: Added a "done" flag to TypeInitializationLock. This avoids
3520 false deadlock checks in class initialization.
3522 2004-09-13 Zoltan Varga <vargaz@freemail.hu>
3524 * image.c (mono_image_addref): Fix comment.
3526 * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
3529 2004-09-12 Jambunathan K <kjambunathan@novell.com>
3531 * reflection.c (mono_param_get_objects): Modified to return
3532 ParameterInfo.DefaultValue object.
3534 (get_default_param_value_blobs):
3535 (mono_get_object_from_blob):
3536 (mono_get_dbnull_object): New helper routines.
3538 * object.c (mono_get_constant_value_from_blob): New helper routine
3539 carved out from get_default_field_value ()
3541 * object-internals.h (mono_get_constant_value_from_blob): Added
3542 function declaration.
3544 2004-09-11 Zoltan Varga <vargaz@freemail.hu>
3546 * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load
3547 referenced assemblies. Fixes #62135.
3549 * exception.h exception.c (mono_get_exception_file_not_found2): New
3552 2004-09-10 Zoltan Varga <vargaz@freemail.hu>
3554 * class.h class.c: Add mono_type_get_underlying_type ().
3556 2004-09-09 Geoff Norton <gnorton@customerndna.com>
3558 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
3559 Fix GetTypes() to support dynamically created assemblies.
3561 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
3563 * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
3565 * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
3568 * reflection.h reflection.c loader.c: Allow dynamic construction of
3569 pinvoke methods. Fixes #65571.
3571 * reflection.c (mono_reflection_get_type): Revert previous change since
3572 it causes regressions.
3574 2004-09-08 Martin Baulig <martin@ximian.com>
3576 * class.c (class_compute_field_layout): Don't call
3577 mono_class_layout_fields() for open generic instances.
3579 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
3580 * threads.c appdomain.c: fix typo in GC macro
3582 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3584 * threads.c: don't call mono_thread_detach() in start_wrapper(),
3585 avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
3587 2004-09-08 Zoltan Varga <vargaz@freemail.hu>
3589 * image.c (mono_image_close): Applied patch from
3590 vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
3591 assembly is loaded multiple times from data.
3593 * image.c (mono_image_open): Fix warning.
3595 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
3597 * reflection.h reflection.c icall.c: Only call TypeResolve handlers
3600 * reflection.c (mono_reflection_create_runtime_class): Initialize
3601 klass->nested_classes. Fixes #61224.
3603 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
3605 * threads.c: sched_yield() on exit, to allow threads to quit.
3607 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
3609 * object.c (mono_unhandled_exception): Remove leftover debug code.
3611 2004-09-07 Atsushi Enomoto <atsushi@ximian.com>
3613 * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
3615 2004-09-07 Zoltan Varga <vargaz@freemail.hu>
3617 * marshal.c (emit_marshal_array): Really null terminate string arrays.
3619 * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
3621 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
3623 * marshal.c (emit_marshal_array): Null terminate string arrays.
3625 * marshal.c (raise_auto_layout_exception): Fix warning.
3627 * reflection.c (mono_param_get_objects): Initialize the default value
3628 with DBNull.Value, not null. Fixes #62123.
3630 2004-09-01 Miguel de Icaza <miguel@ximian.com>
3632 * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
3633 throw an exception with a cute explanation.
3635 2004-09-06 Dick Porter <dick@ximian.com>
3637 * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
3638 Close the new process's thread handle, as we don't use it. The
3639 handle stays around forever otherwise.
3641 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
3643 * object.c (arith_overflow): Fix warning.
3645 * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
3646 calling conventions in method refs. Fixes #65352.
3648 * reflection.c: Fix warnings.
3650 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
3652 * icall.c: Add a new icall for Array.Clear
3654 2004-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
3656 * object.c: When allocating an array, we have to throw
3657 an overflow exception if any of the lengths are < 0.
3659 2004-09-06 Zoltan Varga <vargaz@freemail.hu>
3661 * marshal.h marshal.c: Free unmanaged memory allocated by managed code
3662 properly. Also move implementation of string array marshalling to
3663 managed code. Fixes #42316.
3665 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3667 * assembly.c: provide more information when loading an assembly fails.
3669 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3671 * filewatcher.c: don't expect the development fam package to be
3674 2004-09-03 Zoltan Varga <vargaz@freemail.hu>
3676 * marshal.c: Make a copy of the signature cookie since it will be
3677 freed by the caller.
3679 * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
3681 * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
3683 * metadata.c (mono_metadata_free_marshal_spec): New function to free
3686 * marshal.c: More refactoring.
3688 * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
3691 2004-09-03 Lluis Sanchez Gual <lluis@novell.com>
3693 * object.c: In mono_message_invoke, fill the output parameter array after
3694 calling the managed method (it was done before the call). This fixes
3697 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
3699 * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
3702 2004-09-02 Martin Baulig <martin@ximian.com>
3704 * class.c (mono_class_instance_size): Don't allow generic type
3705 definitions or open generic instances.
3706 (mono_class_array_element_size): If we're a value type, call
3707 mono_class_instance_size() on the original class.
3709 * metadata.c (mono_type_size, mono_type_stack_size): Correctly
3710 handle generic instances.
3712 * mono-debug-debugger.c (write_type): Handle generic instances
3715 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
3717 * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
3718 the allocation request fails. Fixes #65089.
3720 * object.c (mono_runtime_free_method): Do not call mono_free_method.
3722 * object.c (mono_runtime_free_method): New function to free a dynamic
3725 * marshal.c (mono_delegate_free_ftnptr): New function to free the
3726 delegate trampoline.
3728 * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
3729 with hasthis as dynamic,
3731 * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
3733 * domain.c (mono_jit_info_table_remove): New function to remove an
3734 entry from the jit info table.
3736 * class-internals.h (MonoMethod): Add 'dynamic' field.
3738 * loader.c: Fix warnings.
3740 2004-09-01 Martin Baulig <martin@ximian.com>
3742 * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
3743 instead of mono_debugger_lock() because the latter one is a no-op
3744 unless running in the debugger.
3746 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
3748 * class.c (class_compute_field_layout): Classes with auto-layout or
3749 reference fields are not blittable.
3751 2004-09-01 Dick Porter <dick@ximian.com>
3753 * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
3754 mono_image_get_filename() to get the assembly location.
3757 * metadata.h: Fix compile warnings
3759 2004-09-01 Zoltan Varga <vargaz@freemail.hu>
3761 * class.c (class_compute_field_layout): System.Object is blittable.
3763 * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
3764 as in/out. Fixes #59909.
3766 2004-09-01 Martin Baulig <martin@ximian.com>
3768 * metadata.h (MONO_TYPE_ISREFERENCE): Call
3769 mono_metadata_generic_inst_is_valuetype() if we're a generic
3770 instance to check whether our underlying type is a reference type.
3772 2004-09-01 Martin Baulig <martin@ximian.com>
3774 * metadata.c (mono_type_size): If we're a generic instance, call
3775 mono_class_value_size() for value types.
3777 2004-08-31 Zoltan Varga <vargaz@freemail.hu>
3779 * marshal.c: Implement more custom marshalling functionality. Fixes
3782 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
3784 * mono-debug.c, debug-mono-symfile.c: add some locking love.
3786 2004-08-30 Zoltan Varga <vargaz@freemail.hu>
3788 * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
3790 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
3792 * icall.c: Fix some warnings.
3794 * threads.c (abort_appdomain_thread): Fix unref errors.
3795 (mono_thread_current): Fix THREAD_DEBUG define.
3797 2004-08-29 Zoltan Varga <vargaz@freemail.hu>
3799 * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
3801 * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
3803 2004-08-28 Zoltan Varga <vargaz@freemail.hu>
3805 * marshal.c (mono_marshal_get_native_wrapper): Add support for byref
3808 2004-08-28 Martin Baulig <martin@ximian.com>
3811 (mono_metadata_generic_inst_is_valuetype): New public function.
3813 * metadata.h (MONO_TYPE_ISSTRUCT): Call
3814 mono_metadata_generic_inst_is_valuetype() if we're a generic
3815 instance to check whether our underlying type is a valuetype.
3817 2004-08-26 Zoltan Varga <vargaz@freemail.hu>
3819 * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
3822 2004-08-25 Martin Baulig <martin@ximian.com>
3824 * loader.c (mono_get_method_from_token): Abstract methods can also
3825 be generic and thus have type parameters.
3827 * metadata-internals.h
3828 (MonoDynamicImage): Added `GPtrArray *gen_params'.
3830 * reflection.c (mono_image_get_generic_param_info): Don't create a
3831 metadata row, just add an entry to the `gen_params' array.
3832 (build_compressed_metadata): Sort the `gen_params' array and then
3833 actually create the metadata.
3835 2004-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3837 * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
3839 2004-08-25 Zoltan Varga <vargaz@freemail.hu>
3841 * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
3843 2004-08-24 Martin Baulig <martin@ximian.com>
3845 * class.cs (mono_class_is_subclass_of): Like an interface, a
3846 generic instance also derives from System.Object.
3848 2004-08-23 Zoltan Varga <vargaz@freemail.hu>
3850 * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
3851 custom modifiers to be in any order. Fixes #61990.
3853 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
3855 * object.c: Register mono_object_new_fast icall.
3857 * object.c (mono_class_get_allocation_ftn): Return to calling
3858 mono_object_new_fast, since it seems faster to compute the object
3859 size in unmanaged code than passing it as a parameter.
3861 * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
3863 * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
3864 this function with Boehm as the oom handler, so we don't have to check
3865 the result of GC_malloc.
3867 * object.c: Remove checks for oom.
3869 * object.h object.c (mono_class_get_allocation_ftn): New function to
3870 return the icall which can be used to allocate an instance of a given
3873 * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
3875 * class-internals.h: Add 'enabled' field.
3877 2004-08-19 Zoltan Varga <vargaz@freemail.hu>
3879 * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
3881 2004-08-18 Jambunathan K <kjambunathan@novell.com>
3882 * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
3885 2004-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
3887 * appdomain.c: use the Tls function for appdomain too,
3888 at Zoltan's request. Actually return in mono_context_get
3890 * appdomain.c, profiler.c, threads.c: use __thread
3892 2004-08-18 Zoltan Varga <vargaz@freemail.hu>
3894 * appdomain.c threads.c: Call GC_CreateThread on windows.
3896 * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
3897 multiple libraries since this don't work on windows.
3899 2004-08-18 Martin Baulig <martin@ximian.com>
3902 (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
3905 * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
3906 MonoMethodNormal since we also need it for abstract and interface
3910 (build_compressed_metadata): Sort the GenericParam table.
3911 (mono_image_create_token): Added `gboolean create_methodspec'
3912 argument; this is false when generating a MethodImpl token.
3913 (reflection_methodbuilder_to_mono_method): Abstract and interface
3914 methods may also have generic parameters.
3916 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
3918 * appdomain.c: thread local alloc
3920 2004-08-17 Martin Baulig <martin@ximian.com>
3922 * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
3925 (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
3928 * class.c (mono_type_get_full_name): New public function.
3929 (mono_type_get_name): Don't include the type arguments.
3931 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
3933 * Makefile.am: Build static versions of libmetadata and libmonoruntime
3934 for inclusion into the mono executable.
3936 2004-08-16 Martin Baulig <martin@ximian.com>
3938 * metadata.c (do_mono_metadata_parse_generic_inst): Store the
3939 MonoGenericInst, not the MonoType in the `generic_inst_cache'.
3941 2004-08-14 Martin Baulig <martin@ximian.com>
3943 * class.c (dup_type): Also copy the `byref' field.
3945 2004-08-15 Zoltan Varga <vargaz@freemail.hu>
3947 * reflection.c (create_dynamic_mono_image): Revert the last change
3948 since it breaks bootstrap.
3950 2004-08-14 Zoltan Varga <vargaz@freemail.hu>
3952 * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
3954 * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
3955 not free them with g_free.
3957 2004-08-11 Martin Baulig <martin@ximian.com>
3959 * reflection.c (mono_reflection_setup_internal_class): Also call
3960 mono_class_setup_mono_type() if we already have a `tb->type.type'.
3962 2004-08-09 Sebastien Pouliot <sebastien@ximian.com>
3964 * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when
3965 called during default (first) AppDomain creation. Keep track of
3966 Evidence when loading assemblies.
3968 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
3970 * opcodes.c, opcodes.h: reduce runtime relocations.
3972 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
3974 * culture-info.h, locales.c: fixes and chages to sue the new
3975 optimized format of the locale data.
3976 * culture-info-tables.h: regenerated.
3978 2004-08-06 Geoff Norton <gnorton@customerdna.com>
3980 * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
3982 2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
3984 * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
3985 ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
3986 * domain-internals.h: icall declaration.
3987 * icall.c: icall registration.
3988 * object-internals.h: New fields in MonoAssembly for CAS.
3990 2004-08-05 Duncan Mak <duncan@ximian.com>
3992 * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
3995 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
3997 * reflection.c: fix to deal with object[] arrays in custom ctors
4000 2004-08-05 Martin Baulig <martin@ximian.com>
4002 * class.c (mono_class_array_element_size): Added support for
4003 generic instances and correctly handle "recursive" types.
4005 2004-08-05 Zoltan Varga <vargaz@freemail.hu>
4007 * assembly.c: Fix warnings.
4009 2004-08-04 Martin Baulig <martin@ximian.com>
4012 (mono_type_get_name_recurse): Added `gboolean include_arity'
4013 argument specifying whether or not we should include the generic
4014 arity in the type name.
4015 (_mono_type_get_name): New static function.
4016 (mono_class_setup_vtable): If we're a generic instance, don't
4017 include the generic arity in the names of explicit method
4020 2004-08-03 Martin Baulig <martin@ximian.com>
4022 * class.c (mono_type_get_name_recurse): Enclose the generic type
4023 arguments in `<', '>'.
4025 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4027 * gc.c: make GC warning messages use the trace API, they are just
4028 noise to most of the users.
4030 2004-08-03 Martin Baulig <martin@ximian.com>
4032 * debug-mono-symfile.c (read_string): Correctly read the string.
4034 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
4036 * marshal.c (signature_dup_add_this): Fix bug in previous patch.
4038 * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
4040 (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
4042 2004-07-30 Martin Baulig <martin@ximian.com>
4044 * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
4045 Reflect latest symbol writer changes.
4047 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4049 * object.c: always create an object if null is passed
4050 to Invoke() where a valuetype is expected.
4052 2004-07-29 Bernie Solomon <bernard@ugsolutions.com>
4054 * marshal.c (mono_marshal_init): make managed
4055 signatures match native ones better for 64bits.
4057 2004-07-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4059 * appdomain.c: hack to build correctly the private bin path on windows.
4062 2004-07-28 Lluis Sanchez Gual <lluis@novell.com>
4064 * assembly.c: Load mscorlib from the correct framework directory
4065 (mono/<version>/mscorlib.dll).
4066 * appdomain.h: Added prototypes for new functions.
4067 * internals.h: Added some prototypes.
4068 * domain.c: When initializing the runtime, get from the executable and
4069 the configuration files the runtime version that the app supports.
4070 Added support methods for reading app.exe.config. Added list of versions
4071 supported by the JIT. Added two new methods: mono_init_from_assembly,
4072 which initializes the runtime and determines the required version from
4073 the provided exe file, and mono_init_version, which initializes
4074 the runtime using the provided version.
4075 * icall.c: Get machine.config from version-specific directory.
4076 * reflection.c: When generating an image, embed the version number
4077 of the current runtime.
4079 2004-07-28 Dick Porter <dick@ximian.com>
4082 (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
4083 returned sockaddr size before creating the remote address object.
4084 Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
4087 2004-07-28 Dick Porter <dick@ximian.com>
4089 * locales.c (string_invariant_compare_char): Fix invariant char
4090 compares between upper and lower cases. Fixes bug 61458.
4092 2004-07-27 Ben Maurer <bmaurer@ximain.com>
4094 * marshal.c: actually cache stelem.ref wrappers.
4096 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
4098 * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image
4099 sections and remove the mono_cli_rva_map () function.
4101 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4103 * debug-mono-symfile.c: fix one more endianess issue, from a patch
4104 by Geoff Norton (<gnorton@customerdna.com>).
4106 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4108 * class.c: fix class loads for pointer types (typeof(int) !=
4111 2004-07-27 Martin Baulig <martin@ximian.com>
4113 * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
4114 reading the debugging information from an external ".mdb" file.
4116 2004-07-24 Martin Baulig <martin@ximian.com>
4118 * reflection.c (mono_image_get_type_info): Only write a class
4119 layout entry if we actually have a size or a packing size.
4121 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
4123 * reflection.c (type_get_fully_qualified_name):
4124 insert cast to get type checking of ?: with non-gcc compilers
4126 2004-07-21 Bernie Solomon <bernard@ugsolutions.com>
4128 * rand.c: use g_getenv for both lookups of
4131 2004-07-17 Martin Baulig <martin@ximian.com>
4133 * reflection.c (mono_reflection_bind_generic_method_parameters):
4134 Set `gmethod->reflection_info'.
4136 2004-07-17 Martin Baulig <martin@ximian.com>
4138 * class.c (mono_class_create_from_typedef): Insert the newly
4139 created class into the hash table before computing the interfaces
4140 since we could be called recursively.
4142 2004-07-16 Ben Maurer <bmaurer@ximain.com>
4144 * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
4145 function to implement stelem.ref in managed code
4146 * class-internals.h, debug-helpers.c: a new wrapper type
4149 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4151 * gc.c: allow GC handles to work even when no GC is compiled in.
4152 Fix part of bug #61134 (GetAddrOfPinnedObject).
4154 2004-07-13 Peter Williams <peter@newton.cx>
4156 * process.c (complete_path): Make sure we don't attempt to execute
4159 2004-07-12 Geoff Norton <gnorton@customerdna.com>
4161 * DateTime.cs: Patch for bug #61112. Our DateTime wasn't roundtripping over timezone
4162 boundaries properly. This patch checkes ToLocalTime() to see if we're tripping over a boundary
4163 and will add/subtract the hour if needed
4165 2004-07-12 Martin Baulig <martin@ximian.com>
4167 * reflection.c (mono_field_get_object): If we have
4168 `field->generic_info', take the attributes from
4169 `field->generic_info->generic_type'.
4171 2004-07-12 Martin Baulig <martin@ximian.com>
4173 * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
4174 This function must be called before initializing the runtime.
4175 (mono_debug_init_1): New function; call this after initializing
4176 the runtime, but before loading the assembly. It tells the
4177 debugger to load corlib and the builtin types.
4179 * mono-debug-debugger.c: Did some larger changes in the debugging
4180 code; support recursive class declarations, make sure we actually
4183 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4185 * debug-helpers.c: undo my previous patch and fixed the real issue in
4186 ../mini/exceptions-x86.c
4188 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4190 * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
4191 when no HOME env. variable was set and a NullRef was thrown in a .cctor
4192 called from other .cctors.
4194 2004-07-09 Miguel de Icaza <miguel@ximian.com>
4196 * loader.c: Removed the mono_loader_wine_init hack now that we are
4197 doing a managed version of Windows.Forms.
4199 2004-07-09 Ben Maurer <bmaurer@ximian.com>
4201 * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
4202 threadpool.c, threads.c: remove static data from rootset.
4204 2004-07-09 Dick Porter <dick@ximian.com>
4206 * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
4207 Don't do any more processing if the matched length was 0. It was
4208 increasing the size of the string before. Fixes bug 61167.
4210 2004-07-09 Dick Porter <dick@ximian.com>
4214 (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4215 Add support for SO_PEERCRED if its available.
4217 2004-07-09 Peter Bartok <pbartok@novell.com>
4218 * loader.c: winelib.exe.so error message is now only displayed if
4219 MONO_DEBUG is set. To help us avoid questions when people are trying
4220 out the new Managed.Windows.Forms.
4222 2004-07-08 Zoltan Varga <vargaz@freemail.hu>
4224 * class-internals.h debug-helpers.c marshal.c: Add new wrapper types
4225 for isinst and castclass wrappers.
4227 * class-internals.h icall.c: Move registration and lookup of JIT icalls
4228 to libmetadata from the JIT, so they could be used by the marshalling
4229 code and the interpreter.
4231 * marshal.c: Register marshalling related JIT icalls here instead of
4232 in mini.c. Use CEE_MONO_ICALL instead of the family of
4233 CEE_MONO_PROC<x> opcodes to call marshalling functions.
4235 * metadata.h: Remove unneeded marshalling conversions.
4237 * opcodes.c: Update for new opcodes.
4239 2004-07-08 Martin Baulig <martin@ximian.com>
4241 * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
4242 (mono_debug_get_domain_data): Make this function static.
4244 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4246 * gc.c, object.h: add nice GC handle API for embedders.
4248 2004-07-06 Ben Maurer <bmaurer@ximian.com>
4250 * reflection.c: more changes for the new api
4252 * object.c: When we reflect on a field w/ a constant value, it
4253 will not have a memory location, so we must access metadata. Also,
4254 allow easier reading of strings so that we can read them from
4257 * class.c (mono_class_layout_fields): no need for literal fields here.
4259 * class-internals.h: api changes for const fields
4261 * icall.c (ves_icall_get_enum_info): use new apis for const fields
4263 2004-07-06 Martin Baulig <martin@ximian.com>
4265 * mono-debug.h: Increment version number to 44.
4267 * mono-debug.c (mono_debug_add_wrapper): The second argument is
4268 now a gpointer, rewrote this whole method.
4270 * mono-debug-debugger.c (mono_debugger_add_wrapper): New
4271 function. Add information about the wrapper in a new "misc table".
4273 * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
4274 for the new misc table.
4276 2004-07-05 Zoltan Varga <vargaz@freemail.hu>
4278 * metadata-internals.h image.c: Add a cache for helper signatures.
4280 * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
4282 2004-07-03 Zoltan Varga <vargaz@freemail.hu>
4284 * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
4285 delegates from a delegate. Fixes #61033.
4287 * marshal.c: Fix managed->native stringbuilder marshalling. Implement
4288 marshalling of stringbuilder arrays. Fixes #59900.
4290 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
4292 * icall.c: Add EnumBuilder:setup_enum_type icall.
4294 2004-06-30 Ben Maurer <bmaurer@ximian.com>
4296 * icall.c: Added a new icall for the property version of
4299 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
4301 * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
4302 it has a constant size across platforms.
4304 * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
4307 2004-06-29 Martin Baulig <martin@ximian.com>
4309 * mono-debug.c (mono_debug_add_method): Protect the whole function
4310 in mono_debugger_lock(), not just parts of it.
4312 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
4314 * reflection.c: make sure padding bytes in heaps are zeroed.
4316 2004-06-24 David Waite <mass@akuma.org>
4318 * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
4319 image.c, loader.c, locales.c, marshal.c, metadata.c,
4320 mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
4321 string-icalls.c, threads.c: change to C90-style comments from C99 /
4324 2004-06-24 Dick Porter <dick@ximian.com>
4327 (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
4328 return createdNew. Fixes bug 60412.
4331 * icall.c: Add createdNew parameter to CreateMutex icall
4333 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4335 * reflection.c, object-internals.h: save default value in params.
4337 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4339 * appdomain.c: for paths in PrivateBinPath that are absolute, there's
4340 no need to build a new path combining that with the application base.
4343 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
4345 * reflection.c: fixed minor standard compliance issues.
4347 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4349 * reflection.c: fixed issue with encoding some custom attributes
4350 (arrays in properties and fields, bug #60411).
4352 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4354 * reflection.c: fix start address when copying the public key token.
4356 2004-06-23 Martin Baulig <martin@ximian.com>
4358 * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
4359 the `exc' object in a static object to put it into the GC's root set.
4361 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
4363 * reflection.c: make mono_reflection_setup_internal_class ()
4364 callable a second time to setup a new parent class.
4366 2004-06-23 Dick Porter <dick@ximian.com>
4368 * threads.c: Check for WAIT_IO_COMPLETION return values.
4370 2004-06-22 Sebastien Pouliot <sebastien@ximian.com>
4372 * appdomain.c: Removed the g_free on the public key token. Now copy
4373 the pk token string into the MonoAssemblyName buffer using g_strlcpy.
4374 * assembly.c: Added public key token string value when loading
4375 assemblies. Fix bug #60439.
4376 * icall.c: Added missing informations (like public key) in
4377 GetReferencedAssemblies. Fix #60519.
4378 * image.h: Changed definition for public key token from const char*
4379 public_tok_value to guchar public_key_token [17];
4380 * reflection.c: Updated for changes to public key token.
4382 2004-06-22 Lluis Sanchez Gual
4384 * icall.c: In ves_icall_InternalExecute, when setting a filed, also look
4385 for the field in base classes.
4387 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4389 * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
4390 mark headers as not supported, they are installed only for use by the
4393 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
4395 * *.c, *.h: avoid namespace pollution in public headers.
4397 2004-06-21 Martin Baulig <martin@ximian.com>
4399 * exception.c (mono_get_exception_security): It's in
4400 "System.Security", not in "System".
4402 * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
4403 the exception classes.
4405 2004-06-21 Martin Baulig <martin@ximian.com>
4407 * mono-debug-debugger.c (mono_debugger_unhandled_exception):
4408 Protect the exception object from being finalized.
4410 2004-06-21 Martin Baulig <martin@ximian.com>
4412 * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
4415 2004-06-21 Sebastien Pouliot <sebastien@ximian.com>
4417 * reflection.c: Load the assembly in mono_reflection_type_from_name,
4418 if it was not loaded before. Fix parts of #60439.
4420 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
4422 * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
4423 code that was broken since Ben's change: wrappers are now
4424 dependent on the method signature only again.
4426 2004-06-21 Martin Baulig <martin@ximian.com>
4428 * mono-debug-debugger.c (write_class): Cleaned this up a bit and
4429 added interface support.
4431 2004-06-21 Martin Baulig <martin@ximian.com>
4433 * class.c (mono_vtable_get_static_field_data): New public method.
4435 2004-06-20 Atsushi Enomoto <atsushi@ximian.com>
4437 * filewatcher.c : Windows build fix to be compliant with API changes.
4439 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4441 * class.h, class.c: more accessors.
4442 * metadata.h, metadata.c: prepare for hiding MonoType and
4443 MonoMethodSignature: people should use the accessors from now on
4444 outside of the tree.
4446 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4448 * *.c, *.h: more API cleanups.
4450 2004-06-18 Jackson Harper <jackson@ximian.com>
4452 * assembly.c: Trace loading assemblies.
4453 * loader.c: Trace loading native libraries.
4454 * mono-config.c: Trace loading config files.
4456 2004-06-18 Dick Porter <dick@ximian.com>
4458 * locales.c: Tell ICU the lengths of strings, it can cope with
4459 embedded \0 then. Fixes bug 59274, and doesn't break bug 55822.
4461 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
4463 * image.c: swapped name/filename;
4465 2004-06-18 Martin Baulig <martin@ximian.com>
4467 * mono-debug-debugger.c (write_class): Write the parent class at
4468 the end of the header.
4470 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4472 * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
4474 2004-06-17 Raja R Harinath <rharinath@novell.com>
4476 * Makefile.am (PLATFORM_LIB): New. Possibly refer to ../os/libmonoos.la.
4477 (bundle_obj): New conditional define.
4478 (BUILT_SOURCES): Remove.
4479 ($(bundle_srcs)): Make parallel-make safe.
4480 (libmonoruntime_la_LIBADD): Make unconditional.
4481 (libmetadata_la_LIBADD): Make unconditional. Refer to $(bundle_obj).
4482 (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
4484 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
4486 * culture-info-tables.h: It was inconsistent with the latest
4489 2004-06-17 Zoltan Varga <vargaz@freemail.hu>
4491 * assembly.c (mono_assembly_open): Fix crash when the assembly can't
4494 * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
4497 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4499 * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
4500 cleaned up public header threads.h.
4502 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4504 * Makefile.am, *.c, *.h: more API cleanups.
4506 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
4508 * Makefile.am: removed monosn from compilation.
4509 * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
4510 debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
4511 image.c, image.h, loader.c, marshal.c, metadata-internals.h,
4512 metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
4513 mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
4514 reflection.c, reflection.h, verify.c: more API cleanups and fixes.
4516 2004-06-15 Jackson Harper <jackson@ximian.com>
4518 * assembly.c: Make locales lower case when searching the GAC for
4519 assemblies. gacutil will always make locales lowercase when
4520 installing so this effectively makes them case insensitive.
4522 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
4524 * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
4525 * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
4526 parameter which allows to choose whether the wait can be interrupted or
4527 not. Also added the method mono_monitor_enter(), which locks the monitor
4528 using an infinite wait and without allowing interruption.
4529 In the Monitor.Enter and Wait icalls, retry the lock if the wait is
4531 * object.h: Added new fields in MonoThread. suspend_event holds the event
4532 used to susped/resume the thread. synch_lock is the lock object to use for
4533 modifying the thread state.
4534 * threads.c: Use the new synch_lock object for locking, instead of "this",
4535 which can generate deadlocks.
4536 Moved thread state change in Thread.Sleep and Thread.Join from managed
4537 to unmanaged code. This avoids a deadlock when the thread was suspended
4538 just after acquiring the thread lock.
4539 In general, use mono_monitor_enter instead of mono_monitor_try_enter.
4540 Implemented Thread.Suspend using an event instead of ThreadSuspend,
4541 which is not fully implemented in the io-layer.
4542 * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
4544 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
4546 * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
4547 threads-types.h: more API cleanups.
4549 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4551 * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
4552 domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
4553 threadpool.c, threads.c: first pass at the exported API cleanup.
4555 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
4557 * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
4559 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4561 * icall.c: added internalGetHome.
4563 2004-06-14 Dick Porter <dick@ximian.com>
4565 * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
4566 possible to return successfully when '.' or '..' were the only
4567 entries in a directory, but were skipped. The MonoIOStat was not
4568 filled in in that case. Now return ERROR_NO_MORE_FILES instead.
4571 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4573 * reflection.c: make binaries run on .Net 1.1 by default.
4575 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
4577 * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
4579 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
4581 * marshal.c: keep track of struct size with explicit layout
4584 2004-06-12 Martin Baulig <martin@ximian.com>
4586 * mono-debug-debugger.c: Comment out a debugging g_message().
4588 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4590 * reflection.c, reflection.h: do not free custom attrs that are cached.
4591 * icall.c: use braces to make code clearer.
4593 2004-06-11 Martin Baulig <martin@ximian.com>
4595 * class.h (MonoInflatedField): New type.
4596 (MonoClassField): Replaced `MonoType *generic_type' with
4597 `MonoInflatedField *generic_info'.
4600 (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
4602 2004-06-11 Martin Baulig <martin@ximian.com>
4604 * reflection.c (mono_image_create_method_token): Correctly encode
4607 2004-06-11 Martin Baulig <martin@ximian.com>
4609 * metadata.c (mono_metadata_parse_method_signature): When parsing
4610 a MethodDef which has VarArgs, also set sentinelpos if we don't
4611 have any parameters.
4613 2004-06-11 Martin Baulig <martin@ximian.com>
4615 * verify.c (mono_method_verify): In CEE_CALL, use
4616 mono_method_get_signature() to get the method's signature, unless
4617 we're a PInvoke method.
4619 2004-06-10 Jackson Harper <jackson@ximian.com>
4621 * assembly.c: Use <path>/lib/mono/gac for the extra paths
4622 lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
4623 logical name as the supplied path is just a prefix to the gac not
4624 the direct path to it.
4626 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
4628 * reflection.c: make the token for a created method match
4629 the token of the MethodBuilder it was created from
4630 (IKVM requires this behaviour now).
4632 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
4634 * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
4635 reflection.c, socket-io.c: leak fixes.
4637 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
4639 * icall.c: handle sentinel pos in vararg methods in position different
4642 2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4644 * culture-info-tables.h: freshly generated.
4646 2004-06-09 Martin Baulig <martin@ximian.com>
4648 * loader.c (mono_get_method_constrained): Call `mono_class_init
4649 (constrained_class)'.
4651 2004-06-08 Gert Driesen <drieseng@users.sourceforge.net>
4653 * icall.c (ves_icall_MonoType_GetEvent): Handle events without
4654 any methods. Fixes #59629.
4656 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
4658 * culture-info-tables.h: reflecting locale-builder updates.
4660 2004-06-08 Dick Porter <dick@ximian.com>
4663 * locales.c: Fixed compile warnings, including a real bug in
4664 CompareInfo_internal_compare.
4666 2004-06-08 Dick Porter <dick@ximian.com>
4669 (ves_icall_System_Globalization_CompareInfo_internal_index):
4670 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
4671 Double-check the resuls of usearches, because ICU currently
4672 ignores most of the collator settings here. Fixes bug 59720.
4674 2004-06-08 Dick Porter <dick@ximian.com>
4677 (ves_icall_System_Globalization_CompareInfo_internal_index_char):
4678 Fix memory leak and segfault-causing typo. No idea how this one
4679 lasted so long without being noticed.
4681 2004-06-09 Zoltan Varga <vargaz@freemail.hu>
4683 * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
4684 any methods. Fixes #59629.
4686 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4689 (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
4690 own the critical section before). Removed dead code (that's done
4691 in the preload hook).
4693 (mono_assembly_load_with_partial_name): call the preload hook.
4695 2004-06-08 Martin Baulig <martin@ximian.com>
4697 * metadata.c (mono_metadata_signature_alloc): Default
4698 `sentinelpos' to -1.
4700 * reflection.c (mono_image_get_array_token): Likewise.
4702 2004-06-08 Martin Baulig <martin@ximian.com>
4704 * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
4706 * metadata.c (mono_metadata_parse_method_signature): When parsing
4707 a MethodDef which has VarArgs, set sentinelpos.
4709 * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
4710 `gint16' since we're using -1 for non-varargs methods.
4713 (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
4714 (method_encode_signature): Added varargs support.
4715 (method_builder_encode_signature): Likewise.
4716 (mono_image_get_varargs_method_token): New static method.
4717 (mono_image_create_method_token): New public method; this is
4718 called via an icall instead of mono_image_create_token() when
4719 calling a varargs method.
4721 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
4723 * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
4725 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
4727 * culture-info-tables.h : Reflecting the latest locale-builder that
4728 fixed empty array representation ({} to {0}).
4730 2004-06-07 Jackson Harper <jackson@ximian.com>
4732 * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
4733 looking up extra gac paths. This allows MONO_GAC_PATH to act
4734 exactly like a prefix.
4736 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
4738 * reflection.c (mono_reflection_type_from_name): Make a copy of the
4739 type name before modifying it. Fixes #59405.
4741 2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
4743 * culture-info.h: added fields for "all datetime patterns".
4744 * locales.c: ( ves_icall_System_Globalization_CultureInfo
4745 _construct_datetime_format ()): fill xxx_patterns fields.
4746 * object.h: added fields for "all datetime patterns" to
4747 MonoDateTimeFormatInfo.
4748 * culture-info-tables.h: reflecting locale-builder updates.
4750 2004-06-08 Zoltan Varga <vargaz@freemail.hu>
4752 * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
4753 the event has no add and remove methods. Fixes #59629.
4755 2004-06-05 Sebastien Pouliot <sebastien@ximian.com>
4757 * object.c: Fixed possible integer overflow when allocating large
4760 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
4762 * culture-info-tables.h: reflecting locale-builder updates.
4764 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
4766 * culture-info-tables.h: reflecting locale-builder updates.
4768 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
4770 * culture-info-tables.h: reflecting locale-builder updates.
4772 2004-06-03 Lluis Sanchez Gual <lluis@ximian.com>
4774 * threads.c: Made Thread.Sleep abortable.
4776 2004-06-02 Martin Baulig <martin@ximian.com>
4778 * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
4780 * debug-mono-symfile.h: Bumped symbol file version number to 37.
4782 2004-05-31 Zoltan Varga <vargaz@freemail.hu>
4784 * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
4786 2004-05-30 Jackson Harper <jackson@ximian.com>
4788 * reflection.c: Do not hardcode assembly versions or public key
4789 tokens anymore. All of this except the corlib section was dead
4792 2004-05-29 Zoltan Varga <vargaz@freemail.hu>
4794 * object.c (mono_runtime_invoke_array): Automatically create boxed
4795 objects for byref valuetypes if needed. Fixes #59300.
4797 * object.c (mono_method_return_message_restore): Handle
4798 MONO_TYPE_OBJECT as well.
4800 2004-05-28 Jackson Harper <jackson@ximian.com>
4802 * reflection.c: The modified type encoding was causing build
4803 problems. Reverted for now.
4805 2004-05-28 Jackson Harper <jackson@ximian.com>
4807 * reflection.c/h: Take an assembly ref so that we dont create
4808 fully qualified names when encoding types in the same assembly as
4809 the custom attribute being emitted.
4810 * appdomain.c: Increment version number.
4812 2004-05-26 Duncan Mak <duncan@ximian.com>
4815 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
4816 Set the full version number (major, minor, build, revision).
4818 2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
4820 * marshal.c (emit_struct_conv): increment src/dst after blit
4821 (mono_marshal_get_managed_wrapper,
4822 mono_marshal_get_native_wrapper): make sure we have marshalling
4823 info before marshalling params (info computation affects
4826 * class.c (class_compute_field_layout): correctly deal with
4828 (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
4829 value types (as per what windows dows by default)
4830 (mono_class_setup_mono_type): System.ValueType is blittable
4831 (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
4834 * marshal.c (mono_marshal_load_type_info): flag types as
4835 non-blittable if the native layout doesn't match the managed
4838 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4840 * appdomain.c: don't add stuff in the private search path that is
4841 above the application base. If application base is not set, there's
4842 no private search path.
4844 2004-05-28 Zoltan Varga <vargaz@freemail.hu>
4846 * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
4847 byref struct arguments in native->managed marshalling.
4849 2004-05-28 Patrik Torstensson <totte@hiddenpeaks.com>
4851 * marshal.c (mono_marshal_get_runtime_invoke): correctly
4852 cache methods using signature (special case for methods
4853 that are value type or string class)
4855 * image.c (mono_image_close): clean up allocated GSList's
4856 in runtime_invoke_cache.
4858 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4860 * mono-config.c: set the correct path for mono_cfg_dir on windows when
4861 there's no MONO_CFG_DIR environment variable defined.
4863 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4865 * threads.c: windows version must be >= 0x0500 to include OpenThread.
4867 2004-05-28 Lluis Sanchez Gual <lluis@ximian.com>
4869 * threadpool.c: Really wait for 500ms after the async call, even if the wait
4871 * threads.c: In mono_thread_manage, call OpenThread to ref each handle
4872 before waiting for it, and call CloseHandle after the wait to unref it.
4873 This will make sure that handles are not disposed too early.
4875 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4880 ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
4883 * object.c: se the application_base only for the domain that runs
4884 Main. Fixes bug #59216,
4886 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4889 * object.c: only the domain in which Main is run have
4890 SetupInformation.ConfigurationFile set, so moved a few lines from
4891 appdomain.c to object.c.
4893 2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4895 * appdomain.c: we tried to load [name].(dll|exe), but according
4896 to bug #57710, we must also try [culture]/[name].(dll|exe) and
4897 [culture]/[name]/[name](dll|exe). This patch fixes the bug.
4898 There's a test case attached to bug #58922.
4900 2004-05-27 Dick Porter <dick@ximian.com>
4903 * file-io.c: Implemented icalls for locking and unlocking regions
4905 (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
4906 FALSE on error (fixes both compiler warning and real bug.)
4908 2004-05-27 Atsushi Enomoto <atsushi@ximian.com>
4910 * culture-info-tables.h: reflecting locale-builder updates.
4912 (Added missing ChangeLog entry for 05/26)
4914 2004-05-27 Jackson Harper <jackson@ximian.com>
4916 * locales.c: Fix some cut and paste errors.
4918 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4920 * mono-config.c: set the correct path for config. directory on windows.
4922 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
4924 * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
4927 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
4929 * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
4930 from pinvoke functions.
4932 * marshal.c (mono_ftnptr_to_delegate): Implement this.
4934 2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
4936 * culture-info-tables.h: reflecting locale-builder updates.
4938 2004-05-26 Zoltan Varga <vargaz@freemail.hu>
4940 * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
4943 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
4945 * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
4946 * icall.c: Modified icalls for RNG.
4947 * rand.c|h: Changed RNG interface to allow thread-safe usage under
4948 Windows (CryptoAPI).
4950 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
4952 * locales.c: Fix build.
4954 2004-05-25 Atsushi Enomoto <atsushi@ximian.com>
4956 * culture-info-tables.h: reflecting locale-builder updates.
4958 2004-05-25 Jackson Harper <jackson@ximian.com>
4960 * locales.c: When creating the current culture use the $LANGs
4961 specific culture. So DateTimeFormat and NumberFormat entries are created.
4963 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
4965 * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
4966 a char array as parameter.
4968 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
4970 * image.c: In mono_image_open(), always use an absolute path name to
4971 look for already loaded images.
4973 2004-05-24 Sebastien Pouliot <sebastien@ximian.com>
4975 * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
4976 missing in the windows build (like older cygwin include files).
4978 2004-05-23 Sebastien Pouliot <sebastien@ximian.com>
4980 * icall.c: Fixed check for possible integer overflow in Buffer_
4981 BlockCopy icall. Replaced comments style // by /* */.
4983 2004-05-22 Zoltan Varga <vargaz@freemail.hu>
4985 * marshal.c (mono_ftnptr_to_delegate): Fix warning.
4987 * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
4988 check after MONO_VTADDR. Fixes pinvoke2.exe.
4990 * marshal.h marshal.c metadata.h: Add beginnings of support for
4991 ftnptr -> delegate marshalling.
4993 2004-05-21 Zoltan Varga <vargaz@freemail.hu>
4995 * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
4996 * threads.c: Fix warnings.
4998 2004-05-20 Lluis Sanchez Gual <lluis@ximian.com>
5000 * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
5001 * icall.c: Registered icalls for Suspend and Resume.
5002 * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
5004 * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
5005 * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
5006 * process.c: Use WaitForSingleObjectEx.
5007 * threadpool.c: Use WaitForSingleObjectEx. Added some interruption
5009 * threads.c, threads.h: Make use of new Ex wait methods. Improved
5010 implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
5011 for Suspend and Resume. Added new mono_thread_stop, used for stoping
5012 background threads. Added basic support for Abort in Windows.
5013 Start new threads using a managed delegate invoke wrapper. This wrapper
5014 has an interruption checkpoint that is needed since an interruption
5015 can be requested before the thread leaves the unmanaged code that starts
5017 * marshal.c: Added interruption checkpoint after every native call, and
5018 also before managed calls for wrappers called from unmanaged code to
5019 go into managed code.
5020 * object.h: Added new field in MonoThread to keep track of interruption
5023 2004-05-20 Zoltan Varga <vargaz@freemail.hu>
5025 * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
5028 2004-05-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5035 * rand.c: getenv -> g_getenv (windows!)
5037 * process.c: complete_path is also used on non-windows platforms.
5039 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5041 * icall.c: new signature for Process_Start.
5043 * process.[ch]: new signature for Process_Start. If we're on windows
5044 and UseShellExecute is false, we have to search for the program by
5045 ourselves if we don't get a full path.
5047 2004-05-18 Zoltan Varga <vargaz@freemail.hu>
5049 * marshal.c (mono_marshal_get_native_wrapper): Fix up custom
5050 marshalling and call CleanUpNativeData if needed. Fixes #58646.
5052 2004-05-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5054 * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
5057 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5059 * process.c: use double quotes to quote program name and arguments on
5060 windows. Fixes bug #58575.
5062 2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5064 * file-io.c: don't return "." and ".." when using windows Find*File.
5066 2003-05-17 Patrik Torstensson <totte@hiddenpeaks.com>
5068 * marshal.c: Don't pass wrappers to message init because method
5069 addressed used to lookup metadata. part of remoting[2|3] fix.
5071 2004-05-15 Jackson Harper <jackson@ximian.com>
5073 * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
5074 path is essentially the same as MONO_PATH except that it points to
5075 GACs instead of lib directories.
5076 * loader.h: The user gac is gone so we dont need function to
5078 * mono-config.c: user gac option is now gone.
5080 2004-05-15 Jackson Harper <jackson@ximian.com>
5082 * culture-info.h: Make defines more consistent, add calendar data
5083 to the culture info table.
5084 * culture-info-tables.h: Add basic calendar data. Basically
5085 everyone gets default gregorian until all the data is
5087 * locales.c: Use the new consistent defines. Set calendar data for
5088 culture info objects.
5089 * object.h: add a field for calendar data to CultureInfo
5091 2004-05-14 Ben Maurer <bmaurer@users.sourceforge.net>
5093 * image.c: image->runtime_invoke_cache is keyed on signatures now.
5094 * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
5096 (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
5097 (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
5098 an extra param that is the pointer of the method to invoke. The IL for
5099 the invoke method is no longer specific to the method, but to the
5100 signature of the method. Thus, we can share the same code for multiple
5101 methods. This reduces the number of methods that have to be compiled.
5103 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
5105 * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
5107 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5109 * icall.c: Optimize Buffer.BlockCopy.
5111 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5113 * culture-info-tables.h: seems like Spanish and Portuguese cultures had
5114 DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
5115 quote). Changed them to "MMMM yyyy".
5117 2004-05-12 Miguel de Icaza <miguel@ximian.com>
5120 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file.
5122 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
5124 * reflection.h: Updated after changes to managed structures.
5126 * appdomain.c: Bump corlib version.
5128 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5130 * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
5133 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5135 * Makefile.am: link to ../os/libmonoos.la on windows.
5138 -If MONO_DEBUG, warn about non-existing directories in
5140 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
5141 compile time variable.
5142 -Removed init_default_path and call mono_set_rootdir from
5143 libmonoos.a instead (windows only).
5145 * assembly.h: declare mono_assembly_getrootdir().
5148 * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
5150 * loader.c: s/getenv/g_getenv/
5152 2004-05-11 Zoltan Varga <vargaz@freemail.hu>
5154 * marshal.{h,c}: Add support for UnmanagedType.AsAny.
5156 * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
5158 * metadata.h: Add new marshalling conversions.
5160 * metadata.h metadata.c (mono_metadata_signature_dup): New helper
5163 * reflection.c (mono_reflection_get_type): Lookup the type in all
5164 modules of a multi-module assembly. Fixes #58291.
5166 2004-05-11 Lluis Sanchez Gual <lluis@ximian.com>
5168 * threads.c: Before aborting a background, set the StopRequested
5169 state. This avoids throwing the Abort exception.
5170 In mono_thread_manage, don't continue with the shutdown until all
5171 aborted threads have actually stopped.
5173 2004-05-10 Jackson Harper <jackson@ximian.com>
5175 * locales.c: Remove the modifier from culture names.
5177 2004-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5179 * Makefile.am: monosn is not installed any more. It has been deprecated
5182 2004-05-07 Jackson Harper <jackson@ximian.com>
5185 (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
5186 Fix array construction, add bailout if the length is 0.
5188 2004-05-07 Dick Porter <dick@ximian.com>
5190 * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
5191 machine doesn't have a DNS entry. Patch by Urs Muff
5192 (umuff@quark.com), fixes bug 57928.
5194 2004-05-06 Jackson Harper <jackson@ximian.com>
5196 * reflection.c: Handle null PublicTokens properly. alloc mem for
5197 assembly names culture so we dont crash when freeing it.
5199 2004-05-06 Jackson Harper <jackson@ximian.com>
5201 * assembly.c: Check the usergac when loading with partial names.
5203 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
5205 * rand.c|h: Added new icall for (optionally) seeding the PRNG. This
5206 does nothing for now (not required for Linux/Windows) but the class
5207 library can call it (and a newer or modified runtime could need it).
5208 * icall.c: Registred icall.
5210 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5212 * loader.c: prints a message on module loading error we set MONO_DEBUG
5213 environment variable.
5215 2004-05-05 Jackson Harper <jackson@ximian.com>
5217 * appdomain.c: Handle PublicKeyToken=null properly.
5219 2004-05-05 Sebastien Pouliot <sebastien@ximian.com>
5221 * environment.c|h: Added icall ves_icall_System_Environment_
5222 GetOSVersionString to get the current OS version as a string.
5223 * icall.c: Registred icall.
5225 2004-05-05 Lluis Sanchez Gual <lluis@ximian.com>
5227 * object.c: in mono_object_get_virtual_method(), take into account that
5228 non-virtual methods don't have a slot in the vtable. Check needed when
5229 the object is a proxy.
5231 2004-05-05 Zoltan Varga <vargaz@freemail.hu>
5233 * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
5234 (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
5236 * object.c (mono_class_compute_gc_descriptor): Fix warning.
5238 * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
5239 passed when a valuetype is expected.
5241 * object.c (mono_unhandled_exception): Only set the exit code if the
5242 exception happens in the main thread. Fixes thread5.exe.
5244 * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
5245 invalid names. Fixes #58047.
5247 2004-05-03 Jackson Harper <jackson@ximian.com>
5249 * assembly.c: This line was committed accidently and is unneeded.
5251 2004-05-03 Jackson Harper <jackson@ximian.com>
5253 * icall.c: Add new icall for Assembly::LoadWithPartialName
5254 * assembly.c/.h: new function that probes the GAC to load partial
5255 assembly names by Paolo Molaro.
5257 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5259 * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
5260 * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
5261 (type_get_fully_qualified_name): Added PublicKeyToken when building a
5264 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5266 * appdomain.c: fixed check for 'neutral' culture and removed warning.
5267 * reflection.c: fix bug when parsing a full type name and Version is not
5268 the last thing in the string.
5270 2004-05-03 Zoltan Varga <vargaz@freemail.hu>
5272 * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
5273 crashes when it is freed.
5275 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5277 * assembly.c: print the compat warning to stderr.
5279 2004-05-01 Miguel de Icaza <miguel@ximian.com>
5281 * assembly.c (mono_assembly_load_references): Add a compatibility
5282 hack to run old applications that might be still referencing the
5283 3300-based assemblies, only do this for System.xxx.
5285 2004-05-01 Jackson Harper <jackson@ximian.com>
5287 * appdomain.c: If the culture is neutral we set it to "".
5289 2004-04-29 Jackson Harper <jackson@ximian.com>
5291 * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
5293 2004-04-29 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
5295 * string-icalls.c: added low overhead function for copying chars
5296 * icall.c: added needed icall for the above function
5298 2004-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5300 * icall.c: fix return value of get_global_assembly_cache. Implemented
5301 Environment.GetLogicalDrives.
5303 2004-04-28 Bernie Solomon <bernard@ugsolutions.com>
5305 * rand.c: try and talk to egd or prngd
5306 for random bytes if opening devices fail.
5308 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
5310 * marshal.c (mono_marshal_load_type_info): Calculate the minimum
5311 alignment for the type using the native alignment of its members
5312 instead of using klass->min_align.
5314 * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
5316 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5319 * socket-io.c: added check for sys/aio.h.
5321 2004-04-28 Dick Porter <dick@ximian.com>
5323 * threads.c: Don't abort a thread thats already aborting, when
5324 terminating everything.
5326 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5328 * icall.c: added 2 new async calls for Socket.
5330 * socket-io.[ch]: fixed some warnings. Added support for asynchronous
5333 * threadpool.c: removed unused variable.
5335 2004-04-27 Zoltan Varga <vargaz@freemail.hu>
5337 * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
5339 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5341 * locales.c: put back string_invariant_tolower () and
5342 string_invariant_toupper ().
5344 2004-04-26 David Waite <mass@akuma.org>
5349 * unicode.h: remove comma from end of enumeration declarations
5351 2004-04-26 David Waite <mass@akuma.org>
5353 * debug-mono-symfile.h:
5356 * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
5359 2004-04-26 Jackson Harper <jackson@ximian.com>
5361 * appdomain.c: Increment version number.
5363 2004-04-26 Jackson Harper <jackson@ximian.com>
5365 * appdomain.c: Set assembly references public token value when
5366 PublicKeyToken is specified, not the hash_value. Free public token
5367 values when free assembly name data. Previously the public key
5368 token was hex decoded, however we are using hex encoded public key
5369 tokens, so this is not neccasary.
5370 * assembly.c: Lookup assemblies in the gac if their public token
5371 value is set. Add function to allow enabling user gac
5372 lookups. Specify whether or not the assembly was loaded from the
5373 GAC. Compare full assembly names when checking the cache for
5374 assemblies (Temporarily disabled see comment in code). Remove
5375 mscorlib -> corlib mapping cruft. Add trace-loading. When a user
5376 specifies trace-loader they get extra info to stdout on the
5377 loading of assemblies.
5378 * image.h: Add a field for an assembly references public token
5379 value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
5380 whether an assembly has been loaded from the GAC.
5381 * image.c: Remove a corlib -> mscorlib name mapping.
5382 * loader.h: Add function to enable/disable the user gac.
5383 * mono-config.c: Check if the usergac is enabled in the config
5385 * icall.c: New icall to determine whether or not an assembly has
5386 been loaded from the GAC. Remove some mscorlib -> corlib mappings.
5387 * tabldefs.h: Add constant for assemblyref flag that specifies a
5388 full public key is used instead of a public token.
5389 * reflection.c: Remove mscorlib -> corlib mappings. Set
5390 PublicTokenValue instead of hash value. This value is a hex
5391 string so it does not need to be expanded.
5393 2004-04-26 Martin Baulig <martin@ximian.com>
5395 * mono-debug-debugger.c (mono_debugger_initialize): Set
5396 `mono_debugger_initialized' before calling mono_debug_lock().
5398 2004-04-42 Robert Shade <rshade@dvsconsulting.com>
5400 * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
5401 InternalToUpper/InternalToLower.
5402 * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
5403 removed invariant culture shortcut. This is now done in managed code.
5404 * locales.c: (string_invariant_toupper/tolower) removed.
5406 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5408 * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
5409 Added Poll internal call.
5411 * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
5412 call for Poll. Select was too heavy for polling a single socket.
5414 * threadpool.[ch]: added mono_threadpool_cleanup.
5415 * threads.c: use it. Don't use Thread_Abort on windows.
5417 2004-04-23 Martin Baulig <martin@ximian.com>
5419 * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
5421 2004-04-23 Sebastien Pouliot <sebastien@ximian.com>
5423 * icall.c: Registred new icalls for key pair protection and added an
5424 icall for Environment.GetFolderPath on Windows.
5425 * security.c|h: Added new icalls for key pair protection.
5427 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5429 * socket-io.c: don't display the non-supported family warning for known
5430 families. Now this is not displayed on windows when checking support
5433 2004-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5435 * class.c: don't display the layout warning for static fields.
5437 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
5439 * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
5440 * locales.c, locales.h: Added new icalls for culture-specific
5441 Char.ToLower and Char.ToUpper.
5443 2004-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5445 * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
5448 2004-04-20 Martin Baulig <martin@ximian.com>
5450 * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
5451 of the type name before passing it to mono_reflection_type_from_name().
5453 2004-04-19 Zoltan Varga <vargaz@freemail.hu>
5455 * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
5456 encodings here. Fixes #56965.
5458 2004-04-18 Bernie Solomon <bernard@ugsolutions.com>
5460 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5461 fix test on strstr result not that I can see anything that
5462 relies on the result.
5464 2004-04-18 Zoltan Varga <vargaz@freemail.hu>
5466 * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
5469 * marshal.c (mono_marshal_get_string_encoding): New helper function.
5471 * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
5472 function to determine which marshalling to use for strings. Fixes
5475 * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
5477 * reflection.c (encode_marshal_blob): Add support for LPARRAY.
5479 2004-04-15 Bernie Solomon <bernard@ugsolutions.com>
5481 * icall.c: #include mono-config.h
5483 2004-04-15 Jackson Harper <jackson@ximian.com>
5485 * culture-info-tables.h: Fix date formats for en-US culture.
5487 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
5489 * icall.c: Registered icalls for ThreadPool.GetMinThreads and
5490 ThreadPool.SetMinThreads.
5491 * threadpool.c: Implemented ThreadPool.GetMinThreads and
5492 ThreadPool.SetMinThreads.
5494 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
5496 * mono-config.c: also load the .config file in the directory
5497 where the assembly was found.
5499 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
5501 * assembly.c: load per-assembly config files.
5502 * icall.c: decrapified code to get the config dir and moved to
5504 * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
5505 per-assembly config files. When doing a dll map lookup give precedence
5506 to the per-assembly data.
5508 2004-04-14 Martin Baulig <martin@ximian.com>
5510 * mono-debug-debugger.h (MonoDebuggerEvent): Removed
5511 MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
5512 and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
5514 * mono-debugger-debugger.c: While the debugger is locked, remember
5515 whether the symbol tables have changes and send one single
5516 MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
5518 2004-04-14 Zoltan Varga <vargaz@freemail.hu>
5520 * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
5522 * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New
5525 * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
5526 account when marshalling string arrays. Fixes #56965.
5528 2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
5530 * icall.c: Add new icalls mapping for security.
5531 * security.c|h: Add internal calls for WindowsIdentity,
5532 WindowsImpersonationContext and WindowsPrincipal.
5534 2004-04-13 Gert Driesen (drieseng@users.sourceforge.net)
5536 * class.c: Added comment to ensure the System.MonoDummy class
5537 is removed when no longer necessary
5539 2004-04-13 Miguel de Icaza <miguel@ximian.com>
5541 * appdomain.c: Pass arguments to the bootstraping exceptions to
5542 minimize JITed methods at boot
5544 * metadata.c (mono_exception_from_name_two_strings): Allow for the
5545 second string to be null.
5547 * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5548 Change the protocol to minimize the JIT methods at startup. Now
5549 it Returns the internal codepage, if the value of "int_code_page"
5550 is 1 at entry, and we can not compute a suitable code page
5551 number, returns the code page as a string.
5553 2004-04-13 Jackson Harper <jackson@ximian.com>
5555 * culture-info-tables.h: Fix number of decimal digits for all
5558 2004-04-13 Jackson Harper <jackson@ximian.com>
5560 * icall.c: Clairfy out of sync error message. It is not always
5561 your corlib that is out of sync.
5563 2004-04-13 Zoltan Varga <vargaz@freemail.hu>
5565 * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
5566 properties when only the set accessor is overriden. Fixes #55874.
5568 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
5570 * assembly.c (mono_assembly_load_references): Make this thread safe.
5573 2004-04-08 Zoltan Varga <vargaz@freemail.hu>
5575 * monosn.c: Add missing initialization calls.
5577 2004-04-08 Bernie Solomon <bernard@ugsolutions.com>
5580 ves_icall_System_Globalization_CultureInfo_construct_number_format
5581 Fix g_assert so it compiles on fussier compilers re int/ptr
5584 2004-04-08 Dick Porter <dick@ximian.com>
5587 * socket-io.c: Don't set SO_REUSEADDR on windows. Fixes bug
5588 53992. Also rearrange the code so that the internal calls return
5589 an error value and exceptions are thrown from managed code.
5591 * icall.c: Add type info to the socket icalls.
5593 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5595 * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
5598 2004-04-07 Martin Baulig <martin@ximian.com>
5600 * class.c (mono_class_from_generic_parameter): Don't default
5601 `klass->parent' to `mono_defaults.object_type'.
5603 2004-04-07 Martin Baulig <martin@ximian.com>
5605 * reflection.c (mono_reflection_initialize_generic_parameter): Set
5606 `param->pklass->reflection_info'.
5608 2004-04-07 Jackson Harper <jackson@ximian.com>
5610 * culture-info-tables.h: Fix date separator symbol.
5612 2004-04-07 Martin Baulig <martin@ximian.com>
5614 * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
5615 from System.Type to System.MonoType.
5617 2004-04-07 Martin Baulig <martin@ximian.com>
5620 (MonoReflectionGenericParam): Added `has_reference_type' and
5621 `has_value_type' fields.
5623 * reflection.c (mono_image_get_generic_param_info): Encode the
5624 correct flags if we have the `class' or `struct' constraint.
5626 2004-04-07 Martin Baulig <martin@ximian.com>
5629 (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
5631 2004-04-07 Jackson Harper <jackson@ximian.com>
5633 * appdomain.c: Revert extra patches, just wanted to bump the
5636 2004-04-07 Jackson Harper <jackson@ximian.com>
5638 * Makefile.am: Add culture-info private headers.
5639 * icall.c: Add new icalls for contructing locales.
5640 * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
5641 * locales.h: Declare new culture info construction methods.
5642 * object.h: Add new fields used to avoid the CultureMap to
5644 * culture-info.h: Definition of structs used in the culture info
5646 * culture-info-tables.h: Autogenerated tables that contain culture
5647 info data. This file was generated with the locale-builder tool.
5648 * appdomain.c: Incement corlib version number.
5650 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
5652 * appdomain.c: (mono_runtime_init) move mono_thread_init
5653 to before mono_object_new calls so critical sections
5654 are initialized before use.
5656 2004-04-07 Martin Baulig <martin@ximian.com>
5659 (ves_icall_TypeBuilder_define_generic_parameter): Removed.
5660 (ves_icall_MethodBuilder_define_generic_parameter): Removed.
5661 (ves_icall_MonoGenericParam_initialize): Removed.
5662 (monogenericparam_icalls): Removed.
5663 (generictypeparambuilder_icalls): Added new table for
5664 System.Reflection.Emit.GenericTypeParameterBuilder.
5667 (mono_reflection_define_generic_parameter): Removed.
5668 (mono_reflection_initialize_generic_parameter): This is now called
5669 from GenericTypeParameterBuilder's .ctor.
5671 2004-04-06 Martin Baulig <martin@ximian.com>
5673 * class.c (mono_class_init): Don't inflate nested classes in a
5675 (mono_type_get_name_recurse): Include the generic arguments for
5676 generic instances and generic type declarations.
5677 (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
5678 (_mono_class_get_instantiation_name): Removed.
5679 (mono_class_create_generic): Always use `gklass->name' as our name.
5681 * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
5683 * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
5684 (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
5685 (ves_icall_MonoMethod_GetGenericParameters): Renamed to
5686 ves_icall_MonoMethod_GetGenericArguments() and correctly handle
5687 closed generic methods here.
5690 (mono_reflection_generic_inst_get_nested_types): Removed.
5691 (inflate_mono_method): Copy the generic parameters from the
5692 MonoMethodHeader into out MonoGenericMethod.
5694 2004-04-06 Martin Baulig <martin@ximian.com>
5697 (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
5699 * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
5701 * reflection.c (build_compressed_metadata): If we have any entries
5702 in the GenericParam, MethodSpec or GenericParamConstraint tables,
5703 set the header version to 1.1.
5705 2004-04-06 Martin Baulig <martin@ximian.com>
5707 * class.c (mono_class_init): If we're a generic instance,
5708 initialize our nested classes, too.
5709 (_mono_class_get_instantiation_name): Deal with the new `!%d'
5712 2004-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5714 * process.c: quote the argument passed to the shell on windows.
5716 2004-04-05 Zoltan Varga <vargaz@freemail.hu>
5718 * threads.c (mono_alloc_special_static_data): Allow this to be
5719 called during startup.
5721 2004-04-02 Martin Baulig <martin@ximian.com>
5724 (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
5726 2004-04-02 Zoltan Varga <vargaz@freemail.hu>
5728 * icall.c: Fix build.
5730 2004-04-02 Sebastien Pouliot <sebastien@ximian.com>
5732 * Makefile.am: Added security.c|h.
5733 * icall.c: Added icall for get_UserName;
5734 * security.c: New file for security related icalls. Added function
5735 get_UserName for System.Environment (fix #56144).
5736 * security.h: New. Header file for security.c
5738 2004-04-02 Dick Porter <dick@ximian.com>
5740 * icall.c: Deleted the icalls that were obsoleted some time ago
5741 by the ICU string code, and which were mixed into the icall
5742 rearranging. Fixes bug 55969.
5745 * string-icalls.c: Deleted the code that those icalls reference.
5747 2004-04-01 Martin Baulig <martin@ximian.com>
5749 * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
5751 * class.c (mono_class_from_generic_parameter): Don't set
5752 TYPE_ATTRIBUTE_INTERFACE.
5753 (my_mono_class_from_generic_parameter): Likewise.
5755 2004-04-01 Martin Baulig <martin@ximian.com>
5757 * loader.c (find_method): Added an optional `MonoClass *ic'
5758 argument to search in a specific interface.
5759 (mono_get_method_constrained): New public function.
5761 2004-04-01 Martin Baulig <martin@ximian.com>
5763 * reflection.c (mono_image_get_generic_field_token): Use the
5764 `handleref' cache here.
5766 2004-04-01 Martin Baulig <martin@ximian.com>
5768 * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
5770 * reflection.c (create_generic_typespec): Use the `typespec' hash
5771 here, not the `typeref' one.
5773 2004-04-01 Martin Baulig <martin@ximian.com>
5775 * class.c (mono_class_inflate_generic_type): Moved the
5776 functionality into a new static inflate_generic_type() which
5777 returns NULL if it didn't do anything. Only increment the
5778 `mono_stats.inflated_type_count' if we actually inflated
5780 (mono_class_get_full): Check the classes type to see whether we
5781 need to inflate it; also inflate MONO_TYPE_(M)VAR.
5783 2004-04-01 Jackson Harper <jackson@ximian.com>
5785 * reflection.c: Set culture for assembly references.
5787 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
5789 * reflection.[ch], icall.[ch], Fix support for pinning variables.
5791 2004-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5794 (do_mono_assembly_open): the critical section also covers
5795 mono_image_open and mono_image_open_from_data. Fixes bug #56327.
5797 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5800 (mono_manage_threads): abort the background threads when finishing.
5803 2004-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5805 * gc.c: only close the done_event handle if there was no timeout.
5808 2004-03-30 Martin Baulig <martin@ximian.com>
5810 * icall.c (icall_entries): It's called "System.Activator", not
5811 "System.Activation".
5813 2004-03-30 Martin Baulig <martin@ximian.com>
5815 * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
5816 (mono_class_create_from_typespec): Likewise.
5818 2004-03-30 Martin Baulig <martin@ximian.com>
5820 * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
5821 `has_ctor_constraint' and `initialized'.
5823 2004-03-30 Martin Baulig <martin@ximian.com>
5825 * reflection.c (encode_new_constraint): New static function to add
5826 the constructor constraint attribute to a type parameter.
5827 (encode_constraints): Call encode_new_constraint() if necessary.
5830 (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
5832 * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
5834 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
5836 * reflection.c, icall.c: add support for pinning variables.
5838 2004-03-29 Bernie Solomon <bernard@ugsolutions.com>
5840 * marshal.c (mono_marshal_get_managed_wrapper):
5841 init bool local with zero rather than null.
5843 2004-03-29 Martin Baulig <martin@ximian.com>
5845 * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
5846 the "official" behavior here.
5847 (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
5849 2004-03-29 Martin Baulig <martin@ximian.com>
5851 * icall.c: Reflect latest API changes.
5853 2004-03-29 Martin Baulig <martin@ximian.com>
5855 * loader.c (mono_get_method_from_token): Also call
5856 mono_metadata_load_generic_params () for abstract and interface
5857 methods; replace the type arguments in the method signature with
5858 the ones which are loaded from the metadata.
5860 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
5862 * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
5863 of the lock is not the current thread. MS.NET don't do it, in spite of
5864 what the documentation says. See bug #56157.
5866 2004-03-28 Martin Baulig <martin@ximian.com>
5868 * class.c (mono_class_init): Don't call init_properties() and
5869 init_events() for generic instances; set `prop->parent' when
5870 inflating properties.
5872 * reflection.c (mono_generic_inst_get_object): Call
5873 `mono_class_init (ginst->klass)'.
5874 (mono_type_get_object): Only create a MonoGenericInst if your
5875 generic type is a TypeBuilder.
5876 (do_mono_reflection_bind_generic_parameters): Only set
5877 `ginst->is_dynamic' if our generic type is a TypeBuilder.
5879 2004-03-28 Zoltan Varga <vargaz@freemail.hu>
5881 * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
5884 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5886 * icall.c: added Kill_internal icall.
5887 * process.[ch]: added Kill_internal icall.
5889 2004-03-25 Martin Baulig <martin@ximian.com>
5891 * class.h (MonoStats): Added `generic_instance_count',
5892 `inflated_method_count', `inflated_type_count' and
5893 `generics_metadata_size'.
5895 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5897 * reflection.c: no warnings now.
5899 2004-03-25 Martin Baulig <martin@ximian.com>
5901 * class.c (mono_class_get_full): New public function; does a
5902 mono_class_get(), but also takes a `MonoGenericContext *'.
5904 * loader.c (mono_field_from_memberref): Renamed to
5905 `field_from_memberref', made static and added `MonoGenericContext *'
5907 (mono_field_from_token): Added `MonoGenericInst *' argument.
5908 (method_from_memberef): Likewise.
5909 (mono_get_method_from_token): Likewise.
5910 (mono_get_method_full): New public function; does a
5911 mono_get_method(), but also takes a `MonoGenericContext *'.
5913 * verify.c (mono_method_verify): Get the method's generic context
5914 and pass it to mono_field_from_token(), mono_get_method_full() and
5915 mono_class_get_full().
5917 2004-03-25 Martin Baulig <martin@ximian.com>
5919 * class.c (mono_class_inflate_generic_type): Take a
5920 `MonoGenericContext *' instead of a `MonoGenericInst *' and a
5921 `MonoGenericMethod *'.
5923 2004-03-25 Martin Baulig <martin@ximian.com>
5925 * loader.h (MonoMethodInflated): Store the MonoGenericContext
5926 instead of the MonoGenericMethod here.
5928 2004-03-25 Martin Baulig <martin@ximian.com>
5930 * class.h (MonoGenericInst): Added `MonoGenericContext *context';
5931 each time we create a new MonoGenericInst, we also create a new
5932 context which points back to us.
5934 * class.c (inflate_method): Use `ginst->context' instead of
5935 creating a new context.
5937 * loader.c (method_from_memberref): Use
5938 `klass->generic_inst->context' instead of creating a new context.
5940 2004-03-25 Martin Baulig <martin@ximian.com>
5942 * class.h (MonoGenericContext): New struct.
5943 (MonoGenericMethod): Removed `generic_inst'.
5945 * class.c (mono_class_inflate_generic_method): Take a
5946 `MonoGenericContext *' instead of a `MonoGenericMethod *'.
5948 2004-03-25 Martin Baulig <martin@ximian.com>
5950 * loader.h (MonoMethodInflated): New typedef.
5952 * metadata.h (MonoMethodSignature): Removed `gen_method', make
5953 `generic_param_count' consume just 30 bits, added `is_inflated'
5954 and `has_type_parameters' flags (one bit each).
5956 * class.c (mono_class_inflate_generic_method): Create a
5957 MonoMethodInflated instead of a MonoMethodNormal and set
5958 `is_inflated' in the method signature.
5960 * class.h (MonoGenericMethod): Removed `generic_method'.
5962 2004-03-25 Lluis Sanchez Gual <lluis@ximian.com>
5964 * image.c: Make sure the name of a MonoImage is always an absolute path.
5965 This fixes bug #54415.
5967 2004-03-24 Martin Baulig <martin@ximian.com>
5969 * class.c (mono_class_setup_vtable): If we're a generic instance,
5970 use our generic type's vtable size.
5972 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
5974 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
5975 MONO_NO_UNLOAD env var as a temporary workaround for unloading
5978 2004-03-23 Martin Baulig <martin@ximian.com>
5980 * class.h (MonoDynamicGenericInst): Added `int count_events' and
5981 `MonoEvent *events'.
5983 * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
5984 (typebuilder_icalls): Added "get_event_info"; calls
5985 mono_reflection_event_builder_get_event_info().
5987 * reflection.c (mono_reflection_generic_inst_initialize): Added
5988 `MonoArray *events'.
5989 (mono_reflection_event_builder_get_event_info): New function.
5991 2004-03-23 Bernie Solomon <bernard@ugsolutions.com>
5993 * object.h: add mono_type_initialization_init
5995 * object.c (mono_runtime_class_init):
5996 implement class constructor synchronization rules
5997 to cope with threading issues.
5998 add mono_type_initialization_init
6000 * appdomain.c (mono_runtime_init): call
6001 mono_type_initialization_init
6003 * class.h: removing initializing field from MonoVTable
6005 2004-03-23 Martin Baulig <martin@ximian.com>
6007 * class.c (my_mono_class_from_generic_parameter): Use
6008 `param->name' if it's not NULL.
6010 2004-03-22 Ben Maurer <bmaurer@users.sourceforge.net>
6012 * class.c: do not insert non-virtual methods in the vtable.
6013 * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
6014 that means the method is non-virtual. This never would have
6017 2004-03-22 Lluis Sanchez Gual <lluis@ximian.com>
6019 * profiler.c: Added lock for accessing coverage_hash.
6021 2004-03-22 Martin Baulig <martin@ximian.com>
6023 * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
6024 `method->method->signature->generic_param_count != 0' to make it
6025 work for interface methods.
6027 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6029 * process.c: quote the string passed to the shell using g_shell_quote.
6031 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6034 (mono_threads_manage): don't remove the finalizer thread and self
6035 from the threads hash table so that mono_thread_manage can be called
6038 2004-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6040 * process.c: quote the arguments when UseShellExecute is true. Fixes
6043 2004-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6045 * threads.c: set mono_thread_detach as a cleanup routine for every
6046 thread. This way it's always executed upon thread termination, either
6047 aborted or finished normally. No more xsp hangs!
6049 2004-03-17 Martin Baulig <martin@ximian.com>
6051 * class.h (MonoGenericInst): Replaced the `GList *nested' with an
6052 `int count_nested' and a `MonoType **nested'.
6054 * reflection.c (mono_reflection_bind_generic_parameters): Moved
6055 most of the functionality into a new static
6056 do_mono_reflection_bind_generic_parameters() and don't take a
6057 `MonoType *nested_in' argument any more. Don't compute nested
6059 (mono_reflection_generic_inst_get_nested_types): New public method
6060 to get nested types.
6062 * class.c (mono_class_create_generic): Set `klass->nested_in' if
6063 we're a nested class.
6065 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
6066 mono_reflection_generic_inst_get_nested_types() to compute the
6069 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
6071 * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
6072 descriptive error message under windows.
6074 2004-03-17 Martin Baulig <martin@ximian.com>
6076 * class.c (dup_type): Added `const MonoType *original' argument;
6077 copy the attrs from the original type.
6079 2004-03-17 Martin Baulig <martin@ximian.com>
6081 * metadata.c (do_mono_metadata_parse_generic_inst): Use the
6082 `m->generic_inst_cache' here.
6084 2004-03-17 Zoltan Varga <vargaz@freemail.hu>
6086 * exception.h exception.c: Add stack_overflow_exception.
6088 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6091 (overlapped_callback): call SetEvent *after* invoking the callback.
6092 No need to call CloseHandle.
6094 2004-03-16 Martin Baulig <martin@ximian.com>
6096 * reflection.c (mono_image_get_fieldref_token): Take a
6097 `MonoReflectionField *' instead of a `MonoClassField *' and a
6098 `MonoClass *'; store the `MonoReflectionField *' in the hash.
6100 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6102 * appdomain.c: don't add the culture to the filename we're looking for
6103 if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
6105 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6107 * locales.c: don't ignore symbols when doing case insensitive compares.
6108 Thanks Dick! Fixes bug #54046.
6110 * threads.c: surround 'threads' usage with enter/leave in
6113 2004-03-16 Zoltan Varga <vargaz@freemail.hu>
6115 * marshal.c (mono_marshal_get_native_wrapper): Char arrays are
6116 implicitly marshalled as [Out]. Fixes #55450.
6118 (mono_marshal_get_runtime_invoke): Zero out the result if there is
6121 2004-03-16 Martin Baulig <martin@ximian.com>
6123 * class.c (mono_class_from_generic_parameter): Use the actual
6126 2004-03-16 Martin Baulig <martin@ximian.com>
6128 * reflection.c (type_get_signature_size): New static function.
6129 Compues the size of the type in a method signature.
6130 (method_get_signature_size): New static function; calls
6131 type_get_signature_size() to compute the actual size of the
6133 (method_encode_signature): Use method_get_signature_size() to get
6134 the signature's size rather than using `nparams * 10'.
6136 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6138 * file-io.h: define here WapiOverlapped on windows. I don't want the
6139 regular OVERLAPPED one.
6142 * threadpool.c: somehow, BindIoCompletionCallback is not found.
6143 Disabling AIO on windows.
6145 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6147 * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
6150 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6152 * appdomain.c: upgraded corlib version.
6154 * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
6155 and BeginWrite. Allow opening files for asynchrnous operations.
6157 * file-io.h: new struct that maps FileStreamAsyncResult.
6158 * icall.c: added new icalls.
6159 * process.[ch]: support setting child process environment variables
6160 and use the SHELL or COMSPEC when UseShellExecute is true.
6162 * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
6163 callback for async. IO is here and also BindHandle.
6165 * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
6168 2004-03-14 Zoltan Varga <vargaz@freemail.hu>
6170 * reflection.c (create_custom_attr): Allow len == 0.
6172 * object.c (mono_class_compute_gc_descriptor): Fix descriptor
6173 computation on big-endian machines.
6175 2004-03-13 Martin Baulig <martin@ximian.com>
6177 * class.h (MonoGenericInst): Added `int count_ifaces'.
6179 * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
6180 `ginst->count_ifaces' instead `klass->interface_count' since we
6181 may get called before the vtable is created.
6183 * loader.c (mono_method_get_param_names): If we're a generic
6184 instance, return and don't initialize the class.
6186 * reflection.c (mono_reflection_setup_generic_class): Don't call
6187 ensure_runtime_vtable().
6188 (mono_reflection_bind_generic_parameters): Set
6189 `ginst->count_ifaces'.
6191 2004-03-11 Jackson Harper <jackson@ximian.com>
6195 * unicode.h: Remove unused System.Char icalls.
6197 2004-03-11 Miguel de Icaza <miguel@ximian.com>
6199 * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
6200 code when we P/Invoke the first library in Windows.Forms, instead
6201 of when we first open the assembly.
6203 * assembly.c: Drop the lookup from here.
6205 2004-03-10 Martin Baulig <martin@ximian.com>
6207 * reflection.c (mono_reflection_get_custom_attrs): Use the correct
6208 class for properties, fields and events. Finally fixes #54945.
6210 2004-03-10 Martin Baulig <martin@ximian.com>
6212 * metadata.c (mono_metadata_class_equal): New static function;
6213 checks whether two generic instances or two generic parameters are
6215 (mono_metadata_type_equal): Use mono_metadata_class_equal() to
6218 2004-03-10 Martin Baulig <martin@ximian.com>
6220 * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
6222 * reflection.c (inflate_mono_method): Added `MonoObject *obj'
6223 argument and write it into the `reflection_info' field.
6226 (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
6227 (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
6229 2004-03-09 Jackson Harper <jackson@ximian.com>
6231 * char-conversions.h: use 8 bits for numeric data its all we need
6232 * icall.c: numeric data is only 8 bits now.
6234 2004-03-09 Martin Baulig <martin@ximian.com>
6236 * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
6238 * class.c (init_properties, init_events): Initialize the new
6241 * reflection.c (typebuilder_setup_properties): Likewise.
6242 (typebuilder_setup_events): Likewise.
6244 * reflection.h (MonoEventInfo): Replaced `parent with
6245 `declaring_type' and `reflected_type'.
6247 * icall.c (ves_icall_get_property_info): Distinguish between
6248 declaring and reflected type.
6249 (ves_icall_get_event_info): Likewise.
6251 2004-03-09 Martin Baulig <martin@ximian.com>
6253 * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
6254 (ves_icall_Type_GetField): Correctly set field->klass.
6256 2004-03-09 Zoltan Varga <vargaz@freemail.hu>
6258 * loader.h: Fix warning.
6260 2004-03-08 Miguel de Icaza <miguel@ximian.com>
6262 * loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
6263 library routine if present. Notice that it will still continue
6264 executing even if its missing, for those working on the Gtk#
6265 edition of Windows.Forms.
6267 * assembly.c (do_mono_assembly_open): If loading the
6268 System.Windows.Forms call mono_loader_wini_init.
6270 2004-03-04 Lluis Sanchez Gual <lluis@ximian.com>
6272 * class.h: Added MonoRemoteClass struct.
6273 * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
6274 function for MonoStrings.
6275 * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
6276 Added internal call for getting the proxy type.
6277 * marshal.c: Get the type of transparent proxies from its remote_class.
6278 Added methods that generate the IL for type checks and casts:
6279 mono_marshal_get_isinst, mono_marshal_get_castclass,
6280 mono_marshal_get_proxy_cancast.
6281 * marshal.h: Declaration of the previous new methods.
6282 * object.c: Added new moethods for creating and updating MonoRemoteClass
6283 instances: mono_remote_class, mono_upgrade_remote_class,
6284 * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
6285 * verify.c: FIx transparent_proxy_fields layout.
6286 * appdomain.c: Bump corlib version.
6288 2004-03-04 Jackson Harper <jackson@ximian.com>
6290 * icall.c: Add icall to access char conversion tables.
6291 * char-conversions.h: Character conversion tables.
6292 * Makefile.am: Add char-conversions.h private header file.
6294 2004-03-04 Zoltan Varga <vargaz@freemail.hu>
6296 * appdomain.c (unload_thread_main): Increase unloading timeout to
6297 10 sec as a temporary workaround for Nant problems.
6299 2004-02-29 Zoltan Varga <vargaz@freemail.hu>
6301 * gc.c: Add checks for GC_enable and GC_disable.
6303 * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
6304 (jaak@zd.com.pl). Fix memory corruption in String.Replace
6307 2004-02-27 Martin Baulig <martin@ximian.com>
6309 * reflection.c (mono_reflection_bind_generic_parameters): Take a
6310 `MonoReflectionType *' instead of a `MonoType *'.
6312 2004-02-26 Zoltan Varga <vargaz@freemail.hu>
6314 * gc.c (run_finalize): Avoid finalizing the object representing the
6316 (finalizer_thread): Fix warning.
6318 2004-02-25 Martin Baulig <martin@ximian.com>
6320 * class.c (_mono_class_get_instantiation_name): Added `int offset'
6321 argument for nested types.
6322 (mono_class_create_generic): Added support for nested generictypes.
6324 * class.h (MonoGenericInst): Added `MonoType *nested_in' and
6327 * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
6329 * reflection.c (method_encode_signature): Increase the minimum
6330 value of `size' from 10 to 11.
6331 (mono_reflection_bind_generic_parameters): Take `int type_argc'
6332 and `MonoType **types' arguments instead of the `MonoArray
6333 *types'; added `MonoType *nested_in'. Recursively instantiate
6336 2004-02-23 Zoltan Varga <vargaz@freemail.hu>
6338 * appdomain.h (MonoDomain): Add preallocated null_reference_ex and
6339 stack_overflow_ex members which are used by exception handling.
6341 * appdomain.c (mono_runtime_init): Initialize the new members.
6343 * gc.c (mono_gc_enable): New helper function.
6344 * gc.c (mono_gc_disable): New helper function.
6346 2004-02-23 Martin Baulig <martin@ximian.com>
6348 * icall.c: I must have been really stupid - make it actually work
6351 2004-02-23 Martin Baulig <martin@ximian.com>
6353 * loader.c (method_from_memberref): Only inflate the method if
6354 it's in another klass.
6356 2004-02-23 Martin Baulig <martin@ximian.com>
6358 * class.c (mono_class_inflate_generic_type): Fixed two bugs.
6359 (mono_class_init): If we're a generic instance and an interface,
6360 compute `class->interface_id'; also create `class->interfaces'
6361 here and inflate them.
6363 * metadata.c (do_mono_metadata_parse_generic_inst): Compute
6365 (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
6367 * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
6369 2004-02-15 Miguel de Icaza <miguel@ximian.com>
6371 * reflection.c (method_encode_code): Improved the error message
6372 generated by the exception.
6374 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6376 * icall.c: Martin did not do what he said in the ChangeLog for
6377 2004-02-18, but put back the changes for properties and events.
6378 Commenting those changes out again and adding comment to bug #54518.
6380 * process.c: removed warning.
6382 2004-02-20 Zoltan Varga <vargaz@freemail.hu>
6384 * marshal.c (emit_struct_conv): Print an error message instead of
6385 asserting when a type does not have the StructLayout attribute.
6387 2004-02-20 Martin Baulig <martin@ximian.com>
6389 * reflection.c (mono_type_get_object): Also use the cache for
6391 (mono_reflection_bind_generic_parameters): Always compute
6394 2004-02-20 Martin Baulig <martin@ximian.com>
6396 * class.h (MonoGenericMethod): Removed `klass'.
6398 * class.c (mono_class_inflate_generic_method): Added `MonoClass
6401 2004-02-20 Martin Baulig <martin@ximian.com>
6403 * reflection.c (method_encode_methodspec): Actually use the
6404 uninflated signature for the memberref.
6406 2004-02-20 Martin Baulig <martin@ximian.com>
6408 * class.h (MonoGenericMethod): Removed `declaring'.
6410 * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
6411 is NULL, compute it here.
6413 2004-02-20 Martin Baulig <martin@ximian.com>
6415 * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
6417 * metadata.c (mono_metadata_generic_inst_hash): New method.
6418 (mono_metadata_generic_inst_equal): New method.
6420 * reflection.c (mono_reflection_bind_generic_parameters): Use the
6421 `klass->image->generic_inst_cache' cache to avoid creating
6422 duplicate MonoGenericInst's.
6424 * class.c (mono_class_inflate_generic_type): Use the cache.
6426 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6428 * object.c: fixed gc descriptor calculation for embedded valuetypes.
6430 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6432 * icall.c: added Socket.WSAIoctl icall.
6434 * socket-io.[ch]: implemented
6435 ves_icall_System_Net_Sockets_Socket_WSAIoctl.
6437 2004-02-19 Atsushi Enomoto <atsushi@ximian.com>
6439 * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
6441 2004-02-18 Urs C Muff <umuff@quark.com>
6443 * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
6444 this work on PPC and other big-endian architectures.
6446 * debug-mono-symfile.h: Prepended the names of all the `guint32'
6447 fields with an underscore to make sure they're only accessed by
6450 2004-02-18 Martin Baulig <martin@ximian.com>
6452 * icall.c: Put the klass->refclass changes back for methods and
6453 fields, but not for properties and events. We're currently not
6454 distinguishing between DeclaringType and ReflectedType for
6455 properties and events, that's what caused the regressions.
6457 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6460 (mono_async_result_new): the handle can be NULL.
6462 * threadpool.c: Use an event instead of a semaphore, don't initialize
6463 it until needed. This saves quite a few semaphores from being created
6464 when using the threadpool.
6466 2004-02-18 Zoltan Varga <vargaz@freemail.hu>
6468 * object.c (mono_string_is_interned_lookup): Fix interning of long
6469 strings. Fixes #54473.
6471 * domain.c (ldstr_equal): Optimize if the two strings are equal.
6473 * icall.c: Revert the klass->refclass changes since they introduce
6474 regressions (bug #54518).
6476 2004-02-18 Martin Baulig <martin@ximian.com>
6478 * class.c (mono_class_init): If we're a generic instance and don't
6479 come from a TypeBuilder, inflate our members here.
6480 (mono_class_from_generic): Removed; just use `ginst->klass' instead.
6481 (mono_class_create_generic): New public method.
6482 (mono_class_initialize_generic): Removed.
6483 (get_instantiation_name): Renamed to
6484 _mono_class_get_instantiation_name() and made it public.
6486 2004-02-18 Martin Baulig <martin@ximian.com>
6488 * class.c (mono_class_inflate_generic_type): Clear the new
6489 instance's `nginst->klass' when inflating a generic instance.
6490 (mono_class_is_subclass_of): Added (basic) support for generic
6493 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
6495 * appdomain.h, domain.c: use a MonoCodeManager instead of a
6496 MonoMempool to hold compiled native code.
6498 2004-02-17 Martin Baulig <martin@ximian.com>
6500 * class.h (MonoDynamicGenericInst): Added `count_properties' and
6503 * reflection.c (mono_reflection_generic_inst_initialize): Added
6504 `MonoArray *properties' argument.
6506 * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.
6508 2004-02-17 Martin Baulig <martin@ximian.com>
6510 * icall.c (ves_icall_Type_GetFields): Renamed to
6511 ves_icall_Type_GetFields_internal() and added a
6512 `MonoReflectionType *rtype' argument; pass it to
6513 mono_field_get_object() to set the field's "reflected" type.
6514 (ves_icall_Type_GetConstructors): Likewise.
6515 (ves_icall_Type_GetEvents): Likewise.
6516 (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
6517 argument; pass it to mono_method_get_object() to set the method's
6520 2004-02-17 Martin Baulig <martin@ximian.com>
6522 * class.h (MonoDynamicGenericInst): New type.
6523 (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
6525 * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
6526 (ves_icall_MonoGenericInst_GetConstructors): New interncall.
6527 (ves_icall_MonoGenericInst_GetFields): New interncall.
6529 * class.c (mono_class_from_generic): Don't call
6530 mono_class_initialize_generic() if this is a dynamic instance;
6531 ie. it's being created from a TypeBuilder.
6532 Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
6533 `class->byval_arg.type'.
6535 * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
6536 to `inflate_method' and made static.
6537 (mono_reflection_inflate_field): Removed.
6538 (mono_reflection_generic_inst_initialize): New public method.
6540 * reflection.h (MonoReflectionGenericInst): Removed `methods',
6541 `ctors' and `fields'; added `initialized'.
6543 2004-02-14 Zoltan Varga <vargaz@freemail.hu>
6545 * debug-helpers.c (mono_method_full_name): Fix output for empty
6548 2004-02-12 Martin Baulig <martin@ximian.com>
6550 * class.h (MonoClassField): Added `MonoType *generic_type'.
6552 * reflection.c (mono_image_get_fieldref_token): Added support for
6553 instantiated generic types.
6554 (field_encode_inflated_field): Removed.
6555 (mono_image_get_inflated_field_token): Removed.
6556 (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
6558 * reflection.h (MonoReflectionInflatedField): Removed.
6560 2004-02-12 Martin Baulig <martin@ximian.com>
6562 * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
6563 `gen_method' field from MonoMethodHeader to MonoMethodSignature.
6565 * reflection.c (mono_image_get_methodspec_token): Take a
6566 `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
6567 (mono_image_create_token): Check whether we have a
6568 `method->signature->gen_method' and call
6569 mono_image_get_methodspec_token() if appropriate.
6570 (inflated_method_get_object): Removed.
6571 (mono_reflection_bind_generic_method_parameters): Return a
6572 `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
6573 (mono_reflection_inflate_method_or_ctor): Likewise.
6575 * reflection.h (MonoReflectionInflatedMethod): Removed.
6577 2004-02-12 Zoltan Varga <vargaz@freemail.hu>
6579 * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
6580 for custom valuetype marshalling.
6582 * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
6584 2004-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6586 * icall.c: fixed WSAGetLastError_internal name.
6588 2004-02-11 Zoltan Varga <vargaz@freemail.hu>
6590 * threads.c (mono_thread_attach): Allow this to be called multiple
6593 * threads.c (build_wait_tids): Do not wait for ourselves.
6595 * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the
6596 appdomain list is empty.
6598 * marshal.c (mono_marshal_get_native_wrapper): Do not free the
6599 memory returned by mono_string_builder_to_utf16, since it points into
6600 managed memory. Thanks to Bernie Solomon for noticing this.
6602 * icall.c: Add AppDomainSetup icalls.
6604 * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
6606 * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
6609 * reflection.c (reflection_methodbuilder_to_mono_method): Save
6610 custom attributes to the method_aux struct. Also fix array indexes etc.
6612 * loader.c (mono_method_get_param_names): Make dynamic case work again.
6614 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
6616 * icall.c, loader.c: icall cleanup: we save quite a bit of memory
6617 (both static and runtime) and reduce startup time.
6619 2004-02-10 Zoltan Varga <vargaz@freemail.hu>
6621 * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
6622 AsAny marshalling conversion instead of crashing.
6624 * marshal.c: Fix warnings.
6626 2004-02-09 Martin Baulig <martin@ximian.com>
6628 * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
6630 * reflection.h (MonoReflectionInflatedMethod): Removed the
6631 `declaring' field, it's now in the unmanaged MonoGenericMethod.
6633 * reflection.c (method_encode_methodspec): Removed the `method'
6634 argument; we get it from `gmethod->declaring'.
6635 (inflated_method_get_object): Removed the `declaring' argument.
6637 2004-02-09 Martin Baulig <martin@ximian.com>
6639 * class.h (MonoGenericMethod): New type.
6640 (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
6643 * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
6644 a `MonoGenericMethod *gen_method' one.
6646 * class.c (mono_class_inflate_generic_type): Take an additional
6647 `MonoGenericMethod * argument. This is only non-NULL if we're
6648 inflating types for a generic method.
6649 (mono_class_inflate_generic_signature): Renamed to
6650 inflate_generic_signature() and made static; take a
6651 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
6652 (inflate_generic_header): Take a `MonoGenericMethod *' argument
6653 instead of a `MonoGenericInst *' one.
6654 (mono_class_inflate_generic_method): Likewise.
6656 * reflection.c (encode_generic_method_sig): Take a
6657 `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
6658 (method_encode_methodspec): Likewise.
6659 (inflated_method_get_object): Likewise.
6661 * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
6662 field with a `MonoGenericMethod *gmethod' one.
6664 2004-02-08 Bernie Solomon <bernard@ugsolutions.com>
6666 * class.h (mono_class_has_parent): add parens to expansion
6669 2004-02-08 Martin Baulig <martin@ximian.com>
6671 * image.h (MonoImage): Removed `generics_cache'.
6673 * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
6674 instead of a `MonoType *' argument; removed the `inflate_methods'
6675 argument. Don't inflate methods here.
6677 * loader.c (find_method): If it's a generic instance, call
6678 mono_class_init() on the `sclass->generic_inst->generic_type'.
6680 * metadata.c (mono_type_size): Make this work on uninitialized
6681 generic instances; call it on the `ginst->generic_type's class.
6683 * reflection.c (mono_reflection_bind_generic_parameters): Call
6684 mono_class_from_generic() to create the `ginst->klass'.
6686 2004-02-08 Martin Baulig <martin@ximian.com>
6688 * class.h (MonoClass): Changed type of `generic_inst' from
6689 `MonoType *' to `MonoGenericInst *'.
6691 2004-02-08 Martin Baulig <martin@ximian.com>
6693 * icall.c (ves_icall_Type_BindGenericParameters): Just call
6694 mono_type_get_object(), this is now creating a `MonoGenericInst'
6695 for MONO_TYPE_GENERICINST.
6696 (ves_icall_MonoGenericInst_GetParentType): Likewise.
6697 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
6699 * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
6700 instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
6701 (inflated_method_get_object): Added `MonoClass *refclass' argument.
6702 (mono_reflection_inflate_method_or_ctor): Correctly set declaring
6705 * reflection.h (MonoReflectionInflatedMethod): Removed
6706 `declaring_type' and `reflected_type'.
6708 2004-02-08 Martin Baulig <martin@ximian.com>
6710 * class.h (MonoGenericInst): Added `MonoType *parent' and
6711 `MonoType **ifaces'.
6713 * reflection.h (MonoReflectionGenericInst): Removed `klass',
6714 `parent' and `interfaces'.
6716 * reflection.c (mono_reflection_bind_generic_parameters): Take a
6717 `MonoType *' argument and return a `MonoType *'.
6720 (ves_icall_MonoGenericInst_GetParentType): New interncall.
6721 (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
6723 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
6725 * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
6726 valuetype marshalling.
6728 2004-02-06 Martin Baulig <martin@ximian.com>
6731 (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
6732 (my_mono_class_from_generic_parameter): Likewise.
6734 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
6736 * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
6737 contents of the symbol files lazily.
6739 * object.h (MonoThread): Add 'name' and 'name_len' fields.
6741 * threads.h threads.c icall.c: New icalls for getting and setting the
6744 2004-02-05 Zoltan Varga <vargaz@freemail.hu>
6746 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID):
6747 Raise an exception when the domain is not found.
6749 2004-02-03 Martin Baulig <martin@ximian.com>
6751 * reflection.c (mono_image_get_methodspec_token): Use the
6752 uninflated signature; fixes gen-33.
6754 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
6756 * gc.c threads.c: Make the finalizer thread a normal managed thread so
6757 the finalizer code can use thread functionality.
6759 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for
6760 the finalizer thread.
6762 * threads.c: Make some functions more robust.
6764 * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
6766 * metadata.h: Add new marshalling conventions.
6768 * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
6769 stringbuilder marshalling. Fixes #53700.
6771 * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
6773 * reflection.c (mono_image_get_type_info): Save declarative security
6776 * reflection.c (mono_image_get_field_info): Handle uninitialized
6777 unmanaged fields as well.
6779 * appdomain.c: Bump corlib version.
6781 2004-02-01 Martin Baulig <martin@ximian.com>
6783 * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
6784 method type arguments.
6786 2004-01-30 Duncan Mak <duncan@ximian.com>
6788 * marshal.h: Add prototype for
6789 "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
6791 "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
6794 2004-01-30 Zoltan Varga <vargaz@freemail.hu>
6796 * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
6797 (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
6799 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
6801 * marshal.c (mono_marshal_get_native_wrapper): Add support for
6802 custom marshalling of valuetypes.
6804 * marshal.c: Fix some warnings.
6806 2004-01-29 Martin Baulig <martin@ximian.com>
6808 * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
6809 for generic method parameters.
6811 * reflection.c (method_encode_methodspec): Write the uninflated
6812 signature into the methodspec table.
6813 (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
6814 is always the uninflated method.
6815 (reflection_methodbuilder_to_mono_method): Copy the generic
6816 parameters from the MethodBuilder into `header->gen_params'.
6818 2004-01-29 Zoltan Varga <vargaz@freemail.hu>
6820 * class.c (mono_class_from_generic_parameter): Fix warning.
6822 2004-01-27 Martin Baulig <martin@ximian.com>
6824 * class.c (mono_class_from_generic_parameter): Don't create
6825 `klass->methods' here.
6827 2004-01-26 Zoltan Varga <vargaz@freemail.hu>
6829 * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
6830 extension since it does not work with libraries named lib<FOO>.dll.so.
6832 2004-01-25 Martin Baulig <martin@ximian.com>
6834 * class.c (mono_class_inflate_generic_type): Added support for
6835 MONO_TYPE_GENERICINST.
6837 * reflection.c (mono_reflection_inflate_method_or_ctor): Also
6838 inflate methods on open constructed types.
6840 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6842 * object.c: fire ProcessExit event in the root AppDomain after running
6843 Main. Fixes bug #53299.
6845 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
6847 * socket-io.c: include the new socket-wrappers.h header.
6848 Use the wrappers instead of the unix socket functions to make the code
6851 2004-01-23 Zoltan Varga <vargaz@freemail.hu>
6853 * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
6855 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
6858 2004-01-22 Zoltan Varga <vargaz@freemail.hu>
6860 * reflection.c (mono_image_create_pefile): Handle the case when the
6861 entry point is not a MethodBuilder.
6863 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
6864 field to ReflectionMethod since it is not allways a builder.
6866 * reflection.c (type_get_fully_qualified_name): New helper function to
6867 return the fully qualified name of a type.
6869 * reflection.c (encode_marshal_blob): Always emit the fully qualified
6870 type name for custom marshallers.
6872 * reflection.c (mono_marshal_spec_from_builder): Ditto.
6874 * class.c (mono_class_setup_vtable): If a parent class already
6875 implements an interface, use the implementing methods from that class.
6878 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6880 * threadpool.c: just return instead of ExitThread to allow for thread
6883 2004-01-21 Zoltan Varga <vargaz@freemail.hu>
6885 * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
6886 when closing resource modules.
6888 * reflection.c (mono_image_create_pefile): Handle the case when the
6889 entry point is not a MethodBuilder.
6891 * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
6892 field to ReflectionMethod since it is not allways a builder.
6894 2004-01-20 Bernie Solomon <bernard@ugsolutions.com>
6896 * marshal.c (mono_marshal_get_managed_wrapper):
6897 mono_marshal_alloc takes native int so CONV_I
6900 2004-01-20 Zoltan Varga <vargaz@freemail.hu>
6902 * reflection.c (fixup_cattrs): New function to fixup the methoddef
6903 tokens in the cattr table. Fixes #53108.
6905 2004-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6907 * loader.c: don't trim ".dll" before looking up in the config file.
6908 Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
6910 2004-01-19 Zoltan Varga <vargaz@freemail.hu>
6912 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
6913 Return the module which contains the resource as well.
6914 (ves_icall_System_Reflection_Module_Close): New icall.
6916 * appdomain.c: Bump corlib version number.
6918 * image.c (mono_image_addref): New public function.
6920 * assembly.c: Call mono_image_addref.
6922 * reflection.c (mono_module_get_object): Increase reference count of
6925 * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
6928 * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
6929 Applied patch from Bernie Solomon <bernard@ugsolutions.com>. Throw
6930 proper exceptions on DllImport problems.
6932 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
6934 * class.c, metadata.c: eliminate CSIZE macro.
6936 2004-01-19 Lluis Sanchez Gual <lluis@ximian.com>
6938 * icall.c: Added ves_icall_type_IsInstanceOf internal call.
6939 * object.h: Added async_callback field in MonoAsyncResult.
6940 * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
6941 * verify.c: Added async_callback in MonoAsyncResult layout.
6943 2004-01-17 Zoltan Varga <vargaz@freemail.hu>
6945 * reflection.c (mono_reflection_get_custom_attrs): Add support
6948 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
6950 * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder
6952 (mono_marshal_method_from_wrapper): Add null pointer check.
6954 2004-01-16 Martin Baulig <martin@ximian.com>
6956 * debug-mono-symfile.h: Set version number to 36 and reflect
6957 latest symbol writer changes.
6959 2004-01-16 Zoltan Varga <vargaz@freemail.hu>
6961 * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
6962 multi-dimensional arrays.
6963 (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
6964 (mono_class_from_mono_type): Use bounded_array_class_get.
6966 * class.c (mono_bounded_array_class_get): New function which takes
6967 a 'bounded' bool argument to distinguish vectors from one dimensional
6970 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call
6971 bounded_array_class_get if the array has bounds.
6973 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
6974 Search modules loaded using AssemblyBuilder:AddModule as well.
6976 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6978 * appdomain.c: increased corlib version.
6979 * filewatcher.c: removed g_print.
6981 (get_property_info): only allocate what is actually requested.
6982 (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
6984 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6986 * Makefile.am: added filewatcher.[ch]
6987 * filewatcher.[ch]: FileSystemWatcher runtime support.
6988 * icall.c: added new FSW icalls.
6990 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
6992 * string-icalls.c: fix stringbuilder regression as suggested by
6993 Iain McCoy <iain@mccoy.id.au>.
6995 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
6997 * process.c (process_read_stringtable_block): Recognize '007f' as
6998 a language neutral stringtable block.
7000 2004-01-12 Patrik Torstensson
7002 * object.h (MonoStringBuilder) : Changed layout to support our
7003 new stringbuilder class.
7004 * marshal.c: Change marshalling to support the new layout of
7006 * appdomain.c: increased version number because new layout of
7009 2004-01-12 Zoltan Varga <vargaz@freemail.hu>
7011 * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
7012 assembly name as an string instead of an AssemblyName, since it is
7013 easier to extract info from it.
7015 * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
7016 the culture subdirectories too. Fixes #52231.
7018 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7020 * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
7021 It takes 2 new parameters with an optional name for the method to look
7022 for and case ignoring info.
7024 * threadpool.c: removed unused variable.
7026 2004-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7028 * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
7029 It takes 2 new parameters with an optional name for the property to look
7030 for and case ignoring info.
7033 2004-01-09 Zoltan Varga <vargaz@freemail.hu>
7035 * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
7038 2004-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7041 * assembly.c: escape the uri before passing it to g_filename_from_uri.
7044 2004-01-07 Zoltan Varga <vargaz@freemail.hu>
7046 * reflection.c: Add support for more than one unmanaged resource.
7048 * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
7049 in field->def_value, as done in all other cases.
7051 * reflection.c (mono_reflection_get_custom_attrs): Add support for
7054 * reflection.c (mono_reflection_create_runtime_class): Remove
7055 errorneous assignment to klass->element_class, since it is already
7056 done in mono_reflection_setup_internal_class.
7058 2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7060 * gc.c: added missing LeaveCriticalSection.
7061 * icall.c: indented a couple of lines.
7062 * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
7063 if we call EndInvoke inside a callback. Fixes bug #52601.
7065 2004-01-07 Martin Baulig <martin@ximian.com>
7067 * mono-debug-debugger.h
7068 (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
7070 2004-01-06 Miguel de Icaza <miguel@ximian.com>
7072 * appdomain.c: Use messages in NotImplementedException.
7074 * exception.c (mono_get_exception_not_implemented): Now this takes
7077 * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
7078 exception instead of g_asserting an aborting when something is not
7081 Add some inline docs.
7083 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
7085 * reflection.h: Update after changes to object layout.
7087 * reflection.c: Implement saving of unmanaged aka win32 resources.
7089 * appdomain.c: Bump version number.
7091 * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID):
7092 Handle missing domains gracefully.
7094 2004-01-05 Atsushi Enomoto <atsushi@ximian.com>
7096 * file-io.c : On Windows, there are much more invalid_path_chars.
7098 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
7100 * class.h, object.c: prepare for GetType () speedup.
7102 2003-12-24 Atsushi Enomoto <atsushi@ximian.com>
7104 * profiler.c: workaround for --profile null reference exception on
7105 cygwin. Patch by Patrik Torstensson.
7107 2003-12-22 Bernie Solomon <bernard@ugsolutions.com>
7109 * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
7110 make work for unaligned access.
7112 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
7114 * class.c: small cleanup (class->fields [i] -> field).
7115 * image.c: check address of metadata is valid.
7117 2003-12-22 Zoltan Varga <vargaz@freemail.hu>
7119 * assembly.h assembly.c (mono_assembly_loaded): New public function to
7120 search the list of loaded assemblies.
7122 * reflection.c (mono_reflection_type_from_name): Use
7123 mono_assembly_loaded instead of mono_image_loaded.
7125 * reflection.c: Fix warnings.
7127 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
7129 * image.h (MonoImage): Add a new 'dynamic' field to denote that the image
7130 is dynamic. This is needed since an assembly can contain both dynamic and
7133 * class.c loader.c metadata.c object.c: Use image->dynamic instead of
7136 * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
7138 * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
7139 to store modules loaded using AddModule.
7141 * reflection.c (mono_image_fill_file_table): Generalize this so it works
7144 * reflection.c (mono_image_fill_export_table_from_class): New helper function.
7146 * reflection.c (mono_image_fill_export_table_from_module): New function to
7147 fill out the EXPORTEDTYPES table from a module.
7149 * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
7150 into a separate function. Also handle loaded non-dynamic modules.
7152 * reflection.c (mono_image_basic_init): Fix memory allocation.
7154 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7156 * assembly.c (mono_assembly_load_references): Make this public.
7158 2003-12-19 Martin Baulig <martin@ximian.com>
7160 * class.c (mono_class_initialize_generic): Made this static, take
7161 a `MonoGenericInst *' instead of a `MonoClass *'.
7162 (mono_class_from_generic): Call mono_class_initialize_generic()
7163 unless we're already initialized or being called from
7164 do_mono_metadata_parse_generic_inst().
7166 * class.h (MonoGenericInst): Added `initialized' and
7167 `init_pending' flags.
7169 * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
7170 `mono_class_init (gklass)' or mono_class_initialize_generic()
7171 here; set `generic_inst->init_pending' while parsing the
7174 2003-12-19 Bernie Solomon <bernard@ugsolutions.com>
7176 * locales.c: include string.h for memxxx prototypes
7178 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
7180 * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
7181 constructor when accessing literal fields.
7183 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
7185 * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7187 * reflection.c (assembly_add_resource_manifest): New function to fill
7188 the MANIFESTRESOURCE table.
7190 * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
7192 * reflection.h: Update to changes in class layout.
7194 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted):
7195 Reenable call to mono_runtime_is_shutting_down ().
7197 * appdomain.c (mono_runtime_is_shutting_down): New helper function to
7198 determine if the runtime is shutting down.
7200 2003-12-16 Jackson Harper <jackson@ximian.com>
7202 * icall.c: comment out call to mono_runtime_is_shutting_down to
7205 2003-12-16 Zoltan Varga <vargaz@freemail.hu>
7207 * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
7208 (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
7210 2003-12-15 Bernie Solomon <bernard@ugsolutions.com>
7212 * reflection.c: move definition of swap_with_size
7213 to before its first call
7215 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
7217 * appdomain.c (mono_runtime_is_shutting_down): New public function.
7219 * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
7222 * object.c: Fix warnings.
7224 * icall.c (ves_icall_Type_Get...): Only consider inherited static
7225 members if FlattenHierarchy is set.
7227 * reflection.c (mono_image_add_decl_security): New function to emit
7228 declarative security.
7230 * reflection.h reflection.c: Add support for declarative security.
7232 * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7234 2003-12-13 Zoltan Varga <vargaz@freemail.hu>
7236 appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7238 * appdomain.c verify.c: Moved corlib version checking into its own
7239 function in appdomain.c since it needs to create vtables etc.
7241 2003-12-13 Patrik Torstensson <p@rxc.se>
7243 * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this
7244 instead of unwrapped server.
7246 2003-12-12 Zoltan Varga <vargaz@freemail.hu>
7248 * verify.c (check_corlib): Fix field index.
7250 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
7252 * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
7255 2003-12-10 Bernie Solomon <bernard@ugsolutions.com>
7257 * process.c: (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
7258 ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
7259 cope with sizeof(size_t) != sizeof(guint32).
7261 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7263 * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
7266 2003-12-10 Mark Crichton <crichton@gimp.org>
7268 * icall.c: removed the GetNonZeroBytes. We now handle this case
7271 * rand.c, rand.h: Same here. Also cleaned up the clode slightly.
7273 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
7275 * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
7278 2003-12-09 Zoltan Varga <vargaz@freemail.hu>
7280 * verify.c (check_corlib): Handle the case when the version field is
7281 initialized by a static constructor.
7283 2003-12-08 Patrik Torstensson <p@rxc.se>
7285 * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
7287 2003-12-08 Martin Baulig <martin@ximian.com>
7289 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
7290 a MonoReflectionGenericParameter, also take the parameter index
7291 and name as arguments.
7292 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
7293 (ves_icall_MonoGenericParam_initialize): New interncall.
7294 (ves_icall_Type_make_byref_type): New interncall.
7296 * reflection.h (MonoReflectionGenericParam): Derive from
7297 MonoReflectionType, not just from MonoObject. Added `refobj' and
7300 * reflection.c (mono_reflection_define_generic_parameter): Create
7301 and return a new MonoReflectionGenericParam; don't initialize the
7303 (mono_reflection_initialize_generic_parameter): New public method;
7304 initializes the constraints and creates the `param->pklass'.
7306 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
7308 * reflection.h reflection.c: Use the new fields 'num_types',
7309 'num_fields' and 'num_methods' to track the number of types etc.
7311 * verify.c (check_corlib): Check corlib version number.
7313 2003-12-07 Zoltan Varga <vargaz@freemail.hu>
7315 * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
7316 function works on all methods.
7318 2003-12-07 Lluis Sanchez Gual <lluis@ximian.com>
7320 * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
7321 * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
7322 the custom_type_info flag of the transparent proxy.
7323 * object.c: Added method mono_object_isinst_mbyref for casting mbyref
7324 objects that supports IRemotingTypeInfo.
7325 * object.h: Added custom_type_info field in transparent proxy.
7327 2003-12-06 Martin Baulig <martin@ximian.com>
7329 * class.c (mono_class_create_from_generic): Removed.
7330 (mono_class_from_generic): Check `ginst->klass' before doing
7331 anything else. This is important to fully support "recursive"
7334 * metadata.c (do_mono_metadata_parse_generic_inst): Create an
7335 empty `generic_inst->klass' before doing anything else.
7337 2003-12-06 Dick Porter <dick@ximian.com>
7342 * locales.c: Use C structs to access class fields. Don't do a
7343 conversion between MonoString and UChar because both are
7344 platform-endian UTF-16. Compare now takes startindex and count
7345 parameters. Add a char overload for IndexOf. Speed up the
7346 invariant string IndexOf.
7348 2003-12-05 Zoltan Varga <vargaz@freemail.hu>
7350 * Makefile.am (monosn_LDADD): Fix parallel build.
7352 2003-12-04 Martin Baulig <martin@ximian.com>
7355 (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7356 (ves_icall_Type_make_array_type): New interncall.
7358 2003-12-04 Martin Baulig <martin@ximian.com>
7360 * locales.c: also change it in the !HAVE_ICU case.
7362 2003-12-04 Dick Porter <dick@ximian.com>
7365 * locales.c: construct_compareinfo is now in CompareInfo, not
7368 2003-12-04 Zoltan Varga <vargaz@freemail.hu>
7370 * image.c (mono_image_load_file_for_image): Cache loaded images in the
7373 * image.c (load_class_name): Load class names from the EXPORTEDTYPES
7376 * assembly.c (mono_assembly_load_references): Only load references
7379 * class.c (mono_class_from_name): Avoid linear search of the
7382 * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
7384 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
7386 * image.h (MonoImage): Add 'field_cache' field.
7388 * loader.c (mono_field_from_token): Cache field lookups.
7390 * reflection.c (mono_module_get_object): Fix name property.
7392 * icall.c (ves_icall_get_enum_info): Update after changes to
7393 mono_metadata_get_constant_index ().
7395 * icall.c: Get rid of get_type_info icall, use a separate icall for
7396 each type property to avoid needless memory allocations. Fixes #51514.
7398 * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
7399 to avoid needless binary searches.
7401 * class.c (class_compute_field_layout): Move the initialization of
7402 field->def_value to mono_class_vtable ().
7404 * class.c (mono_class_layout_fields): Enable GC aware auto layout for
7407 * object.c (mono_object_allocate): Make it inline.
7409 * object.c (mono_object_allocate_spec): Make it inline.
7411 2003-12-02 Dick Porter <dick@ximian.com>
7413 * locales.c (create_NumberFormat): NumberFormatInfo construction.
7414 Patch by Mohammad DAMT (mdamt@cdl2000.com).
7416 2003-12-01 Dick Porter <dick@ximian.com>
7418 * threads.c: Fix signature and call in CreateMutex and
7421 2003-12-01 Dick Porter <dick@ximian.com>
7424 * locales.c: Implement string compares and searching
7426 * object.h: Add extra Thread field
7428 2003-11-30 Zoltan Varga <vargaz@freemail.hu>
7430 * reflection.c (fixup_method): Add support for MonoCMethod.
7432 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
7434 * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
7436 * reflection.c (assembly_name_to_aname): Allow extra characters in
7437 assembly names. Fixes #51468.
7439 2003-11-26 Zoltan Varga <vargaz@freemail.hu>
7441 * exception.c (mono_exception_from_name_domain): New helper function.
7443 * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
7444 exception object in the correct domain.
7446 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix
7447 formatting + make a copy a the input data.
7449 * loader.c (mono_get_method_from_token): Methods which contain
7450 native code do not have entries in the ImplMap.
7452 (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
7453 Thanks to Gonzalo for spotting this.
7455 * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
7456 patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
7458 * assembly.h (mono_assembly_load_from): Split the second part of
7459 assembly loading into a new public function.
7461 * exception.h (mono_get_exception_bad_image_format): New function.
7463 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
7465 icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
7466 Enumerate all modules inside a dynamic assembly. Fixes #51293.
7468 * icall.c: Add new icall for creating dynamic methods.
7470 * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
7472 * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
7474 * reflection.c (mono_reflection_create_dynamic_method): New icall to
7475 create a dynamic method.
7477 * reflection.c (resolve_object): New helper function.
7479 * reflection.c: Generalize ReflectionMethodBuilder and the functions
7480 which manipulate it so they can also work on dynamic methods.
7482 * reflection.c (reflection_method_builder_to_mono_method): Avoid
7483 creating the MonoReflectionMethodAux structure if it is not needed.
7485 * reflection.h verify.c: Update after changes to object layout.
7487 * reflection.c (method_builder_encode_signature): Fix compilation on
7490 2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
7492 * appdomain.h: Added support for context static fields. Added static_data
7493 field to MonoAppContext and renamed thread_static_fields to a more
7494 generic special_static_fields in MonoAppDomain, since it can now contain
7495 context static fields.
7496 * domain.c: Updated hashtable name.
7497 * object.c: Replaced field_is_thread_static() for a more generic
7498 field_is_special_static() which also checks for context static attribute.
7499 In mono_class_vtable(), added support for static context fields.
7500 * threads.c: Changed methods that manage thread static fields to more
7501 generic methods so they can be reused both for thread and context static
7503 * threads.h: Declared some new methods.
7505 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
7507 * reflection.h: Update after changes to the managed types.
7509 * reflection.c (encode_custom_modifiers): New helper function.
7511 * reflection.c (method_encode_signature): Emit custom modifiers.
7513 * reflection.c (field_encode_signature): Emit custom modifiers.
7515 2003-11-18 Zoltan Varga <vargaz@freemail.hu>
7517 * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
7519 * icall.c (ves_icall_System_ValueType_Equals): New optimized
7522 * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New
7525 * object.c (mono_field_get_value_object): New function.
7527 * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
7530 2003-11-17 Zoltan Varga <vargaz@freemail.hu>
7532 * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
7533 return a preallocated out-of-memory exception instance.
7535 * object.c (out_of_memory): Use the new function.
7537 * metadata.c (mono_metadata_parse_type): Handle the case when the byref
7538 flag is before the custom modifiers. Fixes #49802.
7540 2003-11-16 Martin Baulig <martin@ximian.com>
7542 * class.c (mono_class_is_open_constructed_type): Implemented the
7543 MONO_TYPE_GENERICINST case.
7545 2003-11-16 Zoltan Varga <vargaz@freemail.hu>
7547 * assembly.c (mono_assembly_fill_assembly_name): New function to
7548 fill out the MonoAssemblyName structure.
7549 (mono_assembly_open): Use the new function.
7551 * icall.c (fill_reflection_assembly_name): New helper function.
7553 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
7556 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
7558 2003-11-15 Martin Baulig <martin@ximian.com>
7560 * class.c (mono_class_is_open_constructed_type): New public
7561 function; checks whether a type is an open constructed type,
7562 ie. whether it still contains type parameters.
7563 (mono_class_inflate_generic_type): If we're a type parameter and
7564 the inflated type is also a MONO_TYPE_(M)VAR, return the original
7567 * class.h (MonoGenericInst): Added `guint32 is_open'.
7569 * loader.c (method_from_methodspec): Check whether we're an open
7570 or closed constructed type and set `ginst->is_open'.
7572 * reflection.c (mono_reflection_bind_generic_parameters): Check
7573 whether we're an open or closed constructed type and set
7575 (mono_reflection_inflate_method_or_ctor): Don't inflate methods
7576 from open constructed types.
7578 2003-11-15 Martin Baulig <martin@ximian.com>
7580 * reflection.c (mono_reflection_bind_generic_parameters): If we're
7581 a generic instance (instead of a generic type declaration) with
7582 unbound generic parameters, bind them to our actual types.
7584 2003-11-14 Martin Baulig <martin@ximian.com>
7586 * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
7588 * reflection.c (mono_reflection_bind_generic_parameters): If we're
7589 an interface type, populate `res->interfaces' with instantiated
7590 versions of all the interfaces we inherit.
7592 2003-11-13 Aleksey Demakov <avd@openlinksw.com>
7594 * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
7595 when MONO_PATH is set but doesn't contain the install dir.
7597 2003-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7600 (ves_icall_Type_GetInterfaces): don't return an interface twice when
7601 it's also implemented in base classes. Fixes bug #50927.
7603 2003-11-13 Zoltan Varga <vargaz@freemail.hu>
7605 * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
7606 if this method is called from a finalizer. Fixes #50913.
7608 2003-11-12 Miguel de Icaza <miguel@ximian.com>
7610 * threads.c: Implement VolatileRead/VolatileWrite
7612 * icall.c: Add new icalls for VolatileRead/VolatileWrite
7614 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
7616 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied
7617 patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
7620 * assembly.c (mono_assembly_open): Fix windows build. Applied patch
7621 from Peter Ross (pro@missioncriticalit.com).
7623 2003-11-12 Lluis Sanchez Gual <lluis@ximian.com>
7625 * icall.c: Added internal call for System.Environment::GetMachineConfigPath
7627 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
7629 * assembly.c (mono_assembly_load_references): Disable check because it
7630 triggers on older corlibs which lots of people have.
7632 2003-11-12 Jackson Harper <jackson@ximian.com>
7634 * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
7635 load corlib.dll if mscorlib.dll is not found.
7636 * assembly.h: Remove corlib name define.
7639 * image.c: Change corlib name to mscorlib.
7641 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
7643 * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
7645 2003-11-11 Miguel de Icaza <miguel@ximian.com>
7647 * appdomain.h: Added loader_optimization here to sync with the C#
7648 code, and add disallow_binding_redirects field.
7650 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
7652 * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
7654 * reflection.c (mono_image_build_metadata): Fix crash on modules
7657 * reflection.h (MonoMethodInfo): Track changes to the managed structure.
7659 * icall.c (ves_icall_get_method_info): Return callingConvention as
7662 * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add
7663 namespaces from the EXPORTEDTYPE table as well.
7665 * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
7666 from all modules inside the assembly.
7668 2003-11-11 Martin Baulig <martin@ximian.com>
7670 * reflection.c (mono_reflection_bind_generic_parameters): Make
7671 this work for interfaces.
7673 2003-11-11 Martin Baulig <martin@ximian.com>
7675 * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
7677 2003-11-11 Martin Baulig <martin@ximian.com>
7679 * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
7680 "MonoInflatedMethod" and "MonoInflatedCtor".
7682 2003-11-11 Zoltan Varga <vargaz@freemail.hu>
7684 * reflection.c (resolution_scope_from_image): Use the assembly table
7685 from the manifest module, since other modules don't have it.
7687 * debug-helpers.c (mono_type_full_name): New helper function.
7689 * image.h (MonoAssembly): Change 'dynamic' to a boolean.
7691 * image.c (mono_image_load_file_for_image): New public function which
7692 is a replacement for the load_file_for_image in class.c.
7694 * assembly.c (mono_assembly_load_module): A wrapper for the function
7695 above which does assembly association and reference loading too.
7697 * class.c (mono_class_from_name): Call mono_assembly_load_module.
7699 2003-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7701 * appdomain.c: not all of the attributes for the full assembly name
7702 are required and the order doesn't matter. Fixes bug #50787.
7704 2003-11-10 Dick Porter <dick@ximian.com>
7706 * locales.c: Use platform-endian UTF16
7708 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
7710 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
7712 2003-11-10 Martin Baulig <martin@ximian.com>
7715 (mono_metadata_load_generic_params): Make this actually work.
7717 * reflection.c (mono_reflection_bind_generic_parameters): If our
7718 parent is a generic instance, pass all the `types' to it, no
7719 matter whether it has the same number of type parameters or not.
7721 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
7723 * reflection.c: Emit FILE and EXPORTEDTYPE tables.
7725 * assembly.c (mono_assembly_load_references): Move the image<->assembly
7726 assignment code to this function so it gets called recursively for all
7729 * image.c (load_modules): Remove the assembly assignment since it is
7730 now done by mono_assembly_load_references.
7732 * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
7733 Add 'module' argument.
7734 (mono_module_get_types): New helper function.
7735 (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
7737 2003-11-08 Martin Baulig <martin@ximian.com>
7739 * class.c (mono_class_inflate_generic_method): Interface method
7740 don't have a header.
7742 * reflection.c (mono_image_get_methodspec_token): Take an
7743 additional `MonoGenericInst *' argument instead of reading it from
7744 the header; this is necessary to support interfaces.
7745 (mono_image_create_token): Pass the `MonoGenericInst *' from the
7746 MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
7747 (inflated_method_get_object): Take an additional `MonoGenericInst *'
7750 * reflection.h (MonoReflectionInflatedMethod): Added
7751 `MonoGenericInst *ginst'.
7753 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
7755 * gc.c (mono_domain_finalize): Fix compilation for no GC case.
7757 2003-11-06 Zoltan Varga <zovarga@ws-zovarga2>
7759 * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
7761 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
7764 (reflection_methodbuilder_from_method_builder):
7765 (reflection_methodbuilder_from_ctor_builder): New helper functions to
7766 initialize a ReflectionMethodBuilder structure.
7767 (mono_image_get_methodbuilder_token):
7768 (mono_image_get_ctorbuilder_token): New functions to emit memberref
7769 tokens which point to types in another module inside the same assembly.
7771 * reflection.c: Use the new helper functions.
7773 * reflection.c (mono_image_basic_init): Initialize basedir and culture.
7775 * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image
7776 instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
7778 * reflection.c (resolution_scope_from_image): Emit a moduleref if
7781 * reflection.c (mono_image_build_metadata): Emit metadata only for the
7782 current module. Emit the manifest only for the main module.
7784 * reflection.c (mono_image_create_token): Add assertion when a
7785 memberref needs to be created.
7787 * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
7789 * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a
7790 larger buffer for the custom attribute blob. Fixes #50637.
7792 2003-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7794 * threadpool.c: notify listener on async processing handles after
7795 invoking the async callback. Thanks to Zoltan.
7797 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
7799 * reflection.c (create_dynamic_mono_image): Call mono_image_init to
7800 avoid code duplication.
7802 * reflection.h (MonoDynamicImage): New type which is currently unused,
7803 but will be used through the ref.emit code in place of
7804 MonoDynamicAssembly.
7806 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
7809 * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
7810 a MonoDynamicImage instead of just a MonoImage.
7812 * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
7813 icalls to ModuleBuilder but keep their semantics, so they will work
7814 with moduleb->assemblyb. This will change later.
7816 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
7818 * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
7821 * reflection.c (mono_image_build_metadata): Avoid creation of a default
7822 main module, since it is now done by the managed code.
7824 2003-11-03 Martin Baulig <martin@ximian.com>
7826 * reflection.c (mono_reflection_inflate_method_or_ctor): Set
7827 `ginst->klass' here.
7828 (method_encode_methodspec): Don't use the `ginst->generic_method's
7829 klass if it's a generic instance, use `ginst->klass' in this case.
7831 2003-11-03 Martin Baulig <martin@ximian.com>
7833 * reflection.c (mono_image_get_generic_method_param_info):
7834 Removed, use mono_image_get_generic_param_info() instead.
7835 (mono_image_get_type_info): Write the GenericParam table before
7836 the Method table. This is neccessary because in the GenericParam
7837 table, type parameters of the class (ie. '!0' etc.) must come
7838 before the ones from its generic methods (ie. '!!0' etc).
7840 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
7842 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
7844 2003-11-02 Martin Baulig <martin@ximian.com>
7846 * reflection.c (create_generic_typespec): Take a
7847 `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
7848 the generic parameters from it.
7850 2003-11-02 Martin Baulig <martin@ximian.com>
7852 * reflection.c (fieldref_encode_signature): Take a `MonoType *'
7853 instead of a `MonoClassField *' since we just need the type.
7854 (create_generic_typespec): New static function. Creates a
7855 TypeSpec token for a generic type declaration.
7856 (mono_image_get_generic_field_token): New static function.
7857 (mono_image_create_token): If we're a FieldBuilder in a generic
7858 type declaration, call mono_image_get_generic_field_token() to get
7861 2003-11-02 Martin Baulig <martin@ximian.com>
7864 (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
7865 `MonoReflectionGenericInst *declaring_type' and
7866 `MonoReflectionGenericInst *reflected_type' fields.
7868 * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
7869 `MonoReflectionGenericInst *declaring_type' and a
7870 `MonoReflectionGenericInst *reflected_type' argument instead of a
7871 single `MonoReflectionGenericInst *type' one. Set
7872 `res->declaring_type' and `res->reflected_type' from them.
7873 (mono_reflection_inflate_field): Likewise.
7875 2003-11-02 Martin Baulig <martin@ximian.com>
7877 * class.c (mono_class_setup_vtable): Don't store generic methods
7880 2003-11-02 Martin Baulig <martin@ximian.com>
7882 * reflection.h (MonoReflectionGenericInst): Added
7883 `MonoReflectionType *declaring_type'.
7885 * reflection.c (mono_reflection_bind_generic_parameters): Use
7886 `if (tb->parent)' instead of `klass->parent'.
7888 2003-11-01 Zoltan Varga <vargaz@freemail.hu>
7890 * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
7891 with an empty ASSEMBLY table.
7893 * reflection.c (mono_image_build_metadata): Avoid using the same loop
7894 variable in the inner and outer loops.
7896 2003-10-31 Zoltan Varga <vargaz@freemail.hu>
7898 * metadata.h (mono_metadata_make_token): Put parentheses around macro
7901 * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
7903 * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain
7904 icalls. Instead, do everything in managed code. This is needed since
7905 it is hard to restore the original domain etc. in unmanaged code in the
7906 presence of undeniable exceptions.
7908 * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef):
7909 New icalls to push and pop appdomain refs.
7911 2003-10-31 Martin Baulig <martin@ximian.com>
7913 * class.c (inflate_generic_type): Renamed to
7914 mono_class_inflate_generic_type() and made it public.
7916 * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
7919 * loader.c (mono_field_from_memberref): Also set the retklass for
7922 * fielder.c (mono_image_get_inflated_field_token): New static
7923 method; creates a metadata token for an inflated field.
7924 (mono_image_create_token, fixup_method): Added support for
7925 "MonoInflatedField".
7926 (fieldbuilder_to_mono_class_field): New static function.
7927 (mono_reflection_inflate_field): New public function.
7930 (MonoReflectionGenericInst): Added `MonoArray *fields'.
7931 (MonoReflectionInflatedField): New typedef.
7933 2003-10-30 Bernie Solomon <bernard@ugsolutions.com>
7935 * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
7936 for Solaris and other platforms without s6_addr16
7938 2003-10-30 Martin Baulig <martin@ximian.com>
7940 * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
7941 argument instead of two.
7942 (mono_class_inflate_generic_signature): Likewise.
7943 (inflate_generic_header): Likewise.
7944 (mono_class_inflate_generic_method): Likewise. In addition, if
7945 `ginst->klass' is set, it becomes the new `method->klass'.
7947 * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
7950 * reflection.c (encode_generic_method_sig): Write a 0xa as the
7952 (method_encode_methodspec): If we have generic parameters, create
7953 a MethodSpec instead of a MethodRef.
7954 (fixup_method): Added support for "MonoInflatedMethod" and
7956 (mono_image_create_token): Added support for "MonoInflatedMethod"
7957 and "MonoInflatedCtor".
7958 (inflated_method_get_object): New static function; returns a
7959 managed "System.Reflection.MonoInflatedMethod" object.
7960 (mono_reflection_bind_generic_method_parameters): Return a
7961 `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
7962 (mono_reflection_inflate_method_or_ctor): Likewise.
7963 (mono_image_get_generic_method_param_info): Initialize unused
7965 (mono_image_get_generic_param_info): Likewise.
7967 * reflection.h (MonoReflectionInflatedMethod): New public
7968 typedef. Corresponds to the managed "S.R.MonoInflatedMethod" and
7969 "S.R.MonoInflatedCtor" classes.
7971 * loader.c (method_from_memberref): If we're a TypeSpec and it
7972 resolves to a generic instance, inflate the method.
7974 2003-10-28 Dick Porter <dick@ximian.com>
7976 * object.c (mono_runtime_run_main): Convert command-line arguments
7977 into utf8, falling back to the user's locale encoding to do so.
7979 2003-10-27 Zoltan Varga <vargaz@freemail.hu>
7981 * loader.c (mono_get_method_from_token): Avoid looking up the icalls
7984 * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
7986 * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
7987 up icalls at method definition time. Partially fixes #33569.
7989 2003-10-25 Zoltan Varga <vargaz@freemail.hu>
7991 * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
7992 marshalling of arrays. Fixes #50116.
7994 * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
7996 * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
7997 points to a vtable in the dying appdomain.
7999 * appdomain.c (mono_domain_unload): Move the notification of OnUnload
8000 listeners into unmanaged code inside the lock.
8002 * object.c (mono_class_vtable): Turn off typed allocation in non-root
8003 domains and add some comments.
8005 2003-10-25 Martin Baulig <martin@ximian.com>
8007 * class.h (MonoGenericInst): Added `MonoClass *klass' field.
8009 * image.h (MonoImage): Added `GHashTable *typespec_cache'.
8011 * metadata.c (mono_metadata_parse_generic_inst): Renamed to
8012 `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
8013 currently parsing. Create the generic class and store it in
8014 `generic_inst->klass' before parsing the type arguments. This is
8015 required to support "recursive" definitions; see mcs/tests/gen-23.cs
8017 (mono_type_create_from_typespec): Use a new `image->typespec_cache'
8018 to support recursive typespec entries.
8020 * class.c (mono_class_setup_parent): If our parent is a generic
8021 instance, we may get called before it has its name set.
8022 (mono_class_from_generic): Splitted into
8023 mono_class_create_from_generic() and mono_class_initialize_generic().
8025 2003-10-25 Martin Baulig <martin@ximian.com>
8027 * icall.c (ves_icall_Type_BindGenericParameters): Return a
8028 `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
8029 ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
8030 ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
8032 * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
8033 (create_typespec): Likewise.
8034 (mono_reflection_bind_generic_parameters): Return a
8035 `MonoReflectionGenericInst *' instead of a `MonoClass *'.
8036 (mono_reflection_inflate_method_or_ctor): New public function.
8038 * reflection.h (MonoReflectionGenericInst): New typedef.
8040 2003-10-24 Zoltan Varga <vargaz@freemail.hu>
8042 * object.c (mono_class_proxy_vtable): Run the whole vtable construction
8043 inside the domain lock. Fixes #49993.
8045 * object.c (mono_class_vtable): When typed allocation is used,
8046 allocate vtables in the GC heap instead of in the mempool, since the
8047 vtables contain GC descriptors which are used by the collector even
8048 after the domain owning the mempool is unloaded.
8050 * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
8052 * domain.c (mono_domain_unload): Rename to mono_domain_free to better
8053 reflect what it does. Also invalidate mempools instead of freeing
8054 them if a define is set.
8056 * appdomain.h (MonoAppDomainState): New enumeration to hold the state
8059 * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
8060 hold the finalizable objects in this domain.
8062 * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
8065 * appdomain.c (mono_domain_set): New function to set the current
8066 appdomain, but only if it is not being unloaded.
8068 * appdomain.c threads.c threadpool.c object.c: Avoid entering an
8069 appdomain which is being unloaded.
8071 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
8072 unloading of the root appdomain.
8074 * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
8075 icall to execute a method in another appdomain. Intended as a
8076 replacement for InternalSetDomain, which can confuse the code
8077 generation in the JIT.
8079 * appdomain.c (mono_domain_is_unloading): New function to determine
8080 whenever an appdomain is unloading.
8082 * appdomain.c (mono_domain_unload): New function to correctly unload
8085 * assembly.c (mono_assembly_load_references): Check that an assembly
8086 does not references itself.
8088 * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
8089 domain manually, it asks the finalizer thread to do it, then waits for
8090 the result. Also added a timeout.
8092 * icall.c: Register the new icalls.
8094 * threads.h threads.c: Export the mono_gc_stop_world and
8095 mono_gc_start_world functions.
8097 * mempool.h mempool.c (mono_mempool_invalidate): New debugging
8098 function to fill out the mempool with 0x2a.
8100 2003-10-22 Zoltan Varga <vargaz@freemail.hu>
8102 * reflection.h (MonoReflectionMethodAux): New structure to store
8103 information which is rarely used, thus is not in the MonoMethod
8106 * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
8109 * reflection.c (mono_methodbuilder_to_mono_method): Store param names
8110 and marshalling info into the aux structure.
8112 * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
8113 from the aux structure.
8115 * loader.c (mono_method_get_param_names): Retrieve the param names from
8118 2003-10-21 Zoltan Varga <vargaz@freemail.hu>
8120 * exception.h exception.c: Add AppDomainUnloadedException && fix
8123 2003-10-21 Dick Porter <dick@ximian.com>
8126 (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
8127 patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
8129 2003-10-21 Martin Baulig <martin@ximian.com>
8131 * reflection.c (mono_reflection_bind_generic_parameters):
8132 `klass->parent' is NULL for interfaces.
8134 2003-10-21 Martin Baulig <martin@ximian.com>
8136 * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8138 2003-10-20 Zoltan Varga <vargaz@freemail.hu>
8140 * exception.c (mono_exception_from_name_msg): New helper function for
8141 creating exceptions and initializing their message field.
8143 * exception.c: Simplify functions using the new helper.
8145 * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
8148 * object.h object.c: Remove G_GNUC_NORETURN from the signature of
8149 mono_raise_exception, since otherwise gcc doesn't generate the function
8150 epilog for raise_exception, confusing the stack unwinding in the JIT.
8153 * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
8154 PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
8157 2003-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8159 * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
8162 2003-10-18 Lluis Sanchez Gual <lluis@ximian.com>
8164 * icall.c: Removed GetUninitializedObject method because
8165 AllocateUninitializedClassInstance does the same.
8167 2003-10-18 Martin Baulig <martin@ximian.com>
8169 * class.c (inflate_generic_signature): Renamed to
8170 mono_class_inflate_generic_signature() and made it public.
8171 (my_mono_class_from_generic_parameter): New static function; if we
8172 don't already have the generic parameter's MonoClass, create a
8173 very simple one which is just used internally in the runtime and
8174 not passed back to managed code.
8176 * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
8178 * metadata.h (MonoMethodSignature): Moved the
8179 `MonoGenericParam *gen_params' to the MonoMethodHeader.
8180 (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
8182 * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
8183 ves_icall_MonoMethod_GetGenericArguments(); this is now an
8184 interncall on the MonoMethod class, not on MethodInfo.
8185 (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
8186 calling mono_reflection_bind_generic_method_parameters() directly.
8188 * loader.c (mono_method_get_signature): If this is a MethodSpec;
8189 return the already computed `method->signature'.
8190 (method_from_methodspec): New static function to load a method
8191 from a MethodSpec entry.
8192 (mono_get_method_from_token): Call the new method_from_methodspec()
8193 for MethodSpec tokens.
8194 (mono_get_method_from_token): If we're a generic method, load the
8197 * reflection.c (mono_image_get_memberref_token): Allow
8198 MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
8200 (fixup_method): Added support for MONO_TABLE_METHODSPEC.
8201 (mono_image_create_token): First check whether it's a generic
8202 method (so we'd need to create a MethodSpec), then do the other
8204 (mono_reflection_bind_generic_method_parameters): Return a
8205 `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
8206 called directly from the interncall.
8208 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
8210 * reflection.c (load_public_key): Move loading of the public key
8213 * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
8215 * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
8218 * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
8219 culture, hash_alg and public_key. Fixes #49555.
8221 2003-10-17 Martin Baulig <martin@ximian.com>
8223 * class.h (MonoGenericInst): Moved this declaration here and added
8224 `MonoMethod *generic_method'.
8227 (ves_icall_MethodInfo_GetGenericArguments): New interncall.
8228 (ves_icall_MethodInfo_BindGenericParameters): New interncall.
8230 * metadata.c (mono_metadata_type_equal): Two types of
8231 MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
8232 index; ie. don't compare the address of the `MonoGenericParam'
8234 (mono_metadata_load_generic_params): Removed the `MonoMethod
8237 * metadata.h (MonoGenericInst): Moved declaration to class.h.
8238 (MonoMethodHeader): Added `MonoGenericInst *geninst'.
8240 * reflection.c (method_encode_signature): Encode the number of
8242 (encode_generic_method_sig): New static function.
8243 (method_encode_methodspec): New static function; creates an entry
8244 in the MethodSpec table for a generic method.
8245 (mono_image_get_methodspec_token): New static function.
8246 (mono_image_create_token): Call mono_image_get_methodspec_token()
8247 for generic methods.
8248 (mono_reflection_bind_generic_method_parameters): New public
8249 function. Instantiates a generic method.
8251 2003-10-16 Martin Baulig <martin@ximian.com>
8253 * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
8254 *gen_params' here from MonoMethodHeader.
8256 * metadata.c (mono_metadata_parse_method_signature): If we have
8257 generic parameters, initialize `method->gen_params' and then set
8258 the correct `type->data.generic_param' in all the parameters.
8260 2003-10-16 Zoltan Varga <vargaz@freemail.hu>
8262 * threads.c (mono_threads_get_default_stacksize): New function to
8263 return the default stacksize.
8265 * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
8266 termination of the finalizer thread, since the previous method had
8267 race conditions. Fixes #49628.
8269 * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
8270 as for the other managed threads.
8272 2003-10-16 Martin Baulig <martin@ximian.com>
8274 * class.c (inflate_generic_signature): Copy `generic_param_count'
8277 * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
8280 * metadata.c (mono_metadata_parse_method_signature): Actually set
8281 the `method->generic_param_count' here.
8282 (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
8284 2003-10-15 Zoltan Varga <vargaz@freemail.hu>
8286 * object.h: Add a new field to TypedRef to simplify the implementation
8287 of the REFANY opcodes in the JIT.
8289 * icall.c: Make use of the new field.
8291 * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
8294 2003-10-15 Martin Baulig <martin@ximian.com>
8296 * class.c (mono_class_from_gen_param): Renamed to
8297 mono_class_from_generic_parameter() and moved most of the
8298 functionality from mono_reflection_define_generic_parameter()
8299 here; ie. we create a "real" class here.
8300 (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
8301 MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
8302 previously been called.
8304 * class.h (MonoGenericParam): Moved the declaration of this struct
8305 here from metadata.h and added `MonoMethod *method'.
8307 * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
8310 * loader.c (mono_get_method_from_token): If we have any generic
8311 parameters, call mono_metadata_load_generic_params() to read them
8312 from the MONO_TABLE_GENERICPAR.
8314 * metadata.c (mono_metadata_load_generic_params): Added
8315 `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
8317 * metadata.h (MonoMethodSignature): Replaced
8318 `MonoGenericInst *geninst' with `guint16 generic_param_count'.
8319 (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
8321 * reflection.c (mono_reflection_define_generic_parameter): Moved
8322 most of the functionality into the new
8323 mono_class_from_generic_parameter(); set the `method' field if
8324 we're a method parameter.
8326 2003-10-13 Bernie Solomon <bernard@ugsolutions.com>
8328 * marshal.c (emit_struct_conv): if native size is 0
8331 2003-10-14 Martin Baulig <martin@ximian.com>
8333 * icall.c: The generics API has changed in the spec since it was
8334 added to System.Type; these modifications make it match the spec
8336 (ves_icall_Type_GetGenericParameters): Renamed to
8337 `ves_icall_Type_GetGenericArguments'.
8338 (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
8339 (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
8340 `ves_icall_MonoType_get_HasGenericArguments'.
8341 (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
8342 `ves_icall_MonoType_get_IsGenericParameter'.
8343 (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
8344 this is no interncall anymore.
8345 (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
8346 `ves_icall_TypeBuilder_get_IsGenericParameter'.
8348 2003-10-14 Martin Baulig <martin@ximian.com>
8350 * reflection.c (mono_reflection_bind_generic_parameters): Also
8351 inflate generic methods if we're reading the class from IL.
8353 2003-10-13 Martin Baulig <martin@ximian.com>
8355 * reflection.c (mono_reflection_define_generic_parameter): This
8356 method isn't called directly from the icall anymore; take a
8357 `MonoReflectionAssemblyBuilder *' so we can use this for type and
8358 method generic parameters.
8359 (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
8360 (method_builder_encode_signature): Encode generic parameters.
8361 (mono_image_get_method_info): Write generic params to the
8362 MONO_TABLE_GENERICPARAM table.
8364 * reflection.h (MonoReflectionMethodBuilder): Added
8365 `MonoArray *generic_params'.
8367 * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
8369 * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
8370 wrapper for mono_reflection_define_generic_parameter().
8371 (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
8373 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
8375 * marshal.h: Add missing function to fix build.
8377 * marshal.c (mono_marshal_get_native_wrapper): Add support for
8378 the SetLastError pinvoke attribute.
8380 * marshal.c (mono_marshal_set_last_error): New helper function called
8381 by the generated code.
8383 * marshal.c (mono_mb_emit_branch): New helper function.
8385 * marshal.c (mono_mb_emit_exception): Added exception name parameter.
8387 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8388 classes as parameters and return values of delegates. Fixes #29256.
8390 2003-10-12 Bernie Solomon <bernard@ugsolutions.com>
8392 * locales.c: use gint32 in non HAVE_ICU case
8394 2003-10-11 Martin Baulig <martin@ximian.com>
8396 * mono-debug.c (mono_debug_add_method): Added a workaround for
8399 2003-10-10 Zoltan Varga <vargaz@freemail.hu>
8401 * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
8402 delegates passed to native code must use the STDCALL calling
8403 convention. Fixes #35987.
8405 2003-10-10 Martin Baulig <martin@ximian.com>
8407 * class.c (inflate_generic_type): If we're inflating for a generic
8408 type instance (and not for a generic method), return
8409 MONO_TYPE_MVAR unchanged.
8411 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8413 * string-icalls.c: Join ignores null strings in the source array.
8414 * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
8415 * threads.c: GetAvailableTheads is slightly more accurate.
8417 2003-10-09 Bernie Solomon <bernard@ugsolutions.com>
8419 * threads.h threads.c : add mono_threads_set_default_stacksize
8420 and pass default to CreateThread calls.
8422 2003-10-09 Dick Porter <dick@ximian.com>
8426 * locales.c: Internal calls for constructing CultureInfo and
8427 related objects from libicu (if its available.)
8429 2003-10-09 Zoltan Varga <vargaz@freemail.hu>
8431 * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
8433 2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8435 * threadpool.c: added an argument to async_invoke_thread that is the
8436 item to process, pass the MonoAsyncResult to the thread start function
8437 when creating a new thread. This way we don't need to acquire any lock
8438 when we're creating a new thread. Readded a semaphore for faster
8439 response times (instead of that Sleep i added).
8441 2003-10-08 Bernie Solomon <bernard@ugsolutions.com>
8443 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
8444 get daylight change dates better on Windows, fix handling
8445 of platforms without tm_gmtoff.
8447 2003-10-06 Martin Baulig <martin@ximian.com>
8449 * class.c (inflate_generic_method): Renamed to
8450 mono_class_inflate_generic_method() and made public.
8451 (mono_class_init): Don't inflate the generic methods here.
8452 (mono_class_from_generic): Added `gboolean inflate_methods'
8453 argument. Inflate the methods here.
8455 * loader.c (mono_method_get_param_names): Ignore instances of
8456 generic types for the moment.
8458 * reflection.c (fixup_method): Added support for inflated methods.
8459 (mono_image_create_token): Use mono_image_get_methodref_token()
8460 for inflated methods.
8461 (mono_custom_attrs_from_param): Ignore instances of generic types
8463 (mono_reflection_bind_generic_parameters): New public function.
8464 Moved all the functionality from
8465 ves_icall_Type_BindGenericParameters() here and added support for
8467 (mono_reflection_define_generic_parameter): Initialize
8468 `klass->methods' here.
8470 * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
8471 functionality into mono_reflection_define_generic_parameter().
8472 (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
8473 TypeBuilder, return that TypeBuilder.
8475 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8477 * appdomain.c: removed mono_delegate_semaphore.
8480 (mono_thread_pool_add): moved hash table creation inside and the thread
8481 creation outside of the critical region.
8482 (mono_thread_pool_finish): removed obsolete code.
8483 (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
8484 continue or exit the thread depending on the queue.
8486 2003-10-07 Bernie Solomon <bernard@ugsolutions.com>
8488 * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
8489 marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
8490 handle more bool marshalling options
8492 2003-10-07 Zoltan Varga <vargaz@freemail.hu>
8494 * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
8495 arrays of structs. Also add a more descriptive error message when
8496 a structure member is marshalled as LPArray.
8498 2003-10-06 Zoltan Varga <vargaz@freemail.hu>
8500 * marshal.c (mono_marshal_get_native_wrapper): Add support for
8501 marshalling arrays of complex types. Fixes #29098. Also remove an
8502 usused and incomplete function.
8504 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
8506 * gc.c: report heap_size - free_bytes as total memory allocated
8509 2003-10-05 Zoltan Varga <vargaz@freemail.hu>
8511 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally
8512 fix timezone handling problems on Windows.
8514 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
8515 asserts when the year is outside the range handled by ms the functions.
8517 * class.c (setup_interface_offsets): If the class is an interface,
8518 fill out its interface_offsets slot.
8520 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8522 * threadpool.c: mark threadpool threads as background.
8524 2003-10-03 Bernie Solomon <bernard@ugsolutions.com>
8526 * decimal.c - define DECINLINE to nothing if not using GCC
8528 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
8530 * assembly.c: More refcount fixes.
8532 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8534 * string-icalls.c: if we're not trimming, return the same string.
8535 When not splitting, don't create a new string.
8537 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8540 (mono_image_open): increment the ref_count inside the critical section.
8542 2003-10-02 Zoltan Varga <vargaz@freemail.hu>
8544 * image.c (mono_image_open): Fix reference counting bug.
8546 2003-09-30 Bernie Solomon <bernard@ugsolutions.com>
8548 * marshal.c (mono_marshal_type_size) struct alignment changed for
8549 64bit machines. (emit_ptr_to_str_conv) Fix bool conversions for
8550 64bits. Avoid leak in mono_marshal_get_native_wrapper when
8551 mono_lookup_pinvoke_call throws.
8553 2003-09-30 Zoltan Varga <vargaz@freemail.hu>
8555 * reflection.c (mono_reflection_parse_type): Fix #49114.
8557 * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
8558 temporary workaround for cygwin header problem.
8560 * object.c (mono_object_isinst): Synchronize this with the code
8561 generated by the JIT for casts.
8563 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
8565 * reflection.c (encode_type): Fix #38332.
8567 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
8569 * marshal.c (mono_marshal_method_from_wrapper): New function to return
8570 the original method from the wrapper method.
8572 2003-09-25 Martin Baulig <martin@ximian.com>
8574 * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
8575 interncall since it was identical to `Type.GetGenericTypeDefinition()'.
8576 (ves_icall_Type_get_IsGenericInstance): New interncall.
8578 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
8580 * object.c: fix cast warning in big endian code.
8582 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
8584 * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
8586 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8588 * assembly.c: don't call check_env from mono_assembly_load. It's
8589 already done once in mono_assemblies_init and may cause headaches when
8590 multiple threads are loading assemblies.
8592 2003-09-19 Martin Baulig <martin@ximian.com>
8594 * reflection.c (mono_reflection_define_generic_parameter): Don't
8595 allocate `klass->methods', set `klass->flags' to
8596 TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
8598 2003-09-18 Martin Baulig <martin@ximian.com>
8600 * class.c (mono_class_init): Don't create `class->methods' if it's
8601 already initialized.
8603 * metadata.c (mono_metadata_load_generic_params): Make this
8606 * reflection.c (mono_reflection_define_generic_parameter): Set
8607 parent class and interfaces from the constraints.
8609 * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
8610 to keep this struct in sync with the declaration in TypeBuilder.cs.
8612 2003-09-17 Martin Baulig <martin@ximian.com>
8614 * metadata.h (MonoType): Replaced the data's `int type_param'
8615 field with `MonoGenericParam *generic_param'.
8616 (MonoGenericParam): Added `MonoClass *klass'.
8618 * class.c (mono_class_from_gen_param): Removed the
8619 `MonoImage *image' and `int type_num' arguments.
8621 * metadata.c (mono_metadata_parse_generic_param): New static
8622 method; creates a MonoGenericParam which just contains the index.
8623 (do_mono_metadata_parse_type): Call
8624 mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
8627 * reflection.c (mono_image_typedef_or_ref): Generic type
8628 parameters may be in the same assembly, but never use a typedef
8630 (mono_reflection_define_generic_parameter): We're now creating a
8631 "real" class for the type parameter; it's now safe to call
8632 mono_class_from_mono_type() on the class'es type, it'll do the
8635 2003-09-16 Martin Baulig <martin@ximian.com>
8637 * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
8638 `symfile->range_entry_size' and `symfile->class_entry_size' here;
8639 the `symfile' data structure must be fully initialized before it
8640 gets added to the table.
8642 2003-09-15 Zoltan Varga <vargaz@freemail.hu>
8644 * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
8646 * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
8647 class init trampolines.
8649 2003-09-11 Zoltan Varga <vargaz@freemail.hu>
8651 * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
8652 to the built-in profiler to turn off time and allocation profiling
8655 2003-09-10 Zoltan Varga <vargaz@freemail.hu>
8657 * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
8660 * debug-helpers.c (mono_method_full_name): Print the wrapper type
8661 in human readable form.
8663 2003-09-08 Zoltan Varga <vargaz@freemail.hu>
8665 * reflection.c icall.c: Fixed warnings.
8667 * image.c (load_class_names): Use a temporary hash table to hold the
8668 namespaces in order to avoid doing many string comparisons.
8670 * image.h: Fix typo.
8672 * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
8673 Pass NULL instead of g_direct_equal to the GHashTable constructor
8674 since the NULL case is short-circuited inside g_hash_table_lookup,
8675 leading to better performance.
8677 * metadata.c (mono_metadata_custom_attrs_from_index): New function to
8678 obtain the first custom attribute for a given index. Depends on the
8679 CustomAttribute table being sorted by the parent field.
8681 * reflection.c (mono_custom_attrs_from_index): Use the new function
8682 for better performance.
8684 2003-09-07 Martin Baulig <martin@ximian.com>
8686 * class.c (mono_class_init): If we're a generic instance, inflate
8687 all our methods instead of loading them from the image.
8688 (mono_class_from_generic): Set `class->methods = gklass->methods'.
8690 2003-09-07 Martin Baulig <martin@ximian.com>
8692 * mono-debug-debugger.c: Added support for constructors.
8694 2003-09-06 Martin Baulig <martin@ximian.com>
8696 * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
8699 * reflection.c (mono_reflection_setup_generic_class): Call
8700 ensure_runtime_vtable() to create the vtable.
8702 2003-09-05 Martin Baulig <martin@ximian.com>
8704 * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
8707 2003-09-04 Martin Baulig <martin@ximian.com>
8709 * reflection.c (mono_reflection_define_generic_parameter): Generic
8710 parameters start with zero.
8712 2003-09-04 Martin Baulig <martin@ximian.com>
8714 * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8716 * reflection.h (MonoReflectionGenericParam): New typedef.
8717 (MonoReflectionTypeBuilder): Added `generic_params' fields to get
8718 the generic parameters from the managed TypeBuilder.
8720 * reflection.c (mono_reflection_define_generic_parameter): New function.
8721 (mono_reflection_create_runtime_class): Encode generic parameters.
8722 (mono_reflection_setup_generic_class): New function; this is
8723 called after adding adding all generic params to the TypeBuilder.
8724 (encode_type): Added MONO_TYPE_VAR.
8726 2003-09-04 Zoltan Varga <vargaz@freemail.hu>
8728 * class.h class.c (mono_class_needs_cctor_run): Moved this method
8731 * assembly.h assembly.c: Moved the AOT loading code into an assembly
8734 2003-09-03 Zoltan Varga <vargaz@freemail.hu>
8736 * reflection.h reflection.c class.h class.c: Delete duplicate
8737 definition of mono_type_get_name () from reflection.c and export the
8740 * class.c: Class loading fixes from Bernie Solomon
8741 (bernard@ugsolutions.com).
8743 * reflection.c: Endianness fixes from Bernie Solomon
8744 (bernard@ugsolutions.com).
8746 2003-09-01 Zoltan Varga <vargaz@freemail.hu>
8748 * assembly.h assembly.c: Define a file format version for AOT
8751 * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
8753 * appdomain.h (MonoJitInfo): New field to determine whenever the
8754 code is domain neutral.
8756 2003-08-31 Miguel de Icaza <miguel@ximian.com>
8758 * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
8760 2003-08-30 Zoltan Varga <vargaz@freemail.hu>
8762 * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir):
8763 (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
8764 Avoid caching the result since strings must be domain specific. Fixes
8767 2003-08-29 Zoltan Varga <vargaz@freemail.hu>
8769 * marshal.c (mono_marshal_init): Make this callable multiple times
8770 since it is hard to find a correct place to call it.
8772 * object.c (mono_runtime_class_init): Execute static constructors in
8773 the correct appdomain.
8775 * image.c (build_guid_table): Handle the case when multiple images have
8778 2003-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8780 * icall.c: added a couple of icalls for System.Web.
8782 2003-08-28 Martin Baulig <martin@ximian.com>
8784 * icall.c (ves_icall_Type_BindGenericParameters): Use
8785 `klass->generic_inst' instead of `&klass->byval_arg' in the
8786 mono_type_get_object() call. The returned type must be
8787 MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
8789 2003-08-27 Zoltan Varga <vargaz@freemail.hu>
8793 * object.c (mono_class_proxy_vtable): Make it thread safe.
8795 * pedump.c: Fix warning.
8797 * object.c appdomain.h: Get rid of metadata_section.
8798 It is no longer needed and it was causing deadlocks with domain->lock.
8800 * appdomain.c (add_assemblies_to_domain): Make it thread safe.
8802 2003-08-26 Martin Baulig <martin@ximian.com>
8804 * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
8806 2003-08-26 Martin Baulig <martin@ximian.com>
8808 * pedump.c (main): Call mono_metadata_init(),
8809 mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
8810 and mono_loader_init().
8812 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
8814 * loader.h: Add missing include to fix build.
8816 * image.h: mono_image_load_references is no more.
8818 * assembly.c: Reworked assembly loading to make it really thread safe.
8819 After these changes, the assembly returned by mono_assembly_open is
8820 fully initialized, i.e. all its references assemblies are loaded.
8822 * assembly.c (mono_image_load_references): Renamed to
8823 mono_assembly_load_references, and made private, since clients no
8824 longer need to call it.
8826 * class.c: Removed calls to mono_assembly_load_references, since it was
8827 a source of deadlocks.
8829 * loader.h loader.c class.h class.c: Protect data structures using a
8830 new lock, the loader lock.
8832 * class.c (mono_class_setup_vtable): Create temporary hash tables and
8833 GPtrArrays only when needed.
8835 * class.c (mono_class_layout_fields): Ignore the dummy field inserted
8836 into empty structures by mcs. Fixes pinvoke7.cs.
8838 * domain.c (mono_init): Call a new initialization function.
8840 * appdomain.c (mono_runtime_init): Call the new initializer function
8841 of the marshal module.
8843 * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
8844 inserted into empty structures by mcs. Fixes pinvoke7.cs.
8846 * marshal.h marshal.c: Added locks around the wrapper caches to make
8847 this module thread safe.
8849 * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
8850 this argument. Fixes pinvoke1.exe.
8852 2003-08-25 Lluis Sanchez <lluis@ximian.com>
8854 * object.h: Added call_type field to MonoMethodMessage and the corresponding
8855 enumeration of values. Removed fields to store remote call output values in
8856 MonoAsyncResult. Not needed any more.
8857 * object.c: Initialize call_type and async_result fields in mono_message_init.
8858 * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
8859 dispatching the message.
8860 mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
8861 async call to finish. To do it use a message with EndInvoke call type.
8863 2003-08-25 Zoltan Varga <vargaz@freemail.hu>
8865 * loader.h loader.c (mono_method_hash_marhal_info): New function which
8866 determines whenever a method has marshalling info.
8868 2003-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8870 * assembly.c: fix the build on windows.
8872 2003-08-22 Lluis Sanchez <lluis@ximian.com>
8874 * object.cs: Fixed bug #47785.
8876 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
8878 * string-icalls.c (StringReplace): If their are no occurances of
8879 the old string found return a reference to the supplied
8880 string. This saves some memory and matches MS behavoir.
8882 2003-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8884 * socket-io.c: fixed compilation for systems that define AF_INET6
8885 and don't define SOL_IP/SOL_IPV6.
8887 2003-08-21 Zoltan Varga <vargaz@freemail.hu>
8889 * object.c (mono_object_isinst): Fix casts to TransparentProxy in
8890 the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
8892 * rawbuffer.c rawbuffer.h: Make this module thread safe.
8894 * domain.c: Make this module thread safe.
8896 * domain.c (mono_init): Call new initialization function.
8898 * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
8899 reference types too. Fixes #38812.
8901 * image.c (mono_image_init): Fixed warnings.
8903 * class.c (mono_class_from_typeref): Handle assembly load failure
8906 * appdomain.c (add_assemblies_to_domain): Handle the case when
8907 the references of an assembly are not yet loaded.
8909 * metadata.c image.c assembly.c: Moved initialization of global
8910 variables to a separate function called at startup since lazy
8911 initialization of these variables is not thread safe.
8913 * image.c assembly.c: Made this module thread safe by adding locks in
8914 the appropriate places.
8916 * domain.c (mono_init): Call the new initialization functions of the
8919 2003-08-20 Lluis Sanchez Gual <lluis@ximian.com>
8921 * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
8922 make a direct call. It is proxy's work to make the call asynchronous.
8923 mono_delegate_end_invoke(): If the targe is a proxy, just collect
8925 * object.cs: mono_method_call_message_new(): read AsyncResult and
8926 state object from parameters list, if this info is requested.
8927 * object.h: Added fields to store remote call output values in
8928 MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
8930 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
8932 * object.h: add needed fields to MonoThread.
8933 * threads.c, threads.h: allow registering a function to cleanup data
8934 allocated per thread by the JIT.
8936 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
8938 * loader.h: portability fix by Bernie Solomon
8939 * <bernard@ugsolutions.com>.
8941 2003-08-16 Zoltan Varga <vargaz@freemail.hu>
8943 * reflection.h reflection.c (mono_param_get_objects): Changed this to
8944 return a MonoArray. This simplifies the code and also ensures that
8945 the cache allways contains an object reference as a value.
8947 * icall.c (ves_icall_get_parameter_info): Simplified using the new
8950 2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8952 * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
8953 fixes a problem with byte ordering when getting the address family for
8956 2003-08-15 Zoltan Varga <vargaz@freemail.hu>
8958 * .cvsignore: Added monosn.
8960 * reflection.h reflection.c loader.c: Added support for parameter
8961 marshalling to dynamically created types. Fixes #47295.
8963 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
8965 * rand.c: remove useless warnings.
8967 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
8969 * class.c: implemented ldtoken for methods and fieldrefs.
8971 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8973 * threadpool.c: when mono_async_invoke was called, no one took care of
8974 monitoring the queue. So if the method invoked took some time and we
8975 got new async invoke requests after 500 ms (the thread created waited
8976 that long in WaitForSingleObject), the new async invoke was not called
8977 until the previous one finished.
8979 This is fixed now. Thanks to Totte for helping with it.
8981 2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8983 * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
8985 2003-08-11 Martin Baulig <martin@ximian.com>
8987 * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
8989 2003-08-06 Martin Baulig <martin@ximian.com>
8991 * mono-debug-debugger.c: Added support for static fields,
8992 properties and methods.
8994 2003-08-06 Martin Baulig <martin@ximian.com>
8996 * mono-debug-debugger.c: Don't store the MonoString's vtable to
8997 make this work for applications with multiple application domains.
8999 2003-08-04 Martin Baulig <martin@ximian.com>
9001 * mono-debug-debugger.c: Completely reworked the type support; the
9002 most important thing is that we're now just using one single
9003 `MonoType' instance per type.
9005 Sat Aug 2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
9007 * mono-endian.h, mono-endian.c, icall.c: Added icall
9008 ves_icall_System_Double_AssertEndianity to assert double word endianity
9009 on ARM (FPA). The icall uses a macro defined in mono-endian.h.
9011 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9013 * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
9014 support, icalls and fixes.
9016 2003-07-31 Miguel de Icaza <miguel@ximian.com>
9018 * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
9019 classes that are a punctuation character in .NET is not the same a
9022 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9024 * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
9026 2003-07-29 Miguel de Icaza <miguel@ximian.com>
9028 * icall.c: Add new MemCopy internalcall.
9029 (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
9030 Simplified code; It is not necessary to handle all the cases here,
9031 as the C# code takes care of it. Only handle the case of the name
9032 resource embedded into the assembly.
9034 Changed signature to return the data pointer and the size of the
9037 2003-07-26 Miguel de Icaza <miguel@ximian.com>
9039 * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
9040 encoded. (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
9042 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
9044 * socket-io.c: ignore EINTR error in select.
9046 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
9048 * class.h, class.c: removed unused subclasses field in MonoClass.
9050 2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
9052 * icall.c: improve fix of get_base_definition(). If the parent class
9053 doesn't have the mehod, look at the parent of the parent.
9054 * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
9055 to check if a parameter is an in or out parameter
9056 (PARAM_ATTRIBUTE_IN is not set by default).
9057 mono_method_return_message_restore(): Use mono_class_value_size to
9058 get the size of a value type. mono_type_stack_size (parameterType)
9059 does not return the correct value if parameterType is byRef.
9060 mono_load_remote_field(), mono_load_remote_field_new(),
9061 mono_store_remote_field(), mono_store_remote_field_new():
9062 raise exception if the remote call returns an exception.
9064 2003-07-28 Martin Baulig <martin@ximian.com>
9066 * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
9067 method. This is a wrapper around mono_runtime_invoke() which
9068 boxes the instance object if neccessary.
9070 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9072 * class.c, class.h, image.c, image.h, loader.c, metadata.c,
9073 metadata.h, row-indexes.h, verify.c: first cut of generics support.
9075 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9077 * icall.c: disable mcs bug workaround.
9079 2003-07-21 Miguel de Icaza <miguel@ximian.com>
9081 * object.c (mono_runtime_class_init): Take the metadata_section
9082 mutex before obtaining the domain mutex.
9084 * appdomain.h: Added definition of metadata_section mutex here.
9086 * object.c: define metadata_mutex here.
9088 2003-07-24 Ravi Pratap <ravi@ximian.com>
9090 * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
9093 2003-07-24 Lluis Sanchez Gual <lluis@ximian.com>
9095 * reflection.c: Fix bug #46669
9097 2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9102 * object.h: fill in the type name for TypeLoadException.
9104 2003-07-23 Ravi Pratap <ravi@ximian.com>
9106 * class.c: Fixes from Paolo in response to bug #45415 (Subclass
9107 relationship between TypeBuilders while compiling corlib) and bug
9108 45993 (Array types returned from the runtime while compiling
9109 corlib were from the loaded corlib).
9111 2003-07-22 Martin Baulig <martin@ximian.com>
9113 * mono-debug-debugger.c: Reworked the type support a bit more;
9114 distinguish between types and classes.
9116 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
9118 * icall.c: add IsArrayImpl icall.
9120 2003-07-22 Zoltan Varga <vargaz@freemail.hu>
9122 * class.c (mono_class_layout_fields): Fix gc aware auto layout by
9123 initializing real_size only once. Also fix bug #46602.
9125 2003-07-21 Jerome Laban <jlaban@wanadoo.fr>
9127 * object.c: Renamed mono_metadata_section to metadata_section.
9129 2003-07-21 Lluis Sanchez Gual <lluis@ximian.com>
9131 * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
9132 empty array if the type is an array. Fixed.
9133 ves_icall_MonoMethod_get_base_definition: if the base method
9134 is abstract, get the MethodInfo from the list of methods of
9136 * reflection.c: ParameterInfo.PositionImpl should be zero-based
9137 and it was 1-based. Fixed in mono_param_get_objects.
9139 2003-07-20 Martin Baulig <martin@ximian.com>
9141 * mono-debug.h: Set version number to 31.
9142 (mono_debug_init): Added `MonoDomain *' argument.
9144 * mono-debug-debugger.c: Reworked the type support; explicitly
9145 tell the debugger about builtin types; pass the `klass' address to
9148 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
9150 * image.c: Allow new metadata tables to be loaded without a
9151 warning. Also update the warning message to give the new constant value.
9153 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
9155 * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
9156 metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c:
9157 array type representation changes.
9159 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9161 * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
9162 on Environment.Exit () call.
9164 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9166 * icall.c, reflection.h, reflection.c, verify.c: cleanups,
9167 requires a matching corlib.
9169 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
9171 * Changelog: My editor decided to add a CR to each line. Sorry about that.
9172 Committed again without the CRs.
9174 2003-07-17 Lluis Sanchez Gual <lluis@ximian.com>
9176 * socket-io.c: Get system_assembly using mono_image_loaded(), instead
9177 getting it from the "this" socket instance. Did not work
9178 if the socket is a subclass of Socket.
9179 Also fixed bug #35371.
9181 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9183 * metadata.c: fixed size for TypedByRef.
9184 * loader.c: when searching for a method, consider the vararg amrker.
9185 * unicode.c, decimal.c: constify some arrays.
9187 2003-07-15 Dick Porter <dick@ximian.com>
9189 * socket-io.c: Fixed compilation for gcc < 3.2.
9191 Fixed compilation for machines that don't have AF_INET6 (thanks to
9192 Bernie Solomon <bernard@ugsolutions.com> for that part.)
9194 Fixed compile warnings.
9196 Fixed formatting and line endings.
9198 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
9201 * socket-io.c: Added IPv6 support.
9203 2003-07-13 Zoltan Varga <vargaz@freemail.hu>
9205 * class.c (mono_class_is_assignable_from): New function to implement
9206 the is_assignable_from logic. Used by mono_object_isinst,
9207 Type::IsAssignableFrom () and the interpreter.
9209 * class.c (mono_class_is_subclass_of): Make all classes a subclass of
9210 Object, even interfaces.
9212 * object.c (mono_object_isinst): Implement in terms of
9215 * icall.c (ves_icall_type_is_assignable_from): New icall.
9217 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
9219 * domain.c (foreach_domain): fix compiler warning.
9221 2003-07-11 Dietmar Maurer <dietmar@ximian.com>
9223 * image.c (load_metadata_ptrs): use g_strndup because strndup is
9224 not available on all plattforms
9226 2003-07-10 Zoltan Varga <vargaz@freemail.hu>
9228 * image.h image.c: Store the metadata version string in MonoImage.
9229 * icall.c: New icall to retrieve the image version.
9230 * reflection.c (create_dynamic_image): Fill in the image version field
9231 * reflection.c (build_compressed_metadata): Use the image version
9232 from the image structure.
9234 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9236 * appdomain.c: modified comment.
9237 * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
9238 That will be its last iteration when mono_gc_cleanup is called from
9239 mono_runtime_cleanup and before the domain is unloaded.
9243 2003-07-04 Dietmar Maurer <dietmar@ximian.com>
9245 * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
9248 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9250 * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
9251 rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
9252 Bernie Solomon <bernard@ugsolutions.com>.
9254 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9256 * object.c, object.h: provide mono_object_new_fast() for faster
9257 allocation in some special cases.
9259 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
9261 * object.h, reflection.h, verify.c: fixes for some 64bit issues,
9262 mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
9264 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
9266 * threadpool.c: fix leaks.
9268 2003-07-01 Dick Porter <dick@ximian.com>
9270 * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
9271 using MonoGHashTables. Fixes threadpool bug posted to list.
9273 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
9275 * image.h, image.c: added support to load an assembly from a byte array.
9276 * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added
9277 assembly bundle support.
9279 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
9281 * threadpool.c (mono_thread_pool_add): keep a reference to the
9282 AsyncResult to prevent GC
9284 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
9286 * class.c: leak fix.
9288 2003-06-25 Dick Porter <dick@ximian.com>
9290 * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
9291 for the async object, the WaitHandle object will close the handle.
9294 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9296 * class.c: in mono_array_class_get (), lookup from the hash with the
9297 same type we insert: this works around a bug in
9298 mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
9299 lluis. The real fix will have to wait for after the release.
9301 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9303 * icall.c: fix memory leak when getting type members.
9305 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9307 * reflection.c: added more pubtoken special cases.
9309 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
9311 * class.c: handle field offset correctly when class size
9312 is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
9314 2003-06-20 Martin Baulig <martin@ximian.com>
9316 * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
9319 2003-06-20 Martin Baulig <martin@ximian.com>
9321 * image.h, mono-debug-debugger.h: Fixed compiler warnings.
9323 2003-06-20 Martin Baulig <martin@ximian.com>
9325 * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed. We
9326 just distinguish between variables in registers and variables at
9327 an offset relative to a register.
9329 2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9331 * icall.c: #ifdef out latest changes until mcs is fixed.
9333 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9335 * icall.c: return members in metadata order.
9337 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9339 * icall.c: avoid infinite loop in GetTimeZoneData.
9341 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
9343 * icall.c: added Marshal.Prelink/All icalls.
9345 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9347 * object.c, object.h: fix warnings and do some overflow checking
9348 when creating arrays.
9350 2003-06-17 Dick Porter <dick@ximian.com>
9353 * file-io.c: File attributes need to be tweaked slightly when
9354 passed from the managed to the w32 world.
9356 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
9357 * profiler.h profiler-private.h profiler.c: Rework last patch
9358 based on suggestion by Paolo.
9360 2003-06-17 Zoltan Varga <vargaz@freemail.hu>
9362 * profiler.h profiler-private.h profiler.c: Added infrastructure for
9363 instruction level coverage data collection.
9364 * profiler.h profiler.c (: Added new callback function which can be
9365 used by the profiler to limit which functions should have coverage
9367 * profiler.c (mono_profiler_load): Call g_module_build_path to
9368 generate the file name of the profiler library.
9370 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9372 * profiler.c, profiler.h, profiler-private.h: added basic block
9373 coverage profiling API.
9375 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
9377 * reflection.c (mono_reflection_create_runtime_class): Add support
9378 for events in dynamically generated code.
9380 * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
9383 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9385 * icall.c: when getting timezone info, return reasonable values if we
9386 can't get the actual data.
9388 2003-06-14 Dick Porter <dick@ximian.com>
9390 * threads.c (start_wrapper): Remove the reference to the thread
9391 object in the TLS data, so the thread object can be finalized.
9392 This won't be reached if the thread threw an uncaught exception,
9393 so those thread handles will stay referenced :-( (This is due to
9394 missing support for scanning thread-specific data in the Boehm GC
9395 - the io-layer keeps a GC-visible hash of pointers to TLS data.)
9397 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
9399 * reflection.c: ensure streams and tables are first allocated with
9400 ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
9402 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9404 * icall.c: fixed GetElementType for byrefs (bug# 44792).
9406 2003-06-13 Zoltan Varga <vargaz@freemail.hu>
9408 * reflection.c (mono_reflection_create_runtime_class): Add support for
9409 properties to dynamically created classes.
9410 * reflection.c: Fix a few places where non-MonoObjects were inserted
9411 into the tokens hashtable.
9413 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9415 * object.c: some support to handle out of memory exceptions.
9417 2003-06-12 Dietmar Maurer <dietmar@ximian.com>
9419 * marshal.c (mono_marshal_get_native_wrapper): support reference
9422 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9424 * object.h, object.c: more portability stuff from Bernie Solomon.
9425 Unexport mono_object_allocate(). Added mono_object_unbox ().
9426 Set exitcode when an unhandled exception is thrown.
9428 2003-06-11 Dietmar Maurer <dietmar@ximian.com>
9430 * marshal.c (mono_marshal_get_native_wrapper): use custom
9431 marshaler for return types.
9433 2003-06-10 Dick Porter <dick@ximian.com>
9435 * socket-io.c: Don't assume that one of struct ip_mreqn or struct
9436 ip_mreq is available
9438 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
9440 * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
9441 mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
9442 by Bernie Solomon <bernard@ugsolutions.com>.
9444 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
9446 * gc.c (mono_gc_init): Avoid error message on shutdown when
9447 GC_DONT_GC=1 is used.
9449 * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal):
9450 New icall to return the GUID of a module.
9452 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9454 * class.c: ensure instance size always includes the parent's size
9455 even whem class size is set explicitly (fixes bug#44294).
9457 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9459 * profiler.h, profiler.c: made the simple profiler thread-safe,
9460 get more accurate timing info. Allow the loading of an
9461 externally-developed profiler module.
9463 2003-06-05 Dietmar Maurer <dietmar@ximian.com>
9465 * marshal.c (mono_marshal_get_native_wrapper): improved
9466 class/byref arguments.
9467 (mono_marshal_get_native_wrapper): better string marshaling support.
9469 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
9471 * class.c: ensure .pack and .size are handled correctly and
9472 simplified layout of static fields.
9474 2003-06-04 Dietmar Maurer <dietmar@ximian.com>
9477 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
9479 * loader.c (mono_lookup_pinvoke_call): look for modules in the
9480 current directory (fix bug 44008)
9482 2003-06-03 Dietmar Maurer <dietmar@ximian.com>
9484 * marshal.c (mono_marshal_get_native_wrapper): started support for
9486 (mono_delegate_to_ftnptr): consider marshalling specifications
9488 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
9490 * reflection.c, reflection.h: emit custom marshal info.
9492 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9494 * object.c: free the GError.
9495 * icall.c: added CloseEvent_internal.
9497 (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
9500 2003-06-01 Zoltan Varga <vargaz@freemail.hu>
9502 * loader.c (mono_method_get_signature): Add support for dynamic
9505 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
9507 * reflection.c: fixed bug #43905.
9509 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9511 * class.c, domain.c, icall.c, metadata.h, object.h: support for
9512 handling TypedReference and ArgIterator.
9513 * loader.c, loader.h: added function to get signature at call site.
9515 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9517 * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more
9518 data readonly. Buglets and warning fixes. Some MethodSpec support.
9520 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9522 * class.h, class.c, object.c: remove relative numbering support.
9524 2003-05-26 Miguel de Icaza <miguel@ximian.com>
9526 * marshal.c (mono_marshal_get_native_wrapper): For now, do not
9527 free the string, until we get a chance to fix Gtk#
9529 2003-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9531 * marshal.c: revert last patch.
9533 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
9535 * icall.c: updates for new mono_class_vtable() not calling
9536 the type constructor anymore.
9538 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
9540 * object.h, object.c: separate vtable creation from type
9541 initialization. Make running the .cctor thread safe.
9543 2003-05-26 Dietmar Maurer <dietmar@ximian.com>
9545 * marshal.c (mono_marshal_get_native_wrapper): free string return values.
9547 2003-05-21 Dietmar Maurer <dietmar@ximian.com>
9549 * loader.c (mono_get_method): consider calling convention
9551 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
9553 * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
9554 to return the invisible global type for a module.
9556 * reflection.c (mono_image_build_metadata): Emit global fields too.
9558 2003-05-20 Peter Williams <peterw@ximian.com>
9560 * loader.c (mono_lookup_internal_call): Add a few newlines.
9562 2003-05-20 Zoltan Varga <vargaz@freemail.hu>
9564 * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
9567 * appdomain.c (set_domain_search_path): Recalculate search path when
9568 AppDomainSetup.PrivateBinPath changes.
9570 * object.c (mono_class_compute_gc_descriptor): It turns out some
9571 parts of the class libs (like System.Thread) holds pointers to
9572 GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
9573 to treat native int a pointer type here.
9575 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
9577 * appdomain.h, domain.c: add hashtable for jump target resolution.
9579 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
9581 * reflection.h reflection.c icall.c: Added new icalls
9582 GetManifestResourceInfoInternal, GetModulesInternal and support
9585 2003-05-16 Dick Porter <dick@ximian.com>
9589 * file-io.c: Implement System.IO.MonoIO::GetTempPath
9591 2003-05-14 Lluis Sanchez Gual <lluis@ideary.com>
9593 * object.c: mono_store_remote_field: little fix to previous patch.
9595 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9597 * class.c: add constructors to array classes.
9598 * icall.c: special case array construction for InternalInvoke (),
9600 2003-05-14 Zoltan Varga <vargaz@freemail.hu>
9602 * class.h class.c reflection.c object.c: Added support for field
9603 defaults in dynamically generated classes.
9605 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
9607 * reflection.c: properly encode charset for ddlimport.
9609 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
9611 * threads.c: allow compiling without GC.
9613 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9615 * appdomain.h, object.c, object.h, threads.c, threads.h: added
9616 handling of thread static data.
9618 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9620 * reflection.h, reflection.c: added mono_custom_attrs_free ().
9622 2003-05-13 Dietmar Maurer <dietmar@ximian.com>
9624 * class.c (mono_array_class_get): always set the serializable flags
9625 (mono_array_class_get): always set the SEALED attribute for array types
9627 2003-05-12 Dietmar Maurer <dietmar@ximian.com>
9629 * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
9630 attributes (fix for bug 42021).
9632 2003-05-12 Dick Porter <dick@ximian.com>
9634 * gc.c: Don't run finalizers when the finalizer thread is
9635 finishing up, because the default domain has already been
9638 2003-05-11 Miguel de Icaza <miguel@ximian.com>
9640 * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
9641 value is null, we should throw an exception. This is slightly
9642 different than the other conventions used for the constructor.
9644 2003-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9646 * socket-io.c: fixed windows build.
9648 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9650 * socket-io.c: patch by Jerome Laban that fixes bug #42393.
9652 2003-05-10 Zoltan Varga <vargaz@freemail.hu>
9654 * object.c (mono_string_new_wrapper): Compatibility fix for MS
9657 2003-05-09 Zoltan Varga <vargaz@freemail.hu>
9659 * class.c (mono_class_layout_fields): Add experimental GC aware
9660 auto layout facility. Requires class library changes to work correctly.
9662 (mono_class_setup_vtable): Avoid overriding explicit interface
9663 method implementations. Fixes iface3.exe test.
9665 * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
9667 (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
9668 (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
9670 * metadata.h: Add new type classification macro which determines
9671 whenever the type holds an object reference.
9673 2003-05-08 Dietmar Maurer <dietmar@ximian.com>
9675 * marshal.c (mono_marshal_get_native_wrapper): cleanups
9677 2003-05-07 Zoltan Varga <vargaz@freemail.hu>
9679 * gc.c (finalizer_thread): Work around a GC bug.
9681 2003-05-07 Dietmar Maurer <dietmar@ximian.com>
9683 * marshal.c (emit_struct_conv): allow unions
9685 * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
9687 2003-05-06 Dietmar Maurer <dietmar@ximian.com>
9689 * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
9691 2003-05-06 Martin Baulig <martin@ximian.com>
9693 * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
9695 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9698 (Select_internal): allow NULLs, don't create arrays if not needed.
9699 Coupled with Socket.cs changes.
9702 (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
9703 register a finalizer for it that will close the semaphore handle. This
9704 fixes the leak and make Lupus' test run with > 4080 loops.
9706 2003-05-05 Dietmar Maurer <dietmar@ximian.com>
9708 * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
9709 Jerome Laban (bug #42287)
9711 2003-05-02 Martin Baulig <martin@ximian.com>
9713 * debug-mono-symfile.h
9714 (MonoSymbolFile): Moved declaration into mono-debug.h.
9715 (MonoDebugMethodJitInfo): Likewise.
9716 (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
9718 (_mono_debug_address_from_il_offset): Take a
9719 MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
9722 (MonoDebugDomainData): New struct.
9723 (mono_debug_get_domain_data): New function.
9724 (mono_debug_add_method): Take an additional `MonoDomain *'
9726 (mono_debug_source_location_from_address): Likewise.
9727 (mono_debug_il_offset_from_address): Likewise.
9728 (mono_debug_address_from_il_offset): Likewise.
9730 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
9732 * reflection.c: one more check for null type in custom attrs.
9734 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9736 * reflection.c: avoid warning (comparison is always false due to limited
9737 range of data type).
9739 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9741 * icall.c: throw an exception in Type.GetField if the argument 'name'
9744 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
9746 * reflection.c: fixed handling of enums in named arguments to custom
9747 attributes (bug #42123).
9749 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
9751 * reflection.c: use the right array element type and handle
9752 a null for a Type argument, too.
9754 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
9756 * reflection.c: handle arrays as arguments to custom attributes.
9758 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
9760 * reflection.c: handle a string value in a custom attr
9761 ctor that takes an object.
9763 2003-04-29 Dietmar Maurer <dietmar@ximian.com>
9765 * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
9768 2003-04-28 Zoltan Varga <vargaz@freemail.hu>
9770 * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
9772 2003-04-27 Martin Baulig <martin@ximian.com>
9774 * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
9775 MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
9776 MONO_DEBUGGER_EVENT_BREAKPOINT.
9777 (mono_breakpoint_trampoline_code): Removed.
9778 (mono_debugger_event_handler): The last argument is now a
9780 (mono_debugger_insert_breakpoint_full): Removed the
9781 `use_trampoline' argument.
9782 (mono_debugger_method_has_breakpoint): Likewise.
9783 (mono_debugger_trampoline_breakpoint_callback): Renamed to
9784 mono_debugger_breakpoint_callback(); take the method and
9785 breakpoint number as arguments.
9787 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
9789 * metadata.c: fix off by one when loading parameters attributes.
9791 2003-04-24 Martin Baulig <martin@ximian.com>
9793 * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
9795 2003-04-24 Martin Baulig <martin@ximian.com>
9797 * mono-debug-debugger.c: Moved all code which interacts with the
9800 * debug-mono-symfile.c: This code now just deals with the symbol
9801 file itself, the debugger code is now in mono-debug-debugger.c.
9803 2003-04-23 Martin Baulig <martin@ximian.com>
9805 * mono-debug.c (mono_debug_source_location_from_il_offset):
9806 New method; like mono_debug_source_location_from_address(), but
9807 takes an IL offset instead of a machine address.
9809 2003-04-23 Martin Baulig <martin@ximian.com>
9811 * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
9812 `line' field; this is now computed by the debugger.
9814 2003-04-23 Martin Baulig <martin@ximian.com>
9816 * mono-debug.[ch]: New files. This is the new debugging interface.
9818 * mono-debug-debugger.[ch]: New files. Moved all code which
9819 interacts with the Mono Debugger here.
9821 2003-04-22 Dietmar Maurer <dietmar@ximian.com>
9823 * domain.c (mono_init): initialize mono_defaults.monitor_class
9825 2003-04-21 Miguel de Icaza <miguel@ximian.com>
9827 * reflection.c (method_encode_code): Add a spicy exception to help
9828 future compiler authors.
9830 2003-04-21 Martin Baulig <martin@ximian.com>
9833 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9834 Make this work with relative pathnames; g_filename_to_uri() needs
9835 an absolute filename.
9837 2003-04-18 Zoltan Varga <vargaz@freemail.hu>
9839 * icall.c: Track name changes in Object and ValueType.
9841 2003-04-18 Dietmar Maurer <dietmar@ximian.com>
9843 * metadata.c (mono_type_stack_size): size should be a multiple of
9846 2003-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9849 (internal_domain_finalize): moved into mono_domain_finalize. No need
9850 to create another thread because the finalizers will be run in the
9853 (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
9854 (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
9855 to be run (MS does this too).
9857 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
9859 * object.c (mono_class_compute_gc_descriptor): Update comment.
9861 * loader.h marshal.h marshal.c: Added synchronized method wrappers.
9863 * image.h: Add synchronized wrapper cache.
9865 * image.c (do_mono_image_open): Initialize cache.
9867 * reflection.c (create_dynamic_mono_image): Initialize cache.
9869 2003-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9871 * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
9872 ves_icall_System_Buffer_ByteLengthInternal.
9874 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9876 * reflection.c: setup klass->nested_in earlier. Allow
9877 a dash in the assembly name.
9879 2003-04-15 Dietmar Maurer <dietmar@ximian.com>
9881 * metadata.c (mono_type_to_unmanaged): dont access
9882 type->data.klass for MONO_TYPE_OBJECT
9883 (mono_type_to_unmanaged): consider System.Delegate class
9885 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
9887 * class.c: just setup supertypes in the proper place instead of
9888 initializing the full element class for arrays.
9890 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
9892 * class.c: ensure the element class of arrays is initialized.
9893 Setup the supertype info for array classes, too.
9895 2003-04-14 Miguel de Icaza <miguel@ximian.com>
9897 * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
9899 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9901 * Makefile.am: re-added -m option when running cygpath. This way,
9902 MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
9904 * mono-config.c: same codepath for locating mono config file for WIN32
9906 * assembly.c: if mono_assembly_setrootdir is called, don't override
9909 2003-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9911 * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
9912 MONO_ASSEMBLIES variable.
9914 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
9916 * icall.c: added Assembly::GetNamespaces() icall.
9918 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9920 * reflection.c: fix from Jaak <jaak@zd.com.pl>.
9922 2003-04-10 Lluis Sanchez Gual <lluis@ideary.com>
9924 * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
9925 * object.c: fixed bug in the construction of vtable for proxies
9927 2003-04-10 Zoltan Varga <vargaz@freemail.hu>
9929 * object.c (mono_array_new): Mark mono_array_new as an icall.
9931 2003-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9933 * class.c: fixed test for public method when overriding interfaces.
9936 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9938 * appdomain.h, domain.c: added mono_domain_foreach() to
9939 be able to access the currently loaded appdomains.
9940 * object.c: make string interning work across sppdomains.
9941 Mark some functions for use as icalls.
9943 2003-04-09 Zoltan Varga <vargaz@freemail.hu>
9945 * class.c reflection.c: Fix memory leaks reported by ccmalloc.
9947 * reflection.h reflection.c: Allocate long living data using
9948 GC_MALLOC_ATOMIC so the collector does not need to scan it.
9950 * reflection.c: Double the allocation size in streams instead of
9951 increasing it, to prevent unneccesary copying on large assemblies.
9953 * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
9954 creation if the assembly does not have the Run flag set.
9956 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
9958 * class.h: avoid the C++ keywords in header files (Jerome Laban
9959 spotted and fixed this).
9961 2003-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9964 (mono_unhandled_exception): fill in the arguments for the
9965 UnhandledException event. Only trigger that event for the default
9966 domain (as MS does).
9968 2003-04-04 Zoltan Varga <vargaz@freemail.hu>
9970 * object.c: Improve typed allocation stuff based on suggestions from
9971 Paolo. Also turn it on if the GC library supports it.
9973 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
9975 * object.c object.h class.h: Added experimental typed allocation
9976 facility using the interfaces in gc_gcj.h.
9978 * os/gc_wrapper.h: Added new include files.
9980 2003-04-03 Martin Baulig <martin@ximian.com>
9982 All the following changes are conditional to `WITH_INCLUDED_LIBGC'
9983 which is not yet enabled by default.
9985 * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
9987 (mono_gc_lock, mono_gc_unlock): New static functions.
9989 * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
9990 functions; stop/start the world for the garbage collector. This
9991 is using the windows API; we need to complete the SuspendThread()/
9992 ResumeThread() implementation in the io-layer to make this work on Unix.
9993 (mono_gc_push_all_stacks): New public function; tells the garbage
9994 collector about the stack pointers from all managed threads.
9996 2003-04-03 Martin Baulig <martin@ximian.com>
9998 * object.h (MonoThread): Added `gpointer stack_ptr'.
10000 * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
10002 2003-04-03 Martin Baulig <martin@ximian.com>
10004 * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
10006 2003-04-03 Zoltan Varga <vargaz@freemail.hu>
10008 * reflection.c (typebuilder_setup_fields): Initialize field.first and
10011 2003-04-02 Miguel de Icaza <miguel@ximian.com>
10013 * loader.c (mono_lookup_internal_call): Report the corlib that is
10016 2003-03-05 Aleksey Demakov <avd@openlinksw.com>
10018 * icall.c (ves_icall_type_GetTypeCode): fixed check for
10019 System.DBNull (it's class not valuetype).
10021 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
10023 * reflection.c: set table_idx in MonoReflectionArrayMethod object even
10024 if the array method was already assigned a token (fixes bug#40646).
10026 2003-04-02 Zoltan Varga <vargaz@freemail.hu>
10028 * reflection.c (mono_reflection_get_type): Attempt type resolve even
10029 if no assembly is given.
10031 2003-04-01 Miguel de Icaza <miguel@ximian.com>
10033 * metadata.h: Added the new tables.
10035 * row-indexes.h: Added definitions for new tables.
10037 * metadata.c: Add schemas for new tables, and add support for
10038 computing the sizes of them.
10040 * class.c: Update for handling the new type cases.
10042 2003-04-01 Dietmar Maurer <dietmar@ximian.com>
10044 * metadata.h (MONO_TYPE_IS_VOID): new macro
10046 2003-03-31 Martin Baulig <martin@ximian.com>
10048 * threads.h (MonoThreadCallbacks): Added `thread_created'.
10050 * threads.c (mono_thread_new_init): Call `thread_created' in the
10051 mono_thread_callbacks.
10053 2003-03-31 Lluis Sanchez Gual <lluis@ideary.com>
10055 * loader.h: added marshalbyrefobject_class to mono_defaults
10056 * domain.c: added initialization of mono_defaults.marshalbyrefobject_class
10057 * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
10058 generation of output parameters.
10059 ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
10060 * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
10061 contextbound and the target object belongs to the context of the caller.
10062 * object.h: added context and unwrapped_server variables in MonoRealProxy.
10063 * object.c: Implemented support for interfaces and abstract classes
10064 in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
10065 proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
10067 2003-03-30 Zoltan Varga <vargaz@freemail.hu>
10069 * class.h class.c (mono_class_is_subclass_of): New function.
10071 * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
10072 routines for most common case (calls from ArrayList::ToArray).
10074 * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown
10075 routine so programs which call Environment::Exit() can be profiled.
10077 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
10078 Added MONO_ARCH_SAVE_REGS.
10080 * icall.c (ves_icall_type_is_subtype_of): Use new function.
10082 2003-03-29 Miguel de Icaza <miguel@ximian.com>
10084 * blob.h: Add a couple of new MonoType types definitions.
10086 * tabledefs.h: Add a couple of new call convs.
10088 2003-03-27 Zoltan Varga <vargaz@freemail.h>
10090 * reflection.h (MonoReflectionDynamicAssembly): track changes in
10091 the layout of the class.
10093 * reflection.c (alloc_table): double the size on overflow to avoid
10094 unnecessary copying.
10096 * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
10097 avoid filling out metadata tables and blobs. Also set mb->ilgen to
10098 null so it can be garbage collected.
10100 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
10102 * reflection.c (mono_reflection_get_type): Return the resolved type
10103 only if it is in the assembly we searched.
10105 * reflection.c (ensure_runtime_vtable): Initialize method slots.
10107 * class.c (mono_class_setup_vtable): Set the slot of the overriding
10110 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10113 (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
10114 the right one is 'file:///blah', but MS allows it.
10116 (mono_assembly_open): allow 'file://blah'
10118 Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
10120 2003-03-26 Aleksey Demakov <avd@openlinksw.com>
10122 * socket-io.c: fixes bug #40310.
10124 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
10126 * reflection.c (mono_reflection_parse_type): handle deeply nested
10129 * reflection.c (mono_image_create_token): Use unique token values
10130 since they will be put into a hash table.
10132 * class.c (mono_class_setup_vtable): If a method occurs in more than
10133 one place in the vtable, and it gets overriden, then change the
10134 other occurances too.
10136 * marshal.c (mono_marshal_get_managed_wrapper): Added support for
10137 object as return type.
10139 2003-03-22 Pedro Mart?nez Juli? <yoros@wanadoo.es>
10141 * icall.c: Deleted "ToString" implementation for double and float
10142 because they are full implemented in managed code.
10144 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10146 * reflection.c, reflection.h: implemented and exported functions
10147 to retrieve info about custom attributes.
10149 2003-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10151 * appdomain.c: moved Uri handling to assembly.c
10152 * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
10153 work when using a file Uri in *nix and windows.
10155 * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
10156 GetReferencedAssemblies.
10158 2003-03-18 Dick Porter <dick@ximian.com>
10160 * icall.c: Rename a couple of internal calls
10162 * threads.c: Set the thread state to Stopped when a thread exits.
10165 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
10167 * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
10170 * object.c (mono_class_vtable): fix warning.
10172 2003-03-17 Zoltan Varga <vargaz@freemail.hu>
10174 * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
10176 * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
10178 (method_encode_clauses): Create exception info structures in the right
10180 (mono_reflection_setup_internal_class): Initialize supertypes field.
10182 * class.c object.c: Handle interfaces which implement other interfaces
10185 * class.h class.c: Move the supertypes array initialization code into
10186 a separate function so it can be used for dynamic types too. Also call
10187 it earlier, in mono_class_init(), since it can be used before the
10188 type is initialized.
10190 2003-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10194 * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
10199 * object.c: remove warnings.
10201 2003-03-13 Martin Baulig <martin@ximian.com>
10203 * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
10204 (MonoDebugLexicalBlockEntry): New types.
10206 * debug-mono-symfile.c
10207 (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
10209 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10211 * process.c: ret can be any non-zero value accroding to MS doc.
10213 2003-03-07 Miguel de Icaza <miguel@ximian.com>
10215 * class.c (mono_marshal_load_type_info): Fix buglet: Noticed when
10216 fixing a warning for a miss-used prototype, would have cause
10217 random memory corruption.
10219 2003-03-07 Martin Baulig <martin@ximian.com>
10221 * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
10222 getting really annoying ....
10224 2003-03-07 Zoltan Varga <vargaz@freemail.hu>
10226 * reflection.c (fixup_method): added support for array methods.
10228 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
10230 * socket-io.c: handle case when AF_INET6 and AF_IPX are not defined
10231 (pointed out by Michael Adams).
10233 2003-03-04 Dick Porter <dick@ximian.com>
10235 * icall.c: Temporarily reverted the Double and Single ToString()
10236 change, because it broke nunit.
10238 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
10240 * object.h, threads.h: make include files compatible with C++
10241 (patch by Jerome Laban <jlaban@wanadoo.fr>).
10243 2003-03-04 Pedro Mart?nez Juli? <yoros@wanadoo.es>
10245 * icall.c: Erased ToString helper functions for Double and Single.
10246 Now, that implementations ar all in managed code (Double and Single
10249 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
10251 * appdomain.c: Added method for initializing the default context of
10252 a domain. Added internal call for getting the default context.
10253 * appdomain.h: Added context variable in MonoDomain struct.
10254 * domain.c: mono_domain_set also sets the default context of the domain
10255 * icall.c: Mapped internal method InternalGetDefaultContext.
10256 * object.c: mono_object_get_virtual_method returns always a remoting
10257 wrapper if the object is a transparent proxy.
10258 mono_runtime_invoke_array: when creating an object by calling the
10259 constructor, if the created object is a proxy, then the constructor should
10260 be called using the a remoting wrapper.
10262 2003-03-03 Dick Porter <dick@ximian.com>
10264 * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
10265 variable so it compiles on solaris. Problem spotted by
10266 Christopher Taylor <ct@cs.clemson.edu>
10268 2003-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10271 (get_info_from_assembly_name): don't leak value.
10274 (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
10277 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
10279 * assembly.c: export mono_image_load_references ().
10280 * class.c: handle function pointers. mono_class_from_name() now
10281 supports nested type names directly.
10283 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
10285 * reflection.h reflection.c: Encode already created dynamic methods
10286 and fields correctly as a DEF instead of a REF.
10288 * reflection.c: Get rid of the force_ref argument to
10289 mono_image_typedef_or_ref since it was wrong in the first place.
10291 * string-icalls.c: add error checking to string constructors according
10294 * reflection.c: Emit types in the order their TypeBuilders were
10295 created. Previously, a new table index was assigned to each type before
10296 the tables were emitted. This was wrong because the signature blob
10297 might already refer to a type by its original table index.
10299 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
10301 * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
10304 2003-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10306 * Makefile.am: make assemblies dir have \ instead of / on windows.
10308 2003-02-27 Zoltan Varga <vargaz@freemail.hu>
10310 * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
10311 iterate over the NESTEDCLASS table using a linear search since the
10312 table is not guaranteed to be sorted by the secondary key.
10314 * class.c (mono_class_create_from_typedef): fixed up call to
10315 mono_metadata_nesting_typedef.
10317 2003-02-27 Dietmar Maurer <dietmar@ximian.com>
10319 * marshal.c (mono_string_to_byvalstr): clear the memory as
10320 suggested by Jerome Laban <jlaban@wanadoo.fr>
10322 2003-02-26 Dick Porter <dick@ximian.com>
10324 * process.c: Cope with padding in .rsrc blocks
10326 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
10328 * metadata.h: reverted the filter_len change, it breaks reflection
10330 2003-02-26 Dietmar Maurer <dietmar@ximian.com>
10332 * metadata.h: added a new field to store the filter_len
10335 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
10337 * reflection.c: handle custom attributes for types and members
10338 created with Reflection.Emit (bug#38422).
10340 2003-02-22 Zoltan Varga <vargaz@freemail.hu>
10342 * reflection.c: define RTSpecialName automatically for constructors for
10343 compatibility with MS.NET.
10345 * reflection.c (mono_reflection_create_runtime_class): initialize
10346 nested_in field of dynamically created classes.
10348 2003-02-22 Martin Baulig <martin@ximian.com>
10350 * debug-mono-symfile.h: Incremented version number.
10352 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
10354 * object.h icall.c process.c: fix warnings.
10356 2003-02-21 Zoltan Varga <vargaz@freemail.hu>
10358 * appdomain.h appdomain.c:
10359 (mono_domain_try_type_resolve): split the
10360 name_or_tb argument into a name and a tb argument.
10361 (mono_domain_has_type_resolve): new function to check whenever the
10362 application has registered a TypeResolve event handler.
10364 * icall.c reflection.h reflection.c: move the type resolve logic into
10365 mono_reflection_get_type () so it will be invoked when
10366 Assembly::GetType () is called.
10369 (mono_reflection_get_type): renamed to get_type_internal.
10370 (mono_reflection_get_type): fixed type name generation so it works
10371 for nested types too.
10372 (mono_reflection_get_type): call has_type_resolve () to avoid the
10373 costly type name generation if there is no resolve event handler.
10375 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10377 * class.c, image.c: load exported types from file references.
10379 2003-02-19 Lluis Sanchez Gual <lluis@ideary.com>
10381 * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
10382 used to cache the managed methods used to create proxies and make
10383 remote invocation of methods.
10384 * class.h: Added in MonoVTable a flag to indicate that a class needs
10385 to be remotely created.
10386 * object.c: Modified the method mono_class_vtable(). It now initializes
10387 the remote flag of the vtable. Modified mono_object_new_specific(),
10388 so now it checks the remote flag.
10389 * icall.c: Added a couple of internal methods, one for enabling instance
10390 creation interception for a type, and one for creating objects bypassing
10393 2003-02-18 Martin Baulig <martin@ximian.com>
10395 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
10396 New interncall to get a method's metadata token.
10398 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
10399 New interncall for the debugger.
10401 2003-02-18 Dietmar Maurer <dietmar@ximian.com>
10403 * class.c (mono_class_setup_vtable): allocate supertype array
10405 2003-02-18 Martin Baulig <martin@ximian.com>
10407 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
10409 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10412 (assembly_name_to_aname): jump over unknown properties (i've found
10413 something like: 'type, assembly, version=xxx, custom=null, public...',
10414 so now will ignore custom=null and still get the rest of the values).
10416 2003-02-17 Dick Porter <dick@ximian.com>
10418 * threads.c: Have Thread.Start() wait for a semaphore to signal
10419 that the thread has set up all its local data. This fixes bug
10420 34323, where Abort() raced the new thread's TLS data.
10422 Also removes the handle_store() call from start_wrapper, because
10423 threads are now always created suspended and there is no longer a
10424 race between the parent and child threads to store the info.
10426 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
10428 * image.c: explain the #- heap issue in a message, hopefully
10429 avoiding FAQs on mono-list.
10431 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10434 (GetEntryAssembly): if the domain has not invoked
10435 AppDomain.ExecuteAssembly yet, return the assembly of the default
10438 2003-02-16 Zoltan Varga <vargaz@freemail.hu>
10440 * class.c (mono_ldtoken): make it work in dynamic assemblies.
10442 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
10444 * metadata.c, reflection.c: simple speedup to type hash
10447 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
10449 * image.c, image.h, class.c, assembly.c: move module loading
10450 to MonoImage. When loading metadata, consider alignemnet from
10451 the start of metadata, not from the metadata address in memory.
10453 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
10455 * reflection.c (mono_reflection_get_custom_attrs): Added support for
10456 AssemblyBuilder objects. Factored out custom attribute creation into
10457 a separate function.
10458 (create_custom_attr): new function to create custom attributes.
10460 2003-02-12 Miguel de Icaza <miguel@ximian.com>
10462 * Makefile.am: Got tired of typing the full pathname to pedump.
10463 Until there is another option, am installing this.
10465 2003-02-12 Dietmar Maurer <dietmar@ximian.com>
10467 * class.c (class_compute_field_layout): always set field->parent
10468 (mono_ldtoken): use mono_defaults.fieldhandle_class;
10470 2003-02-11 Dick Porter <dick@ximian.com>
10473 * monitor.c: Rewrote Monitor, making lock much faster and
10474 Pulse/Wait work as specified. Also uses much fewer handles, and only
10475 creates them as needed.
10477 * exception.c: Added SynchronizationLockException
10479 * threads.c: Deleted old Monitor implementation. The new one is
10482 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
10484 * class.c: handled TypedReference type code. Set the correct size for
10485 class data. Setup interface_offsets for interface classes, too.
10487 2003-02-09 Martin Baulig <martin@ximian.com>
10489 * debug-mono-symfile.h: Reflect latest symbol writer changes.
10491 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
10493 * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
10494 * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
10495 * object.c: fixed mono_object_get_virtual_method () for interfaces.
10496 * verify.c: check for code that runs after the end of the method.
10498 2003-02-08 Pedro Mart?nez Juli? <yoros@wanadoo.es>
10500 * icall.c: Added "System.Math::Floor", "System.Math::Round" and
10501 "System.Math::Round2".
10502 * sysmath.h: Added Floor, Round and Round2 definitions.
10503 * sysmath.c: Modified certain functions that were not 100% compliant
10504 with MS.NET (math precision) and added the implementation of Floor,
10507 2003-02-07 Martin Baulig <martin@ximian.com>
10509 * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
10511 2003-02-07 Martin Baulig <martin@ximian.com>
10513 * debug-mono-symfile.c: Reflected latest symwriter changes.
10514 (mono_debug_create_mono_symbol_file): Removed.
10515 (mono_debug_open_mono_symbol_file): Take an argument which
10516 specifies whether to create a dynamic symbol file.
10518 2003-02-07 Dietmar Maurer <dietmar@ximian.com>
10520 * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
10522 2003-02-05 Martin Baulig <martin@ximian.com>
10524 * reflection.c (mono_image_build_metadata): Make this public,
10525 protect it against being called multiple times, don't create
10526 resources and don't build the compressed metadata here.
10527 (mono_image_create_pefile): Do this here.
10530 ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
10532 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10534 * socket-io.c: fixed bug #36322.
10536 2003-02-06 Piers Haken <piersh@friskit.com>
10540 * debug-mono-symfile.c:
10546 * socket-io.c: warning cleanups
10548 2003-02-06 Dietmar Maurer <dietmar@ximian.com>
10550 * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
10551 function. works like remoting invoke, but does a check for the Proxy first.
10553 2003-02-05 Miguel de Icaza <miguel@ximian.com>
10555 * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
10557 2003-02-05 Dietmar Maurer <dietmar@ximian.com>
10559 * marshal.c (mono_marshal_get_native_wrapper): only allocate an
10561 (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
10562 (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
10564 * object.c (mono_store_remote_field_new): used by the new jit
10565 instead of mono_store_remote_field
10566 (mono_load_remote_field_new): used by the new jit
10567 instead of mono_load_remote_field
10569 2003-02-05 Patrik Torstensson
10571 * appdomain.c: changed unload to take the domain id instead
10574 * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
10577 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10579 * appdomain.c: don't look for assemblies in ApplicationBase if
10580 PrivateBinPathProbe is set.
10582 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10584 * object.c: make the first argument in main_args contain the absolute
10585 path to the assembly. Fixes bug #37511.
10587 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10589 * icall.c: get correct UTC offset for countries not using daylight
10590 time saving. Fixes bug #30030.
10592 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10594 * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
10595 and 1 are the family).
10597 2003-02-04 Dietmar Maurer <dietmar@ximian.com>
10599 * icall.c (ves_icall_InternalExecute): removed wrong assertion
10601 * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
10603 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
10605 * reflection.c: added support for SignatureHelper tokens, which is
10606 needed by the Calli opcode.
10608 * reflection.h: track changes to SignatureHelper class.
10610 * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
10612 2003-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10614 * appdomain.c: fixed loading assemblies from PrivateBinPath.
10616 2003-02-03 Patrik Torstensson
10617 * appdomain.[c|h], domain.c :
10618 - Added support for getting a domain via domain id
10619 - Support for setting and getting domain from System.AppDomain
10620 (used in cross appdomain channel)
10621 - Added support for get/set for a MonoAppContext on a thread
10622 (Context class in System.Runtime.Remoting.Contexts),
10623 - Removed hack in Get/SetData and ExecuteAssembly.
10625 * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
10626 the managed world to get control when a proxy is created.
10628 * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
10630 2003-02-03 Miguel de Icaza <miguel@ximian.com>
10633 (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10634 Populate the codebase field as well.
10636 2003-02-02 Martin Baulig <martin@ximian.com>
10638 * debug-mono-symfile.c
10639 (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
10640 (mono_debug_symfile_add_method): Allow interncalls.
10642 2003-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10644 * icall.c: throw parse exception if strtod fails or the string is empty.
10646 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
10648 * marshal.c: handle object type separately from defined
10651 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
10653 * marshal.c: handle NATIVE_LPSTR for strings when it's
10654 explicitly specified.
10656 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
10658 * reflection.c, reflection.h, icall.c: setup the reflection
10659 handle cache for ModuleBuilders and AssemblyBuilders.
10661 2003-01-30 Dietmar Maurer <dietmar@ximian.com>
10663 * reflection.c (reflection_methodbuilder_to_mono_method): set
10666 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10668 * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
10670 2003-01-29 Dick Porter <dick@ximian.com>
10672 * threads.c: No need for the fake_thread kludge now that Thread
10673 doesn't run a class constructor
10675 2003-01-29 Dick Porter <dick@ximian.com>
10677 * threads.c: Use g_direct_hash instead of the rather bogus
10680 2003-01-29 Dietmar Maurer <dietmar@ximian.com>
10682 * marshal.c (mono_marshal_get_native_wrapper): add check for null
10683 (fix pinvoke12.exe)
10684 (mono_marshal_get_struct_to_ptr): generate valid IL code
10685 (mono_marshal_get_ptr_to_struct): generate valid IL code
10686 (*): correctly set sig->pinvoke, we need to memdup the signature
10689 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10691 * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
10692 to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
10694 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
10696 * profiler.c: provide more callers information.
10698 2003-01-28 Dietmar Maurer <dietmar@ximian.com>
10700 * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
10702 * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
10704 * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
10706 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
10708 * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
10709 exception instead of going into an infinite loop on dates which it
10712 * string-icalls.c (ves_icall_System_String_get_Chars): raise
10713 out-of-range exception if needed.
10715 * class.c (mono_class_setup_vtable): allow a virtual method to provide
10716 an implementation for an interface method and to override an inherited
10717 method at the same time.
10718 Imagine a scenario when a virtual method is used to override a
10719 virtual abstract method in a parent class, and this same method
10720 provides an implementation for an method inherited from an interface.
10721 In this case, the interface resolution code will set im->slot, which
10722 means that the virtual method override pass will skip this method
10723 which means a pointer to the abstract method inherited from the parent
10724 will remain in the vtable of this non-abstract class.
10726 * class.c: (mono_class_setup_vtable): continue search for a real
10727 method if only an abstract method is found.
10729 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
10731 * reflection.c: add size to encoding for ByValStr and ByValArray
10732 marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
10734 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
10736 * class.c (mono_class_setup_vtable): pass the override info as an
10739 * class.c (mono_class_setup_vtable): set the slot of overriding methods
10742 * reflection.c (ensure_runtime_vtable); add support for method
10745 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
10747 * reflection.c (resolution_scope_from_image): Hack to work to work with
10748 dynamic assemblies.
10750 * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and
10751 added a 'force_ref' argument to force this function to allways return
10752 a TypeRef. This is needed by mono_image_get_memberref_token ().
10754 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
10756 * reflection.c (mono_image_get_type_info): interfaces really don't have
10759 * reflection.c (mono_image_basic_init): fill out missing fields of
10762 * reflection.c (mono_image_basic_init): Invoke assembly load hooks for
10763 dynamic assemblies. This is required so dynamic assemblies show up in
10764 AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
10765 Type::GetType() etc. This is consistent with MS behaviour.
10767 * image.c image.h reflection.c: add newly created classes to the name
10768 cache so mono_class_get () will find them.
10770 2003-01-27 Zoltan Varga <vargaz@freemail.hu>
10772 First part of changes to get IKVM.NET running under mono.
10774 * appdomain.h, appdomain.c: added new function
10775 mono_domain_try_type_resolve() which will emit TypeResolve events.
10776 This function will call AppDomain::DoTypeResolve to do the actual work.
10778 * class.h, class.c, loader.c, object.c, reflection.h, reflection.c:
10779 moved existing code dealing with dynamic tokens to a new function
10780 called mono_reflection_lookup_dynamic_token (). This function will
10781 raise TypeResolve events when appropriate. Since reflection.c is not
10782 part of libmetadata, a new hook function called
10783 mono_lookup_dynamic_token() is added to class.c which will call this.
10785 * assembly.h assembly.c: make the invoke_load_hook function public,
10786 so it can be called for dynamic assemblies.
10788 * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
10790 * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the
10793 * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a
10794 MonoGHashTable, since it contains pointers to objects which the GC
10797 * assembly.c (search_loaded): remove unused variable.
10799 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
10801 * object.c: fixed issue exposed by gcc-generated IL programs
10802 that use RVA data for pointers.
10804 2003-01-25 Martin Baulig <martin@ximian.com>
10806 * threads.c (start_wrapper): Moved the initialization of
10807 `start_func' above the mono_new_thread_init() call to which we
10808 pass it as argument.
10810 2003-01-24 Martin Baulig <martin@ximian.com>
10812 * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
10813 the MonoThread pointer.
10815 2003-01-21 Miguel de Icaza <miguel@ximian.com>
10817 * icall.c: Rename `PowImpl' to Pow.
10819 2003-01-23 Dick Porter <dick@ximian.com>
10821 * threads.c (start_wrapper): Create a Thread object if needed, so
10822 the Main() thread can do the class initialisation in a subthread
10823 that has been set up to allow managed code execution.
10825 Pass the thread ID instead of the MonoThread pointer to the thread
10826 start and attach callbacks. This change is required, because the
10827 jit thread start callback must be called _before_ the Thread
10828 object can be created.
10830 (mono_thread_init): Removed much object creation code that is no
10831 longer needed. No managed code is called from here now.
10833 * object.c (mono_runtime_exec_managed_code): Create a subthread
10834 for Main, and call back to the runtime to use it.
10835 Set the exit code when Main exits.
10837 * gc.c: Make sure domain finalisation happens in a subthread.
10838 Re-enable threaded GC, fixing bug 31333 (again).
10840 * environment.c: System.Environment internall calls (so far just
10841 ExitCode is here, the others are still in icall.c)
10843 * appdomain.c (mono_runtime_cleanup): All threads running managed
10844 code should have finished before mono_runtime_cleanup() is
10845 reached, so no need to clean up threads.
10847 2003-01-22 Martin Baulig <martin@ximian.com>
10849 * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
10850 `gpointer func' arguments.
10851 (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
10852 but added `MonoThread *thread' argument.
10853 (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
10855 * threads.c (mono_new_thread_init): Added `gpointer func' argument
10856 and pass it to the mono_thread_start_cb callback.
10857 (mono_install_thread_callbacks): New public function to install a
10858 set of callbacks which are set by the debugger.
10859 (mono_thread_init): The last argument is now a MonoThreadAttachCB.
10861 2003-01-22 Martin Baulig <martin@ximian.com>
10863 * Makefile.am: Install debug-mono-symfile.h.
10865 2003-01-21 Aleksey Demakov <avd@openlinksw.com>
10867 * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
10869 2003-01-21 Dietmar Maurer <dietmar@ximian.com>
10871 * added the following fix from Jackson Harper <jackson@latitudegeo.com>
10872 * class.c (mono_ptr_class_get): correctly set access levels of pointers
10873 (mono_array_class_get): correctly set access levels of arrays
10875 2003-01-20 Patrik Torstensson
10876 * image.h (MonoAssemblyName): changed major, minor, build, revision
10877 from signed to unsigned.
10879 2003-01-20 sean kasun <skasun@azstarnet.com>
10881 * reflection.c (load_cattr_value): Now this handles
10882 MONO_TYPE_SZARRAY. Fixes bug #35629
10884 2003-01-20 Miguel de Icaza <miguel@ximian.com>
10886 * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
10889 2003-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10891 * decimal.c: fixed bug #26056.
10893 2003-01-17 Martin Baulig <martin@ximian.com>
10895 * gc.c: Raise an ExecutionEngineException instead of using g_error().
10897 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10900 (mono_get_exception_type_initialization): new function.
10902 * object.c: throw a TypeInitializationException when an exception is
10903 thrown invoking the class constructor.
10905 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10907 * reflection.c: fixed attribute reading.
10909 2003-01-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10912 (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
10913 provided, look for the type in the calling assembly and then in
10914 mscorlib; if the assembly name is provided, only try that one.
10916 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
10918 * object.c: register the vtable before there is a chance it's
10919 queried again recursively.
10921 2003-01-13 Duncan Mak <duncan@ximian.com>
10923 * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
10926 2003-01-12 Patrik Torstensson <totte@race-x-change.com>
10928 * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
10930 2003-01-11 Martin Baulig <martin@ximian.com>
10932 * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
10933 this to 20 for the release.
10935 2003-01-10 Dietmar Maurer <dietmar@ximian.com>
10937 * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
10939 * loader.c (mono_method_get_marshal_info): bug fix
10941 * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
10942 structures with explicit layout
10944 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
10946 * profiler.c: made the output more readable (and sorted).
10947 Added caller information for the allocation profiler.
10949 2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
10951 * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
10953 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10955 * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
10956 to get value types.
10958 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
10960 * object.c, profiler.h, profiler.c, profiler-private.h:
10961 Added object allocation profiler.
10963 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
10965 * reflection.h, reflection.c: handle global methods.
10966 Compress blob entries.
10968 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
10970 * marshal.c: fix compilation.
10972 2003-01-09 Dietmar Maurer <dietmar@ximian.com>
10974 * loader.c (mono_method_get_marshal_info): impl.
10976 * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
10978 2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10980 * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
10981 for reference types.
10983 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
10985 * loader.c: fixed off by one error in loaded parameter names.
10987 2003-01-08 Dietmar Maurer <dietmar@ximian.com>
10989 * marshal.c (mono_marshal_get_icall_wrapper): like
10990 mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
10991 instead of a MonoMethod.
10993 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10995 * decimal.c: fixed bug #36537.
10997 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
10999 * marshal.c: throw a missing method exception if a
11000 P/Invoke method is not found.
11002 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11004 * icall.c: allow a null this for constructors.
11006 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
11008 * icall.c: raise the proper exceptions if the arguments to the
11009 internal Invoke are incorrect.
11011 2003-01-03 Dietmar Maurer <dietmar@ximian.com>
11013 * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
11015 2003-01-03 Martin Baulig <martin@ximian.com>
11017 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11019 2002-12-31 Martin Baulig <martin@ximian.com>
11021 * debug-mono-symfile.c: Completely rewrote the type section.
11022 Instead of using individual malloc()ed fields, we use one big
11023 continuous memory area and offsets into this area.
11024 See the comments in the source code for details.
11026 2002-12-30 Martin Baulig <martin@ximian.com>
11028 * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
11030 2002-12-30 Martin Baulig <martin@ximian.com>
11032 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
11033 line number table in this data blob instead of using an external
11036 2002-12-28 Martin Baulig <martin@ximian.com>
11038 * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11040 2002-12-22 Rachel Hestilow <hestilow@ximian.com>
11042 * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
11043 as a boxed return type.
11045 2002-12-21 Miguel de Icaza <miguel@ximian.com>
11048 (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
11049 g_build_filename to properly get separators on the filename created.
11051 * object.h: Small change, introduce MonoMarshalByRefObject to
11052 track the layout of that structure in the C# universe as we make
11055 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
11057 * object.c: removed assert to allow static fields on interfaces.
11058 * loader.c: a TypeSpec may be used for any type, not just arrays.
11060 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11062 * class.c, class.h: added mono_class_array_element_size ().
11063 Ignore static methods in interfaces.
11065 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11067 * threads.c: fixed the build under cygwin.
11069 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
11071 * reflection.c: handle nullref constants. Allocate keys for
11072 reflection handles with the GC.
11074 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11076 * threads.c, threads.h: added mono_thread_get_abort_signal()
11077 to get a suitable signal for thread abort.
11079 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11081 * metadata.c: fix handling of ExportedType table.
11083 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11085 * icall.c: added WriteWindowsDebugString internal call.
11087 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11089 * reflection.h: added fields to match C# implementation.
11091 2002-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11093 * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
11095 2002-12-12 Juli Mallett <jmallett@FreeBSD.org>
11097 * gc.h, gc-internal.h: Rename header for GC internal calls to
11098 gc-internal.h from gc.h as to not clash with Boehm GC having its
11099 header installed as <gc.h> in outside include paths.
11100 * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
11101 * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
11103 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11105 * icall.c: assign minor, build and revision in FillName.
11107 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
11109 * image.h reflection.h reflection.c class.h class.c loader.c object.c:
11110 Added support for running code generated by Reflection.Emit.
11112 2002-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11114 * appdomain.c: check for NULL argument in LoadFrom.
11116 2002-12-10 Dick Porter <dick@ximian.com>
11118 * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
11120 2002-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11122 * appdomain.c: fix buglet when building exe file name. Handle full
11123 assembly name (needed after latest changes to AssemblyName).
11125 (mono_image_close): free some hashtables.
11127 2002-12-05 Dietmar Maurer <dietmar@ximian.com>
11129 * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN
11130 instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation
11131 on some systems (redhat 7.3)
11133 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
11135 * threads.c: delete the critical section of a sync block,
11136 spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
11138 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
11140 * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
11142 2002-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11144 * appdomain.[ch]: handle the assembly preload event to try loading the
11145 assemblies using the paths we have in the current domain.
11147 * assembly.[ch]: created an assembly preload hook that is called to try
11148 loading the assembly by other means that the ones provided here.
11150 * domain.c: initialize the domain search path.
11152 From now on, assemblies (TODO: except corlib and System) are loaded
11153 according to these rules when using mono_assembly_load ():
11155 1. It tries to load the assembly from the ApplicationBase
11156 of the current domain appending .dll and .exe (TODO: have to
11157 try loading from name/name.dll and name/name.exe).
11159 2. It tries the search path specified in PrivateBinPath for the
11160 current domain (if any).
11162 3. Previous behavior.
11164 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
11166 * icall.c: implemented GetInterfaceMap() related icall.
11167 * domain.c, loader.h: load MethodInfo in mono_defaults.
11169 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11171 * gc.c: disable the finalizer thread for now, untill all the issues
11172 with it are resolved.
11174 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11176 * string-icalls.c: handle embedded nulls in string ctor when the
11177 length is specified.
11179 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11181 * class.c: look for explicit interface implementation in parent
11184 2002-12-03 Dietmar Maurer <dietmar@ximian.com>
11186 * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3)
11188 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
11190 * gc.c: protect handles with a critical section.
11192 2002-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11195 (ves_icall_type_from_name): it now has throwOnError and ignoreCase
11196 parameters. If no assembly specified, try getting the type from all
11197 the assemblies in the current domain, else, load the assembly and get
11200 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11202 * marshal.c: applied patch from Aleksey Demakov that fixes
11203 ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
11205 2002-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11207 * icall.c: fixed get_location.
11209 2002-11-28 Dietmar Maurer <dietmar@ximian.com>
11211 * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
11212 declarations to make it work with older gcc.
11214 * loader.c (mono_get_method): set signature->pinvoke for native calls
11216 2002-11-20 Dick Porter <dick@ximian.com>
11218 * threads.c (mono_thread_init): Set the main thread's handle
11220 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11222 * gc.c: allow compilation without GC support. Changed to match the
11225 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11227 * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
11229 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
11231 * reflection.c: set a public key token on the core assemblies.
11233 2002-11-18 Dick Porter <dick@ximian.com>
11235 * threads.c: Split out some thread initialisation so that other
11236 files can set the start callback function.
11238 * gc.c: Run finalisers in a separate thread, to avoid stack
11239 overflow. Fixes bug 31333.
11241 * appdomain.c: Set up GC finalisation thread.
11245 * domain.c: Use gc.h macros for GC_malloc
11247 2002-11-15 Dick Porter <dick@ximian.com>
11251 * appdomain.c: Removed mono_runtime_init_with_attach(),
11252 mono_thread_create_arg(), and mono_thread_init_with_attach(), by
11253 merging the extra parameter with the existing function. Removed
11254 unneeded code in mono_thread_attach().
11256 2002-11-14 Dietmar Maurer <dietmar@ximian.com>
11258 * image.c (mono_image_loaded_by_guid): a method to get loaded
11260 (load_metadata_ptrs): we store the guid as string.
11262 2002-11-11 Dietmar Maurer <dietmar@ximian.com>
11264 * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
11266 * metadata.c (mono_guid_to_string): imported method form Zoltan
11267 Varga (slightly modified)
11269 * assembly.c (mono_assembly_open): load precompiled code
11271 * loader.h (MonoMethod): we store the method token for use in the
11274 2002-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11276 * appdomain.c: insert the loaded assemblies in the domain->assemblies in
11277 the hook function called when an assembly is loaded.
11279 * domain.c: Modified file.
11280 (mono_domain_assembly_load): removed hash table insertion of assemblies.
11284 2002-11-07 Miguel de Icaza <miguel@ximian.com>
11286 * reflection.c: Map PEFileKind to the value expected by the WinNT
11289 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11291 * rand.c: use /dev/urandom. If it fails to open, use the previous one.
11292 Read until the buffer is filled completely.
11294 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11296 * icall.c: implemented MonoType.InternalGetEvent ().
11298 2002-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11300 * appdomain.c: implemented InitAppDomainSetup. Delayed
11301 AppDomain.SetupInformation until mono_runtime_exec_main, where we get
11302 the entry_assembly.
11304 * assembly.c: base_dir is now an absolute path ending with
11307 * icall.c: modified get_location according to the above changes.
11309 * object.c: init AppDomain.SetupInformation for the default domain after
11310 we have the entry assembly.
11312 * domain.c: when unloading a domain, setup = NULL.
11314 2002-11-04 Dietmar Maurer <dietmar@ximian.com>
11316 * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
11318 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
11320 * object.h, object.c: introduced mono_object_get_virtual_method ()
11321 to lookup the method invoked on an object when a callvirt is done on
11323 * icall.c: make MethodInfo::Invoke() always do a virtual call.
11325 2002-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11327 * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
11328 current domain when loaded an assembly and failed to load it.
11330 * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
11332 2002-10-31 Dick Porter <dick@ximian.com>
11336 * file-io.c: Return the error status in a parameter, as the
11337 GetLastError() value has long since been blown away if we try and
11338 look it up in a subsequent internal call invocation. Delete the
11339 GetLastError() internal call, because it's useless.
11341 2002-10-31 Dietmar Maurer <dietmar@ximian.com>
11343 * class.[ch]: added cast_class to fix bug 29517
11345 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
11347 * marshal.c: create valid IL code in the filter clause:
11348 the new JIT is less forgiving:-)
11350 2002-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11352 * icall.c: removed get_property internal call.
11354 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
11356 * appdomain.h domain.c: Added an ID to appdomains.
11358 * threads.c threads.h icall.c: Implement icall
11359 Thread:GetDomainID(), and remove unused icall
11360 CurrentThreadDomain_internal.
11362 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11364 * icall.c: Don't recurse through the base types in GetConstructor.
11367 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
11369 * mempool.h, mempool.c: added mono_mempool_empty() and
11370 mono_mempool_stats().
11372 2002-10-23 Dick Porter <dick@ximian.com>
11376 * icall.c: Added MonoIO.GetFileType internal call
11378 2002-10-17 Dick Porter <dick@ximian.com>
11380 * appdomain.c (mono_runtime_cleanup): Don't signal the async
11381 delegate semaphore before waiting for all threads to finish,
11382 because new threads can also call async delegates. Fixes bug
11385 * threadpool.c (async_invoke_thread): Only wait for 500ms instead
11386 of 3 seconds, in case another async job is queued. (This part is
11387 needed because the bug fix reintroduced the 3s exit lag.) This
11388 makes the mono_runtime_shutdown flag superfluous.
11390 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11392 * reflection.c: include ehader size in method section headers.
11393 Really check for suplicated modules entries.
11395 2002-10-17 Martin Baulig <martin@gnome.org>
11397 * debug-mono-symfile.c: Added back support for locals.
11399 2002-10-14 Martin Baulig <martin@gnome.org>
11401 * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
11404 2002-10-14 Martin Baulig <martin@gnome.org>
11406 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
11407 mono_class_get() instead of looking in the class cache.
11409 2002-10-13 Martin Baulig <martin@gnome.org>
11411 * debug-mono-symfile.c: Set version number to 28, include the
11412 signature in method names.
11414 2002-10-13 Martin Baulig <martin@gnome.org>
11416 * debug-mono-symfile.h: Set version number to 27.
11418 2002-10-11 Martin Baulig <martin@gnome.org>
11420 * gc.c: Don't register/unregister NULL pointers as disappearing links.
11422 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11424 * metadata.c, metadata.h: added helper function to allocate signatures.
11426 2002-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11428 * icall.c: added internal call to get the location of machine.config.
11430 2002-10-08 Martin Baulig <martin@gnome.org>
11432 * debug-mono-symfile.c: Ignore classes with a pending init for the
11435 2002-10-03 Dick Porter <dick@ximian.com>
11437 * threads.c: Freebsd pthread_t is a pointer
11439 2002-10-03 Dick Porter <dick@ximian.com>
11441 * socket-io.c: Implemented GetHostName_internal
11443 2002-10-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11446 (mono_config_parse_file): don't leak the text.
11448 2002-10-02 Martin Baulig <martin@gnome.org>
11450 * debug-mono-symfile.c: Added support for methods.
11452 2002-10-01 Martin Baulig <martin@gnome.org>
11454 * debug-mono-symfile.c: Don't emit methods and line numbers for
11455 the dynamic symbol file, just write the type table. We can easily
11456 have an external helper program which creates a symbol file for an
11459 2002-10-01 Dick Porter <dick@ximian.com>
11461 * threads.c (ves_icall_System_Threading_Thread_Start_internal):
11462 Only add the handle to the cleanup array when we're about to
11463 launch the thread. Bug 31425 deadlocked when the test was run on
11466 2002-10-01 Martin Baulig <martin@gnome.org>
11468 * debug-mono-symfile.c: Added support for properties.
11470 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11472 * reflection.c: unaligned store fix from Mark Crichton
11473 <crichton@gimp.org>.
11475 2002-09-27 Martin Baulig <martin@gnome.org>
11477 * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
11480 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11482 * assembly.h, assembly.c: use a sane API to hook into the assembly
11483 loading process instead of a useless special-purpouse hack
11484 (ngen needs a hook, too, for example).
11486 2002-09-27 Dick Porter <dick@ximian.com>
11488 * threads.c (mono_thread_init): Call GetCurrentProcess() so
11489 io-layer can set up some process handle info. Not needed on w32,
11490 but doesn't hurt either.
11492 * process.c: Pass the program name in the second parameter to
11493 CreateProcess, so the path is searched. Include the working
11494 directory. Implemented process name, process enumeration, and some
11495 process detail internal calls.
11497 * icall.c: Added internal calls for process lookup, and some
11500 2002-09-26 Martin Baulig <martin@gnome.org>
11502 * assembly.c (mono_install_open_assembly_hook): New global
11503 function to install a function to be invoked each time a new
11504 assembly is loaded.
11505 (mono_assembly_open): Run this callback function if set.
11507 * debug-mono-symfile.c: Put back line numbers for the dynamic
11508 symbol file and also record the .il file as source file. This
11509 allows us to install the temporary symbol file as `file.dbg' just
11510 like a compiler-generated one.
11512 2002-09-26 Nick Zigarovich <nick@chemlab.org>
11514 * Corrected typo in gc.c (BOHEM vs BOEHM).
11516 2002-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11518 * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
11519 GetProperties. Also avoid calling g_slist_length in GetProperties and
11522 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11524 * reflection.c: avoid unaligned stores (bug spotted by
11525 Mark Crichton <crichton@gimp.org>).
11527 2002-09-25 Martin Baulig <martin@gnome.org>
11529 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
11530 instead of guint64 for addresses and added prologue/epilogue info.
11532 2002-09-25 Martin Baulig <martin@gnome.org>
11534 * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
11535 store line number info. For the dynamic symbol file, we only need
11536 to provide the JIT generated dynamic line number info for the dynamic
11539 2002-09-25 Martin Baulig <martin@gnome.org>
11541 * debug-mono-symfile.h: Incremented version number.
11543 2002-09-24 Martin Baulig <martin@gnome.org>
11545 * class.c (mono_debugger_class_init_func): New global function
11547 (mono_class_init): If mono_debugger_class_init_func is non-NULL,
11550 * debug-mono-symfile.c (mono_debug_symfile_add_type): New
11551 function. This is called via the mono_debugger_class_init_func
11552 hook to add all types to the dynamic type table.
11553 (ves_icall_MonoDebugger_GetType): New interncall to get a class
11554 from its metadata token.
11556 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
11557 New interncall for the debugger.
11559 2002-09-24 Nick Drochak <ndrochak@gol.com>
11561 * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
11562 before using it in case it is null.
11564 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11566 * metadata.c: allow custom modifiers in local var signatures
11567 (bug spotted by Zoltan Varga).
11569 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11571 * class.c: deal with the <Module> class that may have a NULL vtable.
11572 Eliminate warnings.
11574 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11576 * image.c, image.h: more strong name helpers.
11577 * monosn.c: more work: convert pem keys to cryptoapi format.
11579 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11581 * string-icalls.c: speedup IndexOf.
11583 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11585 * icall.c: updates from Zoltan.2.Varga@nokia.com.
11587 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
11589 * icall.c: cleanup: use mono_object_domain ().
11591 2002-09-23 Martin Baulig <martin@gnome.org>
11593 * debug-mono-symfile.c: Improved type support.
11595 2002-09-22 Martin Baulig <martin@gnome.org>
11597 * debug-mono-symfile.c: Added support for reference types and strings.
11599 2002-09-22 Martin Baulig <martin@gnome.org>
11601 * debug-mono-symfile.c: Started to work on the type table.
11603 2002-09-21 Martin Baulig <martin@gnome.org>
11605 * debug-mono-symfile.c: Largely reworked the symbol table format.
11606 The symbol table is now incrementally updated each time a new
11607 method is added. We're now also using our own magic and version
11608 so that you don't need to recompile all your classes if the
11609 dynamic table changes.
11610 (mono_debug_update_mono_symbol_file): Removed.
11611 (mono_debug_symfile_add_method): New function to add a method.
11613 2002-09-21 Martin Baulig <martin@gnome.org>
11616 ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
11619 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
11620 New interncall to get a method from its metadata token.
11622 2002-09-21 Martin Baulig <martin@gnome.org>
11624 * debug-mono-symfile.c: Create type table.
11626 2002-09-20 Martin Baulig <martin@gnome.org>
11628 * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
11630 2002-09-20 Martin Baulig <martin@gnome.org>
11632 * debug-mono-symfile.c: Provide information about params and locals.
11634 2002-09-20 Martin Baulig <martin@gnome.org>
11636 * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
11639 * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
11640 interncall to get a method from its metadata token.
11642 2002-09-20 Martin Baulig <martin@gnome.org>
11644 * debug-mono-symfile.c: Added a few checks for method->header
11645 being non-NULL. This should never happen, but for the moment
11646 let's use a g_warning() rather than a g_assert().
11648 2002-09-19 Mark Crichton <crichton@gimp.org>
11650 * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
11651 even if support for it isn't present. Added an #ifdef to fix this.
11653 * socket-io.c: Added checks back for Solaris support.
11655 2002-09-19 Martin Baulig <martin@gnome.org>
11657 * debug-mono-symfile.c (read_string, write_string): Reflect latest
11658 changes in the symbol file format.
11660 2002-09-18 Martin Baulig <martin@gnome.org>
11662 * debug-mono-symfile.c: Set version number to 21.
11664 2002-09-18 Dick Porter <dick@ximian.com>
11666 * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
11667 on netbsd. Fixes bug 30051.
11669 2002-09-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11672 (set_version_from_string): little fix.
11674 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11676 * monosn.c, Makefile.am: added strong name utility.
11677 * reflection.h, reflection.c: implemented delayed signing,
11678 locale, version and hash id assembly attributes.
11680 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11682 * loader.c, metadata.c: load param attributes in signatures.
11684 2002-09-16 Martin Baulig <martin@gnome.org>
11686 * debug-mono-symfile.c: Added string table with all method names.
11688 2002-09-14 Martin Baulig <martin@gnome.org>
11690 * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
11691 fast method lookup.
11693 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11695 * reflection.c: record the public key token of referenced assemblies.
11697 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11699 * image.c, image.h: added functions to get the strong name and the
11700 public key of an assembly.
11701 * pedump.c: use them.
11703 2002-09-12 Dietmar Maurer <dietmar@ximian.com>
11705 * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
11707 2002-09-12 Miguel de Icaza <miguel@ximian.com>
11709 * marshal.c (mono_marshal_get_managed_wrapper): Added
11712 2002-09-11 Martin Baulig <martin@gnome.org>
11714 * gc.c: Call GC_unregister_disappearing_link() on all links when
11715 finalizing them, this is necessary to aviod a crash in boehm's
11718 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11720 * gc.c: handle GetTarget for finalized objects spotted and fixed by
11723 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
11725 * icall.c: implemented MonoType::Module.
11726 * reflection.c, reflection.h: mono_module_get_object () from
11727 Tomi Pakarinen <tomi.pakarinen@welho.com>.
11729 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11731 * icall.c: ignore overridden methods in GetMethods ().
11732 Fix for FieldInfo::SetValue().
11733 * object.c: handle float/double in runtime invoke.
11735 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11737 * object.c: allow a constructor to be called again on an object.
11739 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11741 * class.h, class.c: move field layout code to it's own function and
11742 export it. Get an interface id earlier. Move fields in MonoClass
11743 so they are more cache friendly and align the bitfields.
11744 * loader.c: temporary handle get_param_names() for a runtime method.
11745 * reflection.c, reflection.h: more code to handle runtime creation of
11748 2002-09-09 Martin Baulig <martin@gnome.org>
11750 * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
11751 signature with the pinvoke field being set for the actual call.
11753 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11755 * icall.c: removed some unused icalls. Start of map of glib charsets
11756 to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
11758 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11760 * debug-helpers.c: break infinite loop (found and fixed by
11761 Holger Arnold <harnold@gmx.de>).
11763 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11765 * icall.c: target may be null in create_delegate.
11767 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11769 * marshal.c: handle a boolean return type.
11771 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11773 * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
11775 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11777 * gc.c: fix weakreferences.
11779 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
11781 * icall.c: added icall to get default codepage.
11783 2002-09-03 Dick Porter <dick@ximian.com>
11786 * threads.c: Use MonoThread instead of MonoObject where
11789 Store running thread objects in a hash table, so that we have all
11790 the info to hand when waiting for them to finish
11791 (means we don't need OpenThread() any more, so mingw builds should
11792 be fully functional again.)
11795 * object.h: Added thread ID to MonoThread
11797 2002-09-03 Martin Baulig <martin@gnome.org>
11799 * icall.c (System.Reflection.Assembly::get_location): New interncall.
11801 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11803 * icall.c: fixed leak in get_temp_path. Thanks lupus.
11805 2002-09-03 Martin Baulig <martin@gnome.org>
11807 * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
11808 argument to store the end address of the disassembled instruction.
11810 * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
11811 here from debug-symfile.h.
11812 (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
11813 JIT into this struct.
11814 (MonoSymbolFile): Added `char *image_file' field.
11815 (MonoDebugGetMethodFunc): Removed.
11816 (mono_debug_update_mono_symbol_file): Removed the hash table argument.
11817 (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
11818 (mono_debug_find_method): New method.
11820 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
11821 create a full symbol file.
11822 (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
11823 and static symbol files.
11824 (mono_debug_find_method): The symbol file keeps an internal method hash,
11825 call this to get a MonoDebugMethodInfo from a MonoMethod.
11827 * debug-symfile.[ch]: Removed.
11829 2002-08-29 Miguel de Icaza <miguel@ximian.com>
11831 * image.c (do_mono_image_open): Remove linker version check.
11833 2002-08-29 Dietmar Maurer <dietmar@ximian.com>
11835 * marshal.c (mono_marshal_get_managed_wrapper): don't cache
11836 wrappers for instance methods.
11838 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11840 * icall.c: added ves_icall_System_IO_Path_get_temp_path.
11842 2002-08-28 Dick Porter <dick@ximian.com>
11844 * Makefile.am: Export HOST_CC for w32 builds
11846 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11848 * file-io.c process.c: MonoString are null terminated, no
11849 need for mono_string_to_utf16() anymore.
11851 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11853 * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
11855 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
11857 * icall.c, reflection.h: speedup System.MonoType.
11859 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11861 * reflection.c: allow null as the value of a string argument in
11862 custom attributes constructors.
11864 2002-08-27 Martin Baulig <martin@gnome.org>
11866 * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
11867 `trampoline_address' field.
11869 2002-08-27 Dietmar Maurer <dietmar@ximian.com>
11871 * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
11872 check (fixes bug #29486)
11874 2002-08-27 Martin Baulig <martin@gnome.org>
11876 * debug-mono-symfile.c: Changed the file format in a way that allows us
11877 open it read-only and to use a specially malloced area for all the
11878 dynamic data. We can now also generate a symbol file on-the-fly if we're
11879 debugging IL code and there is no MCS generated symbol file for it.
11881 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11883 * object.c: added a define for a good string and array
11884 creation speedup (not enabled by default because we need to deal with
11887 2002-08-26 Martin Baulig <martin@gnome.org>
11889 * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
11890 function to create a dynamic symbol file. This is used by the
11891 debugger to create a symbol file for IL code on-the-fly.
11893 2002-08-26 Martin Baulig <martin@gnome.org>
11895 * loader.c (mono_lookup_pinvoke_call): Include the error message
11896 from g_module_error() in the error message.
11898 2002-08-24 Martin Baulig <martin@gnome.org>
11900 * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
11901 function to update the symbol file. The symbol file is mmap()ed
11902 writable, but private. This allows us to install the symbol file
11903 together with the assembly.
11905 2002-08-24 Martin Baulig <martin@gnome.org>
11907 * debug-mono-symfile.[ch]: New files. Similar to debug-symfile.[ch]
11908 but they can read the new symbol file format which mcs is now creating.
11910 * debug-symfile.c (mono_debug_find_source_location): Moved to
11911 debug-mono-symfile.c; this is now operating on the new symbol file.
11913 2002-08-23 Martin Baulig <martin@gnome.org>
11915 * debug-helpers.c (mono_method_desc_from_method): New function to get
11916 a MonoMethodDesc from a MonoMethod.
11918 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11920 * object.c: fixes assertion failure caused by multiple ExecuteAssembly
11921 calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
11923 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
11925 * string-icalls.[ch]: make helper methods static.
11927 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11929 * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
11930 types to it and to SetValueInternal.
11932 * object.c: Moved handle_enum label to its proper place. This was the
11935 This time i compiled mcs and gtk-sharp and they both work.
11937 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11939 * icall.c: reverted partially my previous patch until
11940 object.c:set_value handles enums correcly.
11942 2002-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11945 (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
11946 (ves_icall_System_Environment_get_MachineName): removed warning when
11947 compiling under cygwin.
11949 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11951 * object.c: fixed field_get_value() for reference types.
11953 2002-08-22 Dick Porter <dick@ximian.com>
11955 * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
11956 Don't free a buffer while it's still needed. Patch from Jonathan
11957 Liger <Jonathan.liger@wanadoo.fr>
11959 2002-08-21 Miguel de Icaza <miguel@ximian.com>
11961 * icall.c (ves_icall_System_Environment_get_Platform): Add new
11964 2002-08-21 Dietmar Maurer <dietmar@ximian.com>
11966 * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
11967 (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
11969 * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
11970 we call unmanaged code which throws exceptions.
11972 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11974 * appdomain.h: added per-domain entry_assembly.
11975 * appdomain.c: ensure mono_runtime_exec_main () gets non-null
11977 * icall.c: Assembly::GetEntryAssembly icall.
11978 * object.c: set domain->entry_assembly in mono_runtime_exec_main().
11979 Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
11981 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
11983 * appdomain.h, gc.c: added mono_domain_finalize ().
11985 2002-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11988 (mono_print_unhandled_exception): changed g_warning by g_printerr
11989 because g_log has a 1024 characters limit (yeah, i got a big stack
11990 trace). Don't print exception name, that should be in ToString
11993 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11995 * icall.c: added ves_icall_FieldInfo_SetValueInternal.
11996 * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
11998 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12001 (mono_print_unhandled_exception): after previous commit, i realized
12002 that MS calls ToString on the exception. I changed this function to
12003 do that. This way we get stack_trace for free.
12005 2002-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12008 (mono_print_unhandled_exception): invoke Message property instead of
12009 getting 'message' field from Exception. Don't allocate memory for
12010 'trace' and 'message' if not needed.
12012 2002-08-18 Dick Porter <dick@ximian.com>
12014 * unicode.c: Fix asserts to match Encoder.cs checks
12016 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12018 * marshal.c: fix unaligned store issue and a few wrong
12019 opcode argument types.
12021 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12023 * icall.c: added GetUninitializedObjectInternal internal call.
12025 2002-08-16 Dietmar Maurer <dietmar@ximian.com>
12027 * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
12028 to the right domain.
12030 2002-08-14 Dietmar Maurer <dietmar@ximian.com>
12032 * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
12034 * class.c (class_compute_field_layout): set blittable to false for Strings
12036 * appdomain.c (mono_domain_transfer_object): added support for ISerializable
12038 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12040 * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
12041 first chunk of code to create types at runtime. Code to
12042 handle ReflectedType/DeclaringType. Make reflection handles
12045 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
12047 * class.c: set correct name in arrays.
12049 2002-08-13 Dietmar Maurer <dietmar@ximian.com>
12051 * appdomain.c (mono_domain_transfer_object): make it work with
12052 valuetypes. bug fixes.
12054 2002-08-12 Dick Porter <dick@ximian.com>
12056 * object.h: Rename some parameters to avoid c++ keywords (Patch
12057 from Joseph Wenninger <kde@jowenn.at>)
12059 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
12061 * icall.c: added icall to implement Assembly.GetFile*.
12063 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12065 * reflection.h, reflection.c: code to embed managed resources.
12067 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12069 * class.c: move all the type size stuff into
12070 class_compute_field_layout().
12072 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12074 * class.c: ensure enums have always the correct instance size.
12075 * unicode.c: remove wrong assert.
12077 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12079 * assembly.c: fix mem corruption issue.
12080 * image.h, image.c: added mono_image_get_resource () to access
12082 * icall.c: implemented Assembly.EntryPoint property and some
12083 Managed Resources related internalcalls.
12086 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12088 * image.c, image.h: impemented mono_image_get_entry_point ().
12089 * appdomain.c: use mono_image_get_entry_point.
12091 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12093 * reflection.c: support the object type argument when loading
12096 2002-08-05 Dietmar Maurer <dietmar@ximian.com>
12098 * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
12099 String as return type.
12101 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
12103 * reflection.c: fix encoding of named args for custom attrs to match
12104 the ms implementation. Read them back when instantiating custom
12107 2002-08-02 Radek Doulik <rodo@ximian.com>
12109 * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
12110 by Dietmar as quick fix
12111 (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
12112 16 as stack size, used on more places as quick fix before Dietmar
12113 will fix it properly
12115 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12117 * object.h, object.c: added accessors for fields and properties.
12119 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12121 * class.c, class.h: made mono_class_get_field_from_name ()
12122 loop on parent types.
12123 Added mono_class_get_property_from_name ().
12125 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12127 * class.c, class.h: move the code to setup the type vtable in its own
12128 function so that it can be reused also for types created at runtime.
12129 Eliminate the "class" identifier from the header file.
12130 * reflection.c: setup the vtable for enums so that we can create
12131 objects for use in SetConstant ().
12133 2002-08-02 Dietmar Maurer <dietmar@ximian.com>
12135 * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
12136 instead of the delegate itself as this pointer (bug #28383)
12138 2002-08-01 Dietmar Maurer <dietmar@ximian.com>
12140 * marshal.c (mono_marshal_get_managed_wrapper): added return type
12143 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12145 * loader.c: don't set the pinvoke bit on icalls.
12147 2002-07-31 Dietmar Maurer <dietmar@ximian.com>
12149 * debug-helpers.c (mono_method_full_name): only print a number to
12150 indicate wrapper type (so that the output is more readable in traces).
12152 2002-07-30 Dietmar Maurer <dietmar@ximian.com>
12154 * class.c (mono_class_init): include method override patch from Paolo
12156 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
12158 * icall.c: fixed GetTypeCode().
12160 2002-07-29 Dietmar Maurer <dietmar@ximian.com>
12162 * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
12163 use real delegate invoke function to make it work with multicast
12164 delegates (fix bug# 28291).
12166 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12168 * object.c: load constant strings.
12170 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12172 * reflection.c: no magic numbers.
12173 * tabledefs.h: security action enum.
12175 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12177 * assembly.c: fix possible memory corruption.
12179 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12181 * reflection.h, reflection.c: added support for linking resources.
12182 * verify.c: check we have an updated corlib.
12184 2002-07-25 Dietmar Maurer <dietmar@ximian.com>
12186 * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
12188 (mono_marshal_string_array): null terminate unmanaged string arrays.
12189 (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
12191 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12193 * icall.c: Type.GetType () can now return also types from the
12196 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12198 * loader.h, loader.c: stack walking support.
12199 * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
12200 GetCallingAssembly.
12202 2002-07-24 Dietmar Maurer <dietmar@ximian.com>
12204 * marshal.c: added optimisations for blittable types
12206 * class.c (mono_array_class_get): do not set blittable attribute on arrays
12207 (mono_class_setup_mono_type): set blittable attribute for single
12210 * marshal.c (mono_string_utf8_to_builder): impl.
12211 (mono_string_builder_to_utf8): impl.
12212 (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
12214 2002-07-23 Dietmar Maurer <dietmar@ximian.com>
12216 * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
12217 (mono_marshal_get_managed_wrapper): impl. byref types
12219 2002-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12222 (search_method): don't display debug message.
12224 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
12226 * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
12228 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12230 * appdomain.c: set the missing filename when throwing exception.
12232 2002-07-22 Dietmar Maurer <dietmar@ximian.com>
12234 * metadata.c (mono_type_size): code cleanup
12235 (mono_type_stack_size): removed some test code
12237 2002-07-21 Miguel de Icaza <miguel@ximian.com>
12239 * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
12240 mono_get_exception_file_not_found now.
12242 * exception.c (mono_exception_from_name_two_strings): New version
12243 that will call a constructor with two string arguments.
12244 (mono_get_exception_file_not_found): New helper routine, used to
12245 report file-not-found errors.
12247 2002-07-20 Dick Porter <dick@ximian.com>
12250 * process.c: Pass file handles to CreateProcess
12254 * file-io.c: Implemented CreatePipe
12256 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
12258 * metadata.c (mono_get_param_info): set alignment for value types
12260 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12262 * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
12263 Constify mono_domain_assembly_open().
12264 * loader.c: handle null namespace in icalls.
12266 2002-07-19 Dietmar Maurer <dietmar@ximian.com>
12268 * marshal.c (emit_ptr_to_str_conv): marshal object as structs
12269 (emit_str_to_ptr_conv): marshal object as structs
12271 * metadata.c (mono_type_to_unmanaged): marshal object as structs
12273 * marshal.c (mono_marshal_get_runtime_invoke): support value types
12275 2002-07-18 Dietmar Maurer <dietmar@ximian.com>
12277 * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
12278 (mono_marshal_get_native_wrapper): we an now return value types
12280 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12282 * verify.c: more checks implemented.
12284 2002-07-17 Dietmar Maurer <dietmar@ximian.com>
12286 * marshal.c (mono_delegate_to_ftnptr): invoke the right method
12288 (mono_marshal_get_native_wrapper): allow byref arguments
12289 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
12290 impl. PtrToStringXXX methods
12291 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
12292 (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
12293 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
12294 (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
12295 (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
12297 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12299 * reflection.c: fix buglet in parsing an assembly name.
12301 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
12303 * marshal.c (emit_ptr_to_str_conv): first impl.
12305 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12307 * object.c, class.h: cache the vtable in the class as suggested by
12308 vargaz@freemail.hu (Zoltan Varga).
12310 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12312 * class.h, loader.c: added mono_field_from_token().
12313 * verify.c: first cut of type checking code.
12315 2002-07-16 Dietmar Maurer <dietmar@ximian.com>
12317 * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
12319 2002-07-15 Dietmar Maurer <dietmar@ximian.com>
12321 * marshal.c (mono_marshal_get_native_wrapper): handle enum types
12323 (mono_marshal_get_remoting_invoke): impl.
12324 (mono_delegate_begin_invoke): impl.
12325 (mono_mb_emit_save_args): impl.
12326 (mono_delegate_end_invoke): impl.
12327 (mono_marshal_get_delegate_begin_invoke):
12328 (mono_marshal_get_delegate_end_invoke):
12329 (mono_marshal_get_delegate_invoke): generate a special name for
12330 those methods (including the signature) and associate them whith
12331 the delegate class.
12333 2002-07-13 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
12336 (mono_reflection_type_from_name): now it has a MonoImage parameter
12337 which is used as the default image to search the type in. If the image
12338 is NULL or getting the type from it fails, it defaults to corlib.
12340 * icall.c: changed 1 call to mono_reflection_type_from_name to match
12343 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12345 * reflection.c: update the parameter table index.
12347 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12349 * domain.c: don't include the mark byte in the string hash.
12351 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12353 * icall.cs: icall for Type.GetTypeCode ().
12354 * verify: a couple of fixes and disabled local initialization checks.
12356 2002-07-12 Dietmar Maurer <dietmar@ximian.com>
12358 * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
12360 * debug-helpers.c (mono_method_full_name): print the type of the
12363 * metadata.c (mono_signature_hash): a hash function for signatures
12364 (mono_signature_hash): better hash algorithm
12366 * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
12368 * debug-helpers.c (mono_method_full_name): this can now generate
12369 method names with signatures
12371 * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
12372 method dont have this pointers.
12374 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
12376 * reflection.c: fixup typebuilder tokens.
12377 * image.c: fix buglet.
12378 * marshal.h: remove whitespace.
12379 * metadata.h, metadata.c: reinstate code that was removed.
12380 * verify.c: handle catch directives and fix another couple of bugs.
12382 2002-07-11 Dietmar Maurer <dietmar@ximian.com>
12384 * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
12385 (mono_marshal_get_native_wrapper): make it comp. with the old code
12386 (mono_marshal_get_native_wrapper): support boolean
12387 (mono_marshal_get_managed_wrapper): support more types
12389 2002-06-25 Dietmar Maurer <dietmar@ximian.com>
12391 * class.c (class_compute_field_layout): compute class->blittable attribute.
12393 2002-07-09 Dick Porter <dick@ximian.com>
12395 * threads.c: Make the thread cleaning up cope with threads that
12398 2002-07-08 Radek Doulik <rodo@ximian.com>
12400 * reflection.c (method_encode_code): use non-translated values to
12401 compute finally_start, this fixes exception handling on ppc, yay!
12403 * decimal.h (struct signscale): fix endianess
12405 2002-07-07 Radek Doulik <rodo@ximian.com>
12407 * reflection.c: swap box_val and not val
12409 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
12411 * reflection.c, reflection.h: handle full assembly info in type name.
12412 Handle Type arguments when loading custom attributes.
12413 * icall.c: updated to use new mono_reflection_type_from_name () method.
12415 2002-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12418 (method_from_memberref): also print assembly name when method not found.
12420 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12423 (ves_icall_TypeGetProperties): fixed bug #27473.
12425 2002-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12427 * reflection.c: display image name and token when cannot find the
12428 .ctor for an attribute.
12430 2002-07-05 Martin Baulig <martin@gnome.org>
12432 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12434 2002-07-04 Dick Porter <dick@ximian.com>
12436 * threads.c (mono_thread_cleanup): Nasty kludge to get this to
12437 compile on mingw. This will cause mingw builds to not wait for
12438 subthreads to terminate after the main thread does. I've lodged a
12439 bug with the mingw developers for them to wrap OpenThread().
12441 2002-07-03 Dick Porter <dick@ximian.com>
12443 * threads.c: Store thread IDs instead of handles, because
12444 GetCurrentThread() returns a pseudohandle and therefore stores
12445 useless values. mono_thread_cleanup() continues checking the
12446 array of threads until it is empty, to cope with subthreads
12447 spawning new threads after the main thread has finished.
12451 * profiler-private.h: Pass the thread ID to thread profiler
12452 functions, instead of a handle
12454 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12456 * verify.c: fixes to make it more usable.
12457 * pedump.c: added --verify code to verify IL code in an assembly.
12459 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12461 * reflection.c: turn errors into warnings to allow compiling corlib.
12463 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12465 * reflection.c: add special cases to compile corlib.
12467 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12469 * reflection.c: handle properties with only a set method.
12471 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12473 * opcodes.h: add enum with opcodes in opval order.
12475 2002-07-01 Dick Porter <dick@ximian.com>
12478 * object.c (mono_runtime_run_main): Removed unneeded argument
12480 2002-06-28 Martin Baulig <martin@gnome.org>
12482 * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12484 2002-06-27 Dick Porter <dick@ximian.com>
12486 * threads.c: Store the handle in both the parent thread and in the
12487 subthread, to minimise the time between starting a new thread and
12490 2002-06-26 Dick Porter <dick@ximian.com>
12492 * appdomain.c (mono_runtime_cleanup): Close the socket library
12493 after all the threads have finished, not before
12495 2002-06-26 Martin Baulig <martin@gnome.org>
12497 * debug-symfile.c (mono_debug_find_source_location): Added
12498 `guint32 *line_number' argument. If it's not NULL, store the line number
12499 there and return the file name without the line number.
12501 2002-06-25 Dick Porter <dick@ximian.com>
12505 * process.c: Process forking and other support functions
12507 2002-06-25 Dick Porter <dick@ximian.com>
12509 * image.c (do_mono_image_open): Set ref_count to 1, so that bad
12510 things dont happen when the image is closed.
12511 (mono_image_lookup_resource): Walk the resource section looking
12512 for a particular entry
12514 * cil-coff.h: PE resource section decoding
12516 2002-06-25 Dick Porter <dick@ximian.com>
12520 (mono_assembly_foreach): Accessor functions to walk the list of
12522 (mono_assembly_set_main):
12523 (mono_assembly_get_main): Process methods need to know which
12524 assembly is the "main" one
12526 * object.c (mono_runtime_run_main): Record the main assembly
12528 * debug-helpers.c: Fix typo
12530 2002-06-24 Dietmar Maurer <dietmar@ximian.com>
12532 * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
12533 (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
12535 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12537 * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
12539 2002-06-21 Miguel de Icaza <miguel@ximian.com>
12541 * image.c (do_mono_image_open): Initialize reference count,
12542 otherwise we leak the MonoImage.
12544 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12546 * reflection.c: small tweak to handle self-hosting.
12548 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12550 * reflection.c: fix type name parse code.
12552 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12554 * reflection.c: break out of the loop.
12555 * image.c: special case corlib.
12557 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12559 * reflection.c: add all the custom attrs at the end to ensure the
12560 ctors have been properly initialized when the attributes are defined
12561 in the current assembly.
12563 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12565 * reflection.c: handle correctly multiple-nested types.
12567 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
12569 * row-indexes.h: fix typos.
12570 * reflection.c: adjust for typos and fix method_def_or_ref
12571 encoding in MethodImpl table.
12573 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12575 * reflection.c: fix entry point patching (thanks Serge!).
12577 2002-06-18 Dietmar Maurer <dietmar@ximian.com>
12579 * verify.c: add check for System.Exception
12581 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12583 * image.c, class.c: minifix for code just c&p'ed.
12584 * reflection.c: warning fix.
12585 * object.h, loader.h, domain.c: load also StringBuilder.
12587 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12589 * marshal.h, marshal.c: some support code to handle complex marshaling.
12591 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12593 * class.h, class.c, reflection.c: handle ignorecase in GetType ().
12594 Better signatures with vtable error dump.
12596 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
12598 * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
12600 2002-06-17 Dietmar Maurer <dietmar@ximian.com>
12602 * icall.c (ves_icall_Type_GetField): impl.
12604 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12606 * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
12607 to retrieve a marshal description blob for a field or param.
12609 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12611 * reflection.h, reflection.c: change order of nested type emission
12612 to avoid table corruption. The NestedTypes table is sorted.
12613 * icall.c: change order of GetConstructor results to workaround mcs bug.
12615 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12617 * reflection.h, reflection.c: handle field and param marshal
12620 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12622 * icall.c, marshal.c marshal.h: more Marshal class implementation.
12624 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12626 * reflection.c: fix call convention.
12628 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12630 * reflection.h, reflection.c: mono_image_get_memberref_token()
12631 takes a type instead of a class, now. Added
12632 mono_image_get_array_token() to create tokens for the special
12633 multi-dim array methods.
12635 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12637 * assembly.c: handle modules (no assembly table). Split
12638 loading references in its own function.
12639 * class.c: handle moduleref resolution scope.
12640 * image.c, image.h: cache module name in image.
12642 2002-06-07 Martin Baulig <martin@gnome.org>
12644 * reflection.c (mono_image_get_type_info): Only add a class layout entry
12645 if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
12647 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12649 * icall.c: more signature fixes that used uint instead of int.
12651 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12653 * reflection.c: fixed signature of field refs.
12655 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12657 * class.c, reflection.c: handle typerefs of nested types
12658 (both on read and when writing files).
12660 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12662 * icall.c: fix method signatures that tried to workaround the previous
12665 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12667 * debug-helpers.c: fix typo.
12669 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12671 * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
12672 rewrote the PE/COFF writing code (our programs are understood by the
12675 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12677 * gc.c, gc.h, icall.c: weakreference support.
12679 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12681 * Makefile.am, mono-config.c: use $(sysconfdir).
12683 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12685 * icall.c: changed default precision of Double.ToString() to 15.
12686 Fixed memory leak. Unified with Single.ToString.
12688 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
12690 * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
12692 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12694 * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
12695 gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
12696 warnings and compilation fixes from Dennis Haney (davh@davh.dk)
12699 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12701 * debug-symfile.c, sysmath.c: yet more compilation fixes.
12703 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12705 * reflection.c, socket-io.c: more compilation fixes.
12707 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12709 * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
12710 domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
12711 unicode.c: warning and compiler compatibility fixes.
12713 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
12715 * class.h, metadata.c: fixed warnings/compilation errors.
12717 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12719 * Makefile.am, mono-config.c, mono-config.h: configuration file
12721 * loader.c, loader.h: make Dll mapping configurable at runtime in the
12722 config file. Export methods to insert and lookup mappings.
12724 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12726 * reflection.c: handle types and boxed objects in custom attr
12729 2002-05-30 Martin Baulig <martin@gnome.org>
12732 (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
12734 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
12736 * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
12737 to lookup the implmap row for a P/Invoke method.
12738 * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
12739 P/Invoke method from the runtime on an as needed basis.
12741 2002-05-28 Dietmar Maurer <dietmar@ximian.com>
12743 * metadata.c (mono_metadata_parse_signature): impl.
12745 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12747 * class.c: handle .pack directive.
12749 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12751 * object.c: initialize static fields with RVA data.
12753 2002-05-25 Martin Baulig <martin@gnome.org>
12756 (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
12758 2002-05-24 Martin Baulig <martin@gnome.org>
12761 (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
12762 (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
12763 `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
12765 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
12767 * object.c: special case string ctros in invoke.
12768 * gc.c: silly whitespace changes.
12770 2002-05-23 Dietmar Maurer <dietmar@ximian.com>
12772 * threadpool.[ch]: impl. a threadpool that can
12773 be used by mint and mono.
12775 2002-05-22 Martin Baulig <martin@gnome.org>
12777 * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
12778 The first argument is now a `MonoReflectionModuleBuilder *', the return
12779 value is a `MonoReflectionModuleBuilder *'. Use the AssemblyBuilder's
12780 `methods' field to get the method builder. The `token' argument is the
12783 * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
12784 invalid characters instead of g_assert_not_reached()ing. This seems
12785 to be the behaviour of mscorlib.
12787 2002-05-22 Dietmar Maurer <dietmar@ximian.com>
12789 * object.c (mono_runtime_invoke_array): applied patch from Rachel
12790 Hestilow to fix bug #25104
12792 2002-05-21 Martin Baulig <martin@gnome.org>
12794 * debug-symfile.c (mono_debug_find_source_location): New function.
12795 Looks up an IL offset in the line number table and returns the source
12796 location as a string.
12798 2002-05-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12801 (mono_double_ToStringImpl): changed %f by %g until we have something
12804 2002-05-21 Nick Drochak <ndrochak@gol.com>
12806 * icall.c : Use different name for Math.Pow's icall. Needed to check
12807 parameters first in C#.
12809 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12811 * icall.c, reflection.h: added icall to get info about an event.
12813 2002-05-20 Radek Doulik <rodo@ximian.com>
12815 * object.c (mono_value_box): don't use memcpy for boxing on BIG
12817 (mono_value_box): don't use memcpy for small sizes on
12818 architectures with unaligned access
12820 2002-05-20 Martin Baulig <martin@gnome.org>
12822 * reflection.c (mono_reflection_setup_internal_class): Don't crash
12823 if `tb->parent == NULL'.
12824 (mono_reflection_create_internal_class): New function. This is
12825 called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
12828 * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
12831 2002-05-19 Martin Baulig <martin@gnome.org>
12833 * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
12834 argument to get the length, don't default to the array length.
12836 2002-05-18 Miguel de Icaza <miguel@ximian.com>
12838 * assembly.c (mono_assembly_setrootdir): New function used to
12839 override the MONO_ASSEMBLIES directory.
12841 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
12843 * icall.c: ValueType_GetHashCode() initialize local var.
12845 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12847 * reflection.c: sort custom attributes table.
12849 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
12851 * reflection.c: support named args in custom attributes (write support).
12853 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
12855 * reflection.c: fix finally position calculation.
12857 2002-05-15 Radek Doulik <rodo@ximian.com>
12859 * reflection.c: fixed endianess at many places
12861 * icall.c (ves_icall_InitializeArray): comment out debug msg
12863 2002-05-15 Dietmar Maurer <dietmar@ximian.com>
12865 * object.c (mono_unhandled_exception): new function to handle
12866 unhandled exceptions.
12867 (mono_unhandled_exception): call the UnhandledException event.
12868 (mono_runtime_delegate_invoke): impl.
12870 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
12872 * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
12873 returns the RVA, not the direct pointer to the data. Handle the case
12874 when the class size is fixed.
12876 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12878 * reflection.c: fix some endianess issues.
12880 2002-05-14 Dietmar Maurer <dietmar@ximian.com>
12882 * object.c (mono_runtime_invoke): is now able to catch exceptions.
12884 * threads.c (mono_thread_init): added a callback which is invoked
12887 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
12889 * icall.c: make GetHashCode return non-negative values.
12891 2002-05-14 Dan Lewis <dihlewis@yahoo.co.uk>
12893 * object.c, icall.c, gc.c: revert to address-based hashcode.
12895 2002-05-13 Miguel de Icaza <miguel@ximian.com>
12897 * icall.c (mono_double_ParseImpl): Added ParseImpl method.
12899 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12901 * icall.c, class.c: special case <Module>.
12903 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
12905 * icall.c: fix bug in GetNow().
12907 2002-05-11 Dietmar Maurer <dietmar@ximian.com>
12909 * object.c (mono_runtime_class_init): make sure that we call all
12910 static class constructors.
12912 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12914 * reflection.c: sort methodsemantics table.
12916 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12918 * reflection.h, reflection.c: honour init locals setting.
12920 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
12922 * icall.c: copied Double ToStringImpl for Single ToStringImpl
12924 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
12926 * reflection.c: support ContructorBuilders in attribute blob creation.
12928 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12930 * reflection.c: some changes to build a binary that can be run
12931 directly in windows.
12933 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
12935 * loader.c: print a big message when an icall can't be found.
12937 2002-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12939 * string-icalls.c: fix bug 24248.
12941 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
12943 * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
12944 icall.c, reflection.h: separate assembly loading by pathname and by
12945 assembly name. Use the MONO_PATH env var to search for assemblies.
12947 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12949 * assembly.c, image.h: add some support for assemblies
12950 with multiple modules.
12951 * class.c, class.h: export mono_class_from_typeref().
12952 * loader.c: remove duplicated code and use mono_class_from_typeref(),
12955 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12957 * unicode.c: Char.IsNumber doesn't include hex digits as the ms
12958 documentation says (the ECMA one is correct).
12960 2002-05-02 Dick Porter <dick@ximian.com>
12962 * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
12963 Don't name the synchronisation mutex.
12965 2002-04-30 Jeffrey Stedfast <fejj@ximian.com>
12968 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
12969 Make the prototypes match.
12970 (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
12974 (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
12975 systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
12976 all systems have tm.tm_zone, so use strftime() with %Z to print
12977 the timezone abreviation into a temp string.
12979 * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
12980 rather than mono_array_addr() on a MonoString on Big Endian
12983 2002-04-30 Dietmar Maurer <dietmar@ximian.com>
12985 * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
12988 2002-04-30 Dick Porter <dick@ximian.com>
12990 * socket-io.c: Cope with SOCKET being an integer rather than a
12993 * threads.c: Added Thread_free_internal, to deal with thread
12994 handle cleanup. Moved calls to handle_store() and handle_remove()
12995 to start_wrapper(), so each can only be called once. Allocate
12996 synchronisation blocks with GC_malloc(), and use GC finalisation
12997 to close the handles.
12999 * icall.c: added System.Threading.Thread::Thread_free_internal
13001 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13003 * icall.c: support Environment.Exit, CommandLineArgs().
13005 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13007 * object.c, object.h: added mono_runtime_run_main () and
13008 mono_runtime_get_main_args () for use in System.Environment.
13010 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13012 * gc.c: fix thinko, enable actual finalization since the jit is now
13015 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13017 * gc.c, object.c: take into account that an object may be offset wrt the address
13018 returned by GC_malloc().
13020 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
13022 * image.c: handle files without entries in the assembly table (modules).
13024 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
13026 * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow
13027 mcs selfhosting again (build breaker) and did move the check to class instead. parent is
13028 allowed to be null when it's System.Object class setup.
13030 2002-04-27 Martin Baulig <martin@gnome.org>
13032 * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
13033 if `tb->parent == NULL' rather than crashing.
13035 2002-04-28 Nick Drochak <ndrochak@gol.com>
13037 * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error. Was
13038 calling acos() where asin() should have been called.
13040 2002-04-26 Martin Baulig <martin@gnome.org>
13042 * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
13043 instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
13044 there's a subdirectory called `System', but we don't want to read that
13045 subdirectory as an assembly.
13047 2002-04-25 Martin Baulig <martin@gnome.org>
13049 * debug-symfile.c: Reflect latest MonoString changes.
13051 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13053 * rand.c, rand.h: instance method icalls need to have an explicit
13054 this pointer as first argument in the C implementation.
13056 2002-04-25 Nick Drochak <ndrochak@gol.com>
13058 * icall.c: Fix typo in map for GetNonZeroBytes
13060 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
13062 * string-icalls.c : String does now passes unit tests without any
13063 errors, the following changes has been made:
13065 Implemented replace methods.
13066 Renaming of methods to (try) follow the standard.
13067 Fixed compare ordinal
13068 Made all memory allocated directly to function instead of via icall function.
13069 Small performance fix in is_in_array function
13071 (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
13073 c (mono_string_Internal_ctor_charp_int_int):
13074 (mono_string_Internal_ctor_sbytep_int_int): Removed check for
13075 sindex < 0, throw ArgumentOutOfRangeException instead of
13076 ArgumentNullException.
13078 Added new check for length == 0, however
13079 I need to make it return String.Empty from the C code.
13081 (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
13082 that calculate the length for us here.
13084 (mono_string_Internal_ctor_sbytep_int_int): Replaced
13085 mono_string_new_utf16 with mono_string_new, since value is utf8.
13087 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13089 * object.c: register the object for finalization if needed.
13090 Allocate one more char in the string for the terminating 0 char.
13092 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13094 * class.c, class.h, image.c: check if a type implemenst a destructor.
13095 Use the proper key for array class lookups.
13096 * icall.c: register the icalls in the System.GC class.
13097 * gc.c, gc.h: GC-related functions and icalls.
13099 2002-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13103 * unicode.c: free some strings gotten from mono_string_to_utf8 and
13104 changed a couple of free () by g_free ().
13106 * decimal.c: one-liner in the comments for decimal2string ().
13108 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
13110 * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
13112 2002-04-24 Patrik Torstensson <patrik.torstensson@labs2.com>
13114 * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
13115 * object.c (mono_runtime_invoke_array) : handle null in params
13117 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
13119 * string-icalls.c: fixed bug in split (one off bug)
13121 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
13123 * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
13124 * icalls.c: added String::Equals as internal method
13126 2002-04-23 Patrik Torstensson <patrik.torstensson@labs2.com>
13128 * threads.c: fixed bug in the double interlocked functions
13130 2002-04-22 Patrik Torstensson <patrik.torstensson@labs2.com>
13132 * threads.c: implemented all of the new interlocked icalls.
13133 * string-icalls.c: fix a bug in insert.
13134 * icalls.c: added the icalls for interlocked, removed old string functions.
13136 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13138 * loader.c: fix off-by-one error when reading argument names.
13140 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13142 * profiler.c: win32 counter implementation (untested).
13143 * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
13144 (the latter needs testing and more complete impl. from win32 folks).
13146 2002-04-21 Dan Lewis <dihlewis@yahoo.co.uk>
13148 * object.c: mono_array_new_full workaround mono_array_class_get
13151 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
13153 * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
13154 * object.h (mono_string_chars): Changed casting type.
13156 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
13158 * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
13159 method signatures to use gunichar2 instead of gint16.
13161 2002-04-20 Dan Lewis <dihlewis@yahoo.co.uk>
13163 * object.h, object.c: domain-specific versions of mono_object_new and
13166 2002-04-20 Dietmar Maurer <dietmar@ximian.com>
13168 * object.c: changed String layout
13170 * string-icalls.c (mono_string_Internal_ctor_chara): added
13171 internal string constructors.
13173 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
13175 * threads.c: pass 'this' to the thread start routine.
13177 2002-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13179 * string-icalls.c: fix IndexOf and LastIndexOf. Now
13180 InternalCompareStr don't call twice mono_string_cmp_char for the last
13181 character. Improved performance in mono_string_cmp_char.
13183 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13185 * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
13186 code into its own library: libmonoruntime.
13188 2002-04-19 Dan Lewis <dihlewis@yahoo.co.uk>
13190 * object.h, object.c: changed array format so that szarrays do not
13191 require a bounds structure.
13192 * icall.c, appdomain.c: support for new szarray format.
13194 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13196 * metadata.c: compare also the retuns type when comparing signatures:
13197 we didn't do this as an optimization since really overloaded methods
13198 must differ also in the arguments, but this doesn't work with
13199 low-level IL code (or when using explicit conversion operators: see
13200 bug#23498 for an example).
13202 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13204 * loader.c: SZARRAY types can be saved as TYPESPEC, too.
13206 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
13208 * icall.c: make MonoType::GetElementType its own icall.
13210 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13212 * icall.c: remove MonoMethod_get_Name().
13213 * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
13216 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
13218 * string-icalls.c: optimized a few methods.
13220 2002-04-17 Patrik Torstensson <patrik.torstensson@labs2.com>
13222 * icall.c: added all new string internal calls
13223 * string-icalls.c: added, new string internal call implementation.
13224 * object.c: added mono_string_new_size for allocating a string a size
13226 2002-04-17 Dietmar Maurer <dietmar@ximian.com>
13228 * object.c (mono_object_isinst): use the same code as in the
13229 optimized x86 version.
13231 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13233 * profiler.c: TSC-based timer code (faster and more accurate).
13234 Not hooked up in configure, yet (set USE_X86TSC to 1).
13236 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
13238 * profiler.c, profiler.h: track time spent compiling methods.
13239 * threads.c: track thread creation/destruction.
13241 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
13243 * profiler.c, profiler.h, profiler-private.h: profiling interface
13244 and sample implementation. Moved here so that it can be used also by
13247 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
13249 * reflection.c, reflection.h: keep types and other handles separate in
13250 the hash tables for referred tokens. Add guid for modules.
13252 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13254 * assembly.c: fix bugs found with valgrind.
13255 * metadata.h, metadata.c: added mono_metadata_guid_heap().
13257 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
13259 * threads: added icall support for getting current domain for
13262 2002-04-13 Martin Baulig <martin@gnome.org>
13264 * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
13265 (MonoDebugVarInfo): Added `index' field for register based addresses.
13266 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
13267 (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
13268 `MonoDebugVarInfo *params' and `guint32 this_offset' with
13269 `MonoDebugVarInfo *this_var'.
13271 * debug-symfile.c (relocate_variable): New static function to write
13272 a location description for a local variable or method parameter.
13274 2002-04-12 Martin Baulig <martin@gnome.org>
13276 * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
13277 stack offset and begin/end scope address of a local variable.
13278 (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
13279 'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
13280 (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
13282 * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
13283 Added new relocation types for start/end scope of a local variable.
13285 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13287 * object.h: add mono_object_domain() macro.
13288 * reflection.c: handle typespecs.
13289 * icall.c: MonoMethod::get_Name() implementation.
13291 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13293 * icall.c: String::GetHashCode() icall implementation.
13295 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13297 * icall.c: String::IndexOfAny icall.
13298 * object.c, object.h: make array->max_length more useful.
13299 Intrduced mono_object_class() and mono_string_length() macros.
13301 2002-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13303 * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
13304 instead of g_unichar_isdigit.
13306 2002-04-11 Nick Drochak <ndrochak@gol.com>
13308 * icall.c: Implement a simple Double.ToString().
13310 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13312 * appdomain.h: only io-layer.h is supposed to be included.
13313 * icall.c: explicitly import environ. Fix warning.
13315 2002-04-10 Nick Drochak <ndrochak@gol.com>
13317 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
13318 return true even if it's not Daylight Savings time.
13319 Only return false for the case where the function isn't
13320 implemented for a plaform (read Windows).
13322 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13324 * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
13327 2002-04-09 Dietmar Maurer <dietmar@ximian.com>
13329 * mempool.c (mono_mempool_alloc): only use g_malloc when
13330 absolutely necessary.
13332 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
13334 * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
13336 * class.c (mono_class_vtable): use domain mempool to allocate vtable
13337 (mono_class_proxy_vtable): use domain mempool
13339 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13341 * appdomain.h, appdomain.c: split initialization that requires the
13342 execution engine support into mono_runtime_init().
13344 2002-04-08 Dietmar Maurer <dietmar@ximian.com>
13346 * class.c (mono_class_init): don't include vtable inside MonoClass
13347 to save some memory, gather some statistics.
13348 (mono_class_vtable): use g_malloc instead of GC_malloc when possible
13350 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13352 * icall.c: internalcall implementation for ValueType.Equals().
13354 2002-04-06 Dietmar Maurer <dietmar@ximian.com>
13356 * object.c (mono_message_init): moved
13357 (mono_runtime_exec_main): new arch. independent impl.
13358 (mono_runtime_invoke_array): new method - like
13359 mono_runtime_invoke, but you can pass an array of objects.
13360 (mono_remoting_invoke): new arch. independent impl.
13361 (mono_message_invoke): new arch. independent impl.
13362 (mono_runtime_class_init): new arch. independent impl.
13363 (mono_runtime_object_init): new arch. independent impl.
13365 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13367 * metadata.c, object.c, reflection.c: documented the exported
13370 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
13372 * icall.c: simpler code to pass the assembly builder data to corlib.
13373 Implement GetNestedTypes() internalcall.
13375 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13377 * class.c: warn if a type can't be loaded.
13379 2002-04-04 Dietmar Maurer <dietmar@ximian.com>
13381 * image.h: typedef MonoImageOpenStatus
13382 * types.h: removed unused file
13384 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
13386 * icall.c: Enum_ToObject accepts enum value arguments.
13388 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13390 * class.c: move initialization of properties, events and nested
13391 classes, so that they happen for interfaces, too.
13393 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13395 * icall.c: cleanup some ugly casts in Array_SetValue*.
13397 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13399 * icall.c: the values array fro enums is of the correct type, now.
13400 Implement (correctly) getFullName instead of assQualifiedName for
13402 * reflection.h, reflection.c: added mono_type_get_name ().
13404 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13406 * assembly.c, image.h: for each MonoImage, record from wich assembly
13408 * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
13409 Make Type.Assembly work.
13411 2002-04-03 Dietmar Maurer <dietmar@ximian.com>
13413 * debug-symfile.h: use char* instead of gpointer to avoid
13416 * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
13418 * icall.c (ves_icall_InternalExecute): impl. FielSetter
13419 (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
13421 2002-03-30 Dietmar Maurer <dietmar@ximian.com>
13423 * icall.c (mono_message_init): impl. (code cleanup)
13424 (ves_icall_InternalExecute): impl. FieldGetter
13426 * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
13427 defined we call all (non-static)methods through the vtable.
13429 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
13431 * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
13432 finalizer even though the memory is still referenced (and the chunk of
13433 memory is not freed).
13435 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
13437 * assembly.c: fix brokeness.
13439 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
13441 * class.c: kill some warnings. Check explicit interface method
13442 implementation also without considering the namespace.
13443 Load also literal strings in static class data.
13445 2002-03-29 Miguel de Icaza <miguel@ximian.com>
13447 * assembly.c (default_assembly_name_resolver): Kill memory leak.
13448 (default_assembly_name_resolver): Make the resolver take the
13449 "base" directory where the assembly was originally defined, so we
13450 can load DLLs that are in the same directory as the assembly that
13451 is being referenced.
13453 2002-03-28 Dick Porter <dick@ximian.com>
13459 * unicode.c: Warning cleanups
13461 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
13463 * object.h, reflection.h: use the correct type instead of MonoObject.
13465 2002-03-28 Martin Baulig <martin@gnome.org>
13467 * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
13468 (mono_debug_update_symbol_file): Initialize classes if necessary.
13470 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
13472 * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
13473 rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
13475 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
13477 * assembly.h: fix function prototype.
13478 * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
13479 * mono-endian.h: use const cast.
13481 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
13483 * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
13485 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
13487 * loader.c: don't assert when a typeref can't be loaded, give
13488 a chance to the runtime to trow an exception instead.
13489 * loader.h: fix warning.
13491 2002-03-28 Dietmar Maurer <dietmar@ximian.com>
13493 * class.c (mono_class_proxy_vtable): added proxy support
13495 2002-03-27 Dan Lewis <dihlewis@yahoo.co.uk>
13497 * icall.c: removed last of PAL calls, added System.Environment
13498 * file-io.h, file-io.c: MonoIO implementation
13499 * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
13501 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
13503 * appdomain.c: do not use the byte marker in ldstr table lookup.
13504 * debug-helpers.c: allow two ':' to separate class and method name.
13505 * object.c: allocate arrays bounds with the GC, too.
13506 * verify: add a few more checks.
13508 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
13510 * reflection.c: output also literal strings. Allocate parameter data
13511 with GC_malloc() (thanks, Martin, for catching this!).
13513 2002-03-26 Martin Baulig <martin@gnome.org>
13515 * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
13516 include the `this' offset in the `param_offsets'.
13518 2002-03-25 Martin Baulig <martin@gnome.org>
13520 * debug-symfile.c (mono_debug_update_symbol_file): Use a new
13521 mono_debug_get_class() function to get the classes. Added new
13522 relocation types for arrays and strings.
13523 (mono_debug_get_class): New static function to search in all
13524 referenced assemblies for a metadata token.
13526 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
13528 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
13530 * reflection.h, reflection.c: use a gc-safe hash for hash tables that
13531 hold gc-allocated objects. Make the string heap a stream like the
13532 others. Removed duplicated code when writing stream info.
13533 Added asserts to catch possible buffer overflows. Set the sorted map
13534 for tables that need sorting. Added some documentation.
13536 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
13538 * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table
13539 for interned strings and vtables.
13541 2002-03-24 Martin Baulig <martin@gnome.org>
13543 * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
13544 it in the array since it was created with g_slist_prepend().
13546 2002-03-24 Martin Baulig <martin@gnome.org>
13548 * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
13549 to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
13550 (mono_debug_method_from_token): Renamed to
13551 ves_icall_Debugger_MonoSymbolWriter_method_from_token().
13552 (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
13554 * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
13557 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
13559 2002-03-24 Martin Baulig <martin@gnome.org>
13561 * debug-symfile.c (mono_debug_local_type_from_signature): New func.
13562 (mono_debug_method_from_token): New func.
13564 * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
13565 New interncall, calls mono_debug_local_type_from_signature().
13566 (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
13567 calls mono_debug_method_from_token().
13569 2002-03-23 Martin Baulig <martin@gnome.org>
13571 * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
13572 specifies the number of bytes to be converted, not the array size.
13573 Return the number of chars, not the number of bytes.
13574 (ves_icall_iconv_get_chars): The `byteCount' argument
13575 specifies the number of bytes to be converted, not the array size.
13577 2002-03-23 Martin Baulig <martin@gnome.org>
13579 * reflection.h (MonoReflectionSigHelper): New type.
13581 * reflection.c (mono_reflection_sighelper_get_signature_local),
13582 (mono_reflection_sighelper_get_signature_local): New functions.
13584 * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
13585 (System.Reflection.Emit.SignatureHelper::get_signature_field): New
13588 2002-03-23 Martin Baulig <martin@gnome.org>
13590 * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
13591 is_writeable is set.
13592 (mono_raw_buffer_update): New function to write the modified map
13595 * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
13597 * debug-symfile.c (mono_debug_update_symbol_file): Call
13598 mono_raw_buffer_update() when done writing.
13600 2002-03-23 Martin Baulig <martin@gnome.org>
13602 * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
13604 * debug-symfile.c: Added support for arguments and local variables.
13606 2002-03-23 Dick Porter <dick@ximian.com>
13608 * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
13609 protected by ifdefs, hence breaking the w32 build.
13611 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
13613 * object.c: implement is_interned() the right way.
13615 2002-03-21 Martin Baulig <martin@gnome.org>
13617 * debug-symfile.[ch]: New files to handle debugging information
13618 files. There's also support to dynamically update these symbol
13619 files to include machine dependent information.
13621 2002-03-20 Dietmar Maurer <dietmar@ximian.com>
13623 * threads.c (mono_thread_create): new function to create thread
13626 2002-03-20 Martin Baulig <martin@gnome.org>
13628 * icall.c (ves_icall_InternalInvoke): Create a new object if the
13629 method is a constructor.
13630 (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
13631 points to ves_icall_InternalInvoke().
13633 2002-03-20 Dan Lewis <dihlewis@yahoo.co.uk>
13635 * file-io.c: Flush shouldn't throw exceptions.
13637 2002-03-19 Dan Lewis <dihlewis@yahoo.co.uk>
13639 * file-io.c: FileStream flush support; FileSetLength now
13640 restores file pointer.
13642 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
13644 * class.c: set image for pointer classes.
13646 2002/03/19 Nick Drochak <ndrochak@gol.com>
13648 * sysmath.c: Forgot one.
13650 2002-03-18 Miguel de Icaza <miguel@ximian.com>
13652 * sysmath.c: Avoid redefining existing names.
13654 2002-03-18 Dan Lewis <dihlewis@yahoo.co.uk>
13656 * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
13657 handled by runtime as icall rather than dllimport from libm.so
13658 * file-io.c, file-io.h: fixed handle argument type.
13660 2002-03-18 Dick Porter <dick@ximian.com>
13662 * reflection.c (mono_image_get_type_info): rename interface to
13663 iface, because of "#define interface struct" on windows.
13665 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
13667 * class.c, class.h: rename and export mono_ptr_class_get().
13668 * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
13669 * reflection.c, reflection.h, icall.c: better/saner type name
13670 parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
13673 2002-03-14 Dietmar Maurer <dietmar@ximian.com>
13675 * class.c (mono_class_init): removed hardcoded GHC_SLOT
13677 * icall.c (ves_icall_InternalInvoke): impl.
13679 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
13681 * reflection.c: output the interface map table, too.
13683 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
13685 * class.c (class_compute_field_layout): separate computation of
13686 static field layout
13688 2002-03-12 Dan Lewis <dihlewis@yahoo.co.uk>
13690 * icall.c: added System.Buffer support.
13691 * file-io.c: moved file icalls from PAL to FileStream.
13693 2002-03-12 Dietmar Maurer <dietmar@ximian.com>
13695 * icall.c (ves_icall_System_Object_GetHashCode): impl.
13697 2002-03-11 Dietmar Maurer <dietmar@ximian.com>
13699 * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
13701 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
13703 * verify.c, verify.h: moved here the corlib/runtime consistency checks.
13705 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
13707 * debug-helpers.{c,h}: moved here from monograph some useful functions
13708 to locate a method by name/signature in a class or image. Included
13709 also a small and flexible IL disassembler.
13711 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
13713 * reflection.c: fixup tokens in methods with small header size, too.
13715 2002-03-08 Dietmar Maurer <dietmar@ximian.com>
13717 * object.c (mono_string_to_utf8): remove assert(!error), instead
13720 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
13722 * icall.c: update to the new mono_Array_class_get interface.
13724 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
13726 * appdomain.c, object.c: Boehm-GC enable.
13727 * icall.c: make get_data_chunk() support split data requests.
13728 Ensure a class is initialized in more cases. Return only the first
13729 property found in GetProperties() or the compiler gets confused.
13730 Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
13731 * reflection.h, reflection.c: add fixup mechanism for field and method
13732 tokens. Initialize assembly->typeref in a single place. Output
13733 properties after events. Support custom attributes for events, too.
13734 Typo fix for paramter custom attrs.
13736 2002-03-07 Martin Baulig <martin@gnome.org>
13738 * icall.c (ves_icall_System_Array_FastCopy): Small fix.
13740 2002-03-07 Dietmar Maurer <dietmar@ximian.com>
13742 * class.c (mono_array_class_get): fix. for multi. dim. arrays
13744 2002-03-06 Martin Baulig <martin@gnome.org>
13746 * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
13747 non-zero lower bounds. See testcases #F10-#F13.
13749 2002-03-05 Martin Baulig <martin@gnome.org>
13751 * exception.c (mono_get_exception_argument_out_of_range): New exception.
13753 * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
13754 ves_icall_System_Array_GetValue(), only calculate the absolute array position
13756 (ves_icall_System_Array_SetValue): Likewise.
13757 (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
13758 as argument and does the actual work. This function is used when copying a
13759 multi-dimensional array.
13760 (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
13761 now do all the widening conversions of value types.
13762 (ves_icall_System_Array_CreateInstanceImpl): Implemented.
13764 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
13766 * class.c: remove some magic numbers and use the smbolic names,
13767 instead. Added init_events() to load event info at class init time.
13768 * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
13769 and mono_metadata_methods_from_event().
13770 * reflection.h, reflection.c: added support for writing out the evnets
13771 related information.
13773 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
13775 * reflection.h, icall.c: use a different method (GetInterfaces)
13776 to gather interface info and add isbyref, isprimitive and
13777 ispointer to the ves_icall_get_type_info() return value.
13779 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
13781 * class.h: stared adding support for events.
13782 * icall.c: split find_members implementation. Added debug icall to get
13783 the address of an object.
13784 * reflection.c: handle TypeBuilders in mono_type_get_object().
13786 2002-03-01 Martin Baulig <martin@gnome.org>
13788 * icall.c (ves_icall_System_Array_GetLength): This must throw an
13789 ArgumentOutOfRangeException(), not an ArgumentException().
13790 (ves_icall_System_Array_GetLowerBound): Likewise.
13791 (ves_icall_System_Array_GetValue): Improved argument checking.
13792 (ves_icall_System_Array_SetValue): Improved argument checking.
13794 2002-03-01 Martin Baulig <martin@gnome.org>
13796 * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
13797 called with invalid arguments rather than just dying with g_assert().
13798 (ves_icall_System_Array_SetValue): Likewise.
13799 (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
13800 raise a NotImplementedException instead.
13801 (ves_icall_System_Array_GetLength): Added argument checking.
13802 (ves_icall_System_Array_GetLowerBound): Added argument checking.
13804 2002-03-01 Dietmar Maurer <dietmar@ximian.com>
13806 * object.h (mono_assert): new macros mono_assert and
13807 mono_assert_not_reached
13809 2002-02-28 Martin Baulig <martin@gnome.org>
13811 * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
13812 and "System::String::IsInterned" to "System::String::_IsInterned".
13814 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
13816 * icall.c: remove hacks for typebuilder. Added icall to create a
13817 modified type from a tybebuilder.
13818 * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
13819 in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
13820 to create a backing MonoClass for a TypeBuilder.
13822 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
13824 * class.c, class.h: more refactoring of class init.
13825 Export mono_class_setup_mono_type() and mono_class_setup_parent().
13827 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
13829 * marshal.c, marshal.h: start of marshaling interface.
13831 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
13833 * icall.c: fix order in assembly qualified name icall.
13835 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
13837 * class.c: do not free str, since we store it in the hash table.
13838 * reflection.h: add label field to MonoILExceptionInfo.
13839 * reflection.c: handle references to more than one assembly. Handle
13840 case when there isn't a module created in the assembly.
13842 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
13844 * class.c: Fix typo. Start refactoring of class init code.
13846 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
13848 * appdomain.c: exit with 1 on error.
13849 * class.c: we already have the name in MonoClassField.
13850 * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
13851 MonoStreamHeader instead of an offset of image->raw_metadata.
13853 2002-02-26 Miguel de Icaza <miguel@ximian.com>
13855 * appdomain.c (mono_init): Be even more descriptive about the error.
13857 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
13859 * appdomain.c: give the user an informative message when corlib can't
13862 2002-02-26 Martin Baulig <martin@gnome.org>
13864 * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
13865 New icall to get the time zone data.
13867 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
13869 * reflection.c: set virtual and raw size of section correctly.
13870 * threads.c: transfer domain information to newly created threads.
13872 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
13874 * class.c: when instancing a class in a domain, load the default
13875 vaules for static fields from the constant table. Fix System.Enum to
13877 * icall.c: implement Object::GetType() internalcall. Implemented
13878 MonoField::GetValue() internalcall. Avoid SEGV in search_method().
13879 Fixed checking of binding flags in find_members().
13880 * metadata.c, metadata.h: introduce mono_metadata_type_hash().
13881 * reflection.c: handle enumerations when writing to the constant
13882 table. Use a different object cache for types.
13885 2002-02-22 Dietmar Maurer <dietmar@ximian.com>
13887 * object.c (mono_object_isinst): fix for arrays
13889 * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
13891 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
13893 * object.c: don't use mprotect () and fix intern pool hash table
13894 lookup for big endian systems.
13896 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
13898 * icall.c: change type_is_subtype_of () signature.
13900 2002-02-21 Mark Crichton <crichton@gimp.org>
13902 * rand.c, rand.h: Added random number generator for
13903 System.Security.Cryptography classes.
13905 * exception.c, exception.h: Added mono_get_exception_not_implemeted.
13907 * icall.c: Added System.Security.Cryptography calls.
13909 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
13911 * class.c, icall.c, metadata.c: better support for pointer types.
13912 Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
13913 * reflection.c: Add support for getting custom attrs for properties
13914 and simplify some code.
13916 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
13918 * icall.c: change getToken () and add custom attribute GetBlob()helper
13920 * reflection.h: add custom attrs array to the reflection builder structures.
13921 * reflection.c: encode and emit custom attributes for all the relevant
13922 reflection objects. Cache fieldref and methodref tokens. Change
13923 mono_image_create_token() interface to take a MonoDynamicAssembly.
13924 More complete custom attributes decoder. Load custom attributes for
13925 Assembly, Field, Method and Constructor objects, too. Make the
13926 returned array an Attribute[] one, not object[]. Added
13927 mono_reflection_get_custom_attrs_blob() to encode the arguments of a
13928 custom attribute constructor.
13930 2002-02-20 Dick Porter <dick@ximian.com>
13934 * socket-io.c: Windows portability fixes (sometimes just ifdeffing
13935 problem code out for now).
13937 2002-02-19 Radek Doulik <rodo@ximian.com>
13939 * object.c (mono_ldstr): use hash table to avoid multiple swapping
13941 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
13943 * icall.c: register the GetCustomAttributes method.
13944 * object.c, object.h: add mono_string_new_len ().
13945 * reflection.h, reflection.c: added mono_runtime_invoke(),
13946 mono_install_runtime_invoke(). Added
13947 mono_reflection_get_custom_attrs () to load custom attributes and
13948 create the attribute objects.
13950 2002-02-19 Dick Porter <dick@ximian.com>
13951 * threads-dummy-types.c:
13952 * threads-dummy-types.h:
13955 * threads-pthread-types.c:
13956 * threads-pthread-types.h:
13957 * threads-pthread.c:
13958 * threads-pthread.h: Deleted obsolete files
13960 2002-02-19 Dietmar Maurer <dietmar@ximian.com>
13962 * class.c (mono_class_vtable): runtime init the class when we
13963 allocate static class data.
13965 * icall.c (ves_icall_System_Array_SetValue): check for null values.
13967 * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
13968 and String - but we will need generic marshalling support in the
13970 (mono_init): set the domain name in a ms compatible way
13972 * object.c (mono_string_new_utf16): bug fix: use char[] instead of
13975 2002-02-18 Dietmar Maurer <dietmar@ximian.com>
13977 * object.c (mono_array_clone): use alloca() instead of g_malloc
13980 * appdomain.c (mono_domain_unload): impl.
13982 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
13984 * appdomain.c, object.c: fix intern pool implementation.
13985 * class.c: fix alignment code.
13987 2002-02-16 Radek Doulik <rodo@ximian.com>
13989 * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
13990 and s2 > s1, just copy lower bytes to be compatible with little
13991 endian (i.e. 64bit value & 0xffffffff --> 32bit value)
13992 (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
13994 * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
13995 force big_endian to be 1 for big endian machines
13996 (ves_icall_iconv_new_decoder): ditto
13998 2002-02-16 Jeffrey Stedfast <fejj@ximian.com>
14000 * socket-io.c (convert_sockopt_level_and_name): If the system
14001 doesn't define SOL_IP or SOL_TCP, get them by hand using
14002 getprotobyname() and caching the values (because this could be a
14004 (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
14005 Use the appropriate struct when the system does support it. Ie,
14006 not all systems have struct ip_mreqn so use struct ip_mreq when
14009 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
14011 * reflection.c: handle finally clauses.
14013 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
14015 * socket-io.c: use g_snprintf() instead of snprintf.
14017 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
14019 * reflection.c (mono_param_get_objects): Cast second argument to
14020 mono_method_get_param_names to a const char** to silence the
14023 * appdomain.c (mono_domain_assembly_open): Put parens around the
14024 truth statement in the for-loop.
14026 * unicode.c (iconv_convert): Got rid of a compiler warning about
14027 int i being unused when the system has a new iconv.
14028 (iconv_get_length): Same.
14030 * image.c (load_class_names): Cast the second argument to
14031 g_hash_table_insert() to char* to hush compiler warnings about the
14033 (mono_image_open): Same here.
14035 * socket-io.c: Don't conditionally include sys/filio.h or
14036 sys/sockio.h here anymore since we now get them from
14037 io-layer/io-layer.h
14038 (inet_pton): If the system doesn't support inet_aton, implement
14039 using inet_addr and also #define INADDR_NONE if it isn't defined
14042 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
14044 * metadata.c, metadata.h: added function to get packing and size info
14046 * reflection.h, reflection.c: handle field RVA data. Save info about
14047 the table layout if needed. Assign typedef indexes to all the types
14048 before dumping the info about them to avoid forward reference problems.
14050 2002-02-14 Dietmar Maurer <dietmar@ximian.com>
14052 * socket-io.c (convert_sockopt_level_and_name): ifdef
14053 SO_ACCEPTCONN because it is not defined on my system (old debian)
14055 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14057 * opcode.c: use stddef.h to get NULL.
14059 2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
14061 * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
14062 for FIONBIO, FIONREAD and SIOCATMARK.
14063 (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
14064 define INADDR_NONE and besides, inet_addr() is deprecated and
14065 should not be used. Use inet_pton() instead - it also has the
14066 added bonus that it can easily handle IPv6 addresses as well.
14067 (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
14069 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
14071 * decimal.c: remove _MSC_VER conditional.
14073 2002-02-13 Dick Porter <dick@ximian.com>
14076 * icall.c: Internal calls for Blocking, Select, Shutdown,
14077 GetSocketOption and SetSocketOption
14079 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14081 * assembly.cs: better resolver: use it instead of some kludgy
14084 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
14086 * reflection.c: the best way to speed-up the compiler is to avoid
14089 2002-02-13 Dietmar Maurer <dietmar@ximian.com>
14091 * class.c (mono_class_vtable): changed the object layout
14092 (obj->vtable->class).
14093 (mono_class_create_from_typespec): consider MONO_TYPE_PTR
14095 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14097 * assembly.c: look for assemblies in the assembly dir, too.
14099 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14101 * class.c: fix thinko in mono_class_from_type().
14103 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14105 * exception.h, exception.c: added TypeLoadException.
14106 * object.h, object.c: added mono_array_clone ().
14107 * icall.c: handle throwOnError in AssemblyGetType().
14108 Added Array.Clone().
14109 * opcode.h, opcode.c: use a single value for the opcode val.
14110 Compile fix for non-gcc compilers.
14112 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
14114 * opcodes.c, opcodes.h: export interesting info about opcodes.
14116 2002-02-05 Dietmar Maurer <dietmar@ximian.com>
14118 * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
14121 * class.c (class_compute_field_layout): set element_class for enums
14122 (mono_class_create_from_typedef): set element_class for normal classes
14124 * icall.c (ves_icall_System_Enum_get_value): impl.
14126 * class.c (mono_class_create_from_typedef): do not set valuetype
14127 flag for System.ValueType and System.Enum
14129 2002-02-04 Dietmar Maurer <dietmar@ximian.com>
14131 * unicode.c (iconv_convert): fix big endian problem.
14133 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14135 * class.c: add asserts if we are ever going to scribble over memory.
14136 * socket-io.c: not all systems have AF_IRDA defined.
14138 2002-01-31 Dietmar Maurer <dietmar@ximian.com>
14140 * class.c (class_compute_field_layout): do not consider static
14141 fields to compute alignment
14143 2002-01-25 Dietmar Maurer <dietmar@ximian.com>
14145 * appdomain.c (mono_appdomain_get): impl.
14146 (ves_icall_System_AppDomain_ExecuteAssembly): impl.
14148 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14150 * icall.c: ignore "file://" prefix when loading an assembly.
14152 2002-01-23 Dick Porter <dick@ximian.com>
14156 * Makefile.am: Added socket support
14158 2002-01-23 Miguel de Icaza <miguel@ximian.com>
14160 * icall.c (ves_icall_appdomain_get_default_assemblies): put this
14161 code back. This should return the assemblies that are loaded by
14162 the runtime on behalf of an application domain.
14164 The current implementation is still broken, it just returns every
14165 assembly loaded, but until we get real applications domain this
14168 2002-01-23 Dietmar Maurer <dietmar@ximian.com>
14170 * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
14173 2002-01-23 Miguel de Icaza <miguel@ximian.com>
14175 * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
14176 the mono_class_from_name lookup.
14177 (ves_icall_get_parameter_info): ditto.
14178 (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
14180 (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
14182 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
14184 * class.c: load also nested classes on class init.
14185 System.ValueType instance methods gets passed boxed
14186 values, unless methods in derived classed that get a pointer to the
14188 * icall.c: use better name parsing code in GetType().
14189 * image.c, image.h: add mono_image_loaded ().
14190 * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
14191 * reflection.c, reflection.h: added mono_reflection_parse_type().
14193 2002-01-22 Veronica De Santis <veron78@interfree.it>
14195 * icall.c : Added mapping of internal calls for Manual and Auto reset events
14196 * threads.c : Added the implementation of internal calls for events
14197 * threads.h : Added prototypes of internal calls for events
14199 2002-01-21 Radek Doulik <rodo@ximian.com>
14201 * icall.c (ves_icall_InitializeArray): swap bytes on big endians
14203 2002-01-21 Dietmar Maurer <dietmar@ximian.com>
14205 * class.c (mono_class_init): set min_align to 1 (instead of 0)
14206 (mono_class_value_size): use min_align
14208 2002-01-20 Dick Porter <dick@ximian.com>
14211 * threads.c: Replaced all instances of WapiHandle * with HANDLE,
14212 so it compiles on w32.
14214 2002-01-17 Dietmar Maurer <dietmar@ximian.com>
14216 * metadata.c (mono_type_stack_size): impl.
14218 * class.c (mono_class_get_field): impl. memberref token
14220 2002-01-16 Veronica De Santis <veron78@@interfree.it>
14222 * icall.h : Added the internal calls mapping for CreateMutex_internal
14223 and ReleaseMutex_internal.
14224 * threads.h : Added the prototype of mutexes internal calls.
14225 * threads.c : Added the implementations of mutexes internal calls.
14227 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14229 * metaparse.h: removed unused file.
14230 * reflection.c, reflection.h: added stream_data_align () function
14231 to align data in streams and keep stream aligned. Add support for
14232 exception support in method headers.
14234 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
14236 * unicode.c: make iconv_convert () return the number of bytess written
14237 in the output buffer.
14239 2002-01-15 Dick Porter <dick@ximian.com>
14240 * threads.c: Make the runtime's idea of infinite timeouts coincide
14241 with the class library's
14243 Fix a particularly egregious bug in mono_thread_cleanup(). That
14244 code was so utterly bogus it must have been written on a Monday.
14246 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14248 * reflection.h: add subtypes field to TypeBuilder.
14249 * reflection.c: encode constants for literal fields.
14250 Handle subtypes. Fix user string token (and add a zero byte)
14253 2002-01-14 Dietmar Maurer <dietmar@ximian.com>
14255 * class.c (mono_class_init): bug fix: assign slot numbers for
14258 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14260 * reflection.c: don't try to output a code RVA for abstract methods.
14261 Small fixes for method header format. Output parameter info to the
14262 ParamDef table. Save method overriding info to MethodImpl table.
14263 Fix property support. Allow typedef.extends to be a type in the
14265 * verify.c: fix off-by-one error.
14267 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
14269 * class.c: fix mono_class_from_mono_type () for szarray types.
14270 Remove unused cache check in mono_class_from_type_spec().
14271 * icall.c: *type_from_name () functions handle simple arrays and byref.
14272 * reflection.c: handle byref and szarray types. Handle methods without
14273 body (gets P/Invoke compilation working). Handle types and fields in
14275 * reflection.h: add rank to MonoTypeInfo.
14277 2002-01-10 Dick Porter <dick@ximian.com>
14279 * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
14282 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14284 * icall.c: initialize class in type_from_handle ().
14285 Loop also in parent classes for get_method ().
14286 * reflection.c: properly encode class and valuetype types.
14287 Start on encoding TypeBuilder types. Handle fieldrefs.
14288 Use correct length when registering a user string.
14289 Handle ConstructorBuilder and MonoMethod in get_token ().
14290 Make mono_type_get_object () aware of cached types.
14291 * object.c: back out change to mono_string_new ().
14293 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
14294 * object.c: mono_string_new should return a NULL when the string
14295 passed in is NULL -- not try to deference it.
14297 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
14299 * icall.c: hack to make IsSubType work for TypeBuilders.
14300 * reflection.c: emit constructors before methods.
14301 Retrieve param names in mono_param_get_objects().
14303 2002/01/05 Nick Drochak <ndrochak@gol.com>
14305 * Makefile.am: fix list of headers and sources so automake 1.5
14306 doesn't complain. Removed \# at end of list.
14308 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14310 * reflection.c: get token for a method ref. Set return type of
14311 constructor to void.
14312 * loader.c: debug message.
14313 * class.c: typo fix.
14315 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
14317 * icall.c: fix array init with rank > 1. FindMembers
14318 loops in parent class as well.
14319 * image.c: do not insert nested types in name cache.
14320 * reflection.c: warning fix.
14321 * reflection.h: add override method (for interface impl).
14323 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
14325 * metadata.c: fix customattr decoding.
14327 2001-12-21 Miguel de Icaza <miguel@ximian.com>
14329 * rawbuffer.cs: Added native Win32 implementation, avoids using
14330 mmap on Cygwin. This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
14332 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
14334 * class.c: make the low-level routines handle the cache.
14336 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
14338 * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
14340 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
14342 * class.c: fix mono_array_element_size() for objects.
14343 * class.h, class.c: add properties to MonoClass and load them
14345 * icall.c: check with isinst() when assigning a value to an array
14346 instead of requiring the classes to match exactly.
14347 Implemented icall for System.Type::GetType().
14348 Implemented icalls to get ParameterInfo, ProprtyInfo and info about
14349 enums. Handle bindingflags when looking for methods and fields.
14350 * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
14351 and mono_metadata_methods_from_property().
14352 * reflection.h, reflection.c: added structures for propreties,
14353 parameters and enums. Implemented mono_property_get_object() and
14354 mono_param_get_objects().
14356 2001-12-18 Dick Porter <dick@ximian.com>
14358 * file-io.c: Use mono_string_to_utf16() instead of
14359 mono_string_chars()
14361 * object.c: Added mono_string_to_utf16(), which copies the non
14362 NULL-terminated MonoString into a new double-null-terminated
14365 2001-12-17 Dietmar Maurer <dietmar@ximian.com>
14367 * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
14369 2001-12-16 Dietmar Maurer <dietmar@ximian.com>
14371 * file-io.c: raise exceptions if handle is invalid.
14373 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
14375 * assembly.c: yet another check for mscorlib.
14376 * class.c, class.h: load nesting info for classes.
14377 * icall.c: many new functions to support the Reflection classes.
14378 * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
14379 * reflection.h, reflection.c: mono_image_create_token(),
14380 mono_assembly_get_object(), mono_type_get_object(),
14381 mono_method_get_object(), mono_field_get_object(): methods to return
14382 objects that parallel the C representation of assemblies, types,
14385 2001-12-11 Dick Porter <dick@ximian.com>
14388 * file-io.c: Internal calls for file IO.
14390 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
14392 * tabledefs.h: missing FileAttributes.
14393 * verify.h, verify.c: use is_valid_string () to simplify and check for
14394 valid strings more correctly. Fix warnings and speeling.
14395 Check more tables: Filed, File, ModuleRef, StandAloneSig.
14396 Check code: branches, maxstack, method calls.
14398 2001-12-04 Dietmar Maurer <dietmar@ximian.com>
14400 * object.c (mono_object_allocate): removed static, so that the jit
14401 can allocate value types.
14403 * icall.c (ves_icall_System_DateTime_GetNow): impl.
14405 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14407 * class.c: init enum types right away and register the
14408 token->MonoClass map in mono_class_create_from_typedef ().
14409 * verify.h, verify.c: first cut of the verifier.
14410 * pedump.c: add --verify switch to verify metadata tables.
14411 * tabledefs.h: add some missing enums.
14413 2001-11-30 Dietmar Maurer <dietmar@ximian.com>
14415 * class.c (mono_install_runtime_class_init): impl.
14416 (mono_class_init): renamed mono_class_metadata_init to
14417 mono_class_init, also removed the metadata_inited flag
14419 * object.c (mono_object_isinst): use faster algorithm
14421 2001-11-30 Radek Doulik <rodo@ximian.com>
14423 * mono-endian.h: reverted last change
14424 added function prototypes
14426 * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
14427 add mono-endian.c back
14429 * mono-endian.c: returned back, as Paolo pointed out, it's needed
14430 for unaligned access, I've mistaked it with endianess. I am
14432 (mono_read16): fix reverted endianess
14433 (mono_read64): ditto
14434 (mono_read32): ditto
14436 2001-11-30 Dick Porter <dick@ximian.com>
14438 * exception.c: Implement mono_exception_from_name()
14440 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14442 * metadata.h, metadata.c: remove params_size and locals_size and their
14443 calculation from the metadata code: they are only usefult to the
14446 2001-11-29 Radek Doulik <rodo@ximian.com>
14448 * object.c (mono_ldstr): swap bytes here, it's probably not the
14449 best place, but works for me now, I'll redo it once I know mono
14450 better, also note that I add PROT_WRITE and don't reset back, also
14451 note that it's only affects big endians, so x86 should be OK
14453 * mono-endian.h (read16): use just glib macros for both endians
14455 * mono-endian.c: removed as glib macros are used in in
14456 mono-endian.h so we don't need to care about endianess for read
14457 macros as glib does that for us already
14459 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
14461 * class.h, class.h: take minimum alignment into consideration so
14462 that the fields of a class remain aligned also when in an array.
14464 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14466 * loader.h, loader.c: add mono_method_get_param_names().
14467 * class.c: 0-init class fields.
14469 2001-11-26 Dick Porter <dick@ximian.com>
14473 * threads.c: New file that handles System.Threading on all platforms
14476 * object.h: Remove the synchronisation struct from MonoObject,
14477 replace it with a pointer that gets initialised on demand
14479 * Makefile.am: Replace all the system-specific threading code with
14480 a single file that uses the new wrapper library
14482 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
14484 * class.c, class.h: add mono_install_trampoline() so that the runtime
14485 can register a function to create a trampoline: removes the ugly
14486 requirement that a runtime needed to export arch_create_jit_trampoline.
14487 * object.h, object.c: added mono_install_handler() so that the runtime
14488 can install an handler for exceptions generated in C code (with
14489 mono_raise_exception()). Added C struct for System.Delegate.
14490 * pedump.c: removed arch_create_jit_trampoline.
14491 * reflection.c: some cleanups to allow registering user strings and
14492 later getting a token for methodrefs and fieldrefs before the assembly
14494 * row-indexes.h: updates and fixes from the new ECMA specs.
14496 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
14498 * class.h, class.c: add enum_basetype field to MonoClass.
14499 * metadata.h, metadata.c: add mono_metadata_get_constant_index()
14500 to get index in the constant table reated to a field, param or
14502 * reflection.h, reflection.c: handle constructors. Set public-key and
14503 version number of the built assembly to 0.
14504 * row-indexes.h: update from new ECMA spec.
14506 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14508 * class.h, class.c: add a max_interface_id to MonoClass.
14509 * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
14510 since it's used to do that. Added mono_type_type_from_obj().
14511 Make GetType() return NULL instead of segfaulting if the type was not
14512 found. Handle simple arrays in assQualifiedName.
14513 * object.h: add a struct to represent an Exception.
14514 * reflection.c: output call convention in method signature.
14515 Add code to support P/Invoke methods and fixed offsets for fields.
14517 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
14519 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
14521 * icall.c: use mono_array_addr instead of array->vector: fixes the
14522 reflection image writing.
14523 * reflection.c: init call convention byte to 0 in method signature.
14524 Encode the property signature. Don't output property-related methods
14525 twice. Really process the properties for a type (don't cast a field to
14526 a property, my mom always told me that).
14527 Fix 64 bit issues in pointer alignment in a different and more
14530 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
14532 * loader.h: Removed type class from MonoDefaults, added monotype
14534 * loader.c: Loaded MonoType, removed loading of Type
14536 * icall.c (my_mono_new_object): Now returns a System.MonoType,
14537 and fills in System.Type._impl with a RuntimeTypeHandle rather
14538 than the actual MonoClass *
14540 (ves_icall_type_from_handle): change from type_class to
14543 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
14546 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
14549 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
14551 (ves_icall_System_Reflection_Assembly_GetType): implemented
14553 (ves_icall_System_MonoType_assQualifiedName): implemented
14555 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
14557 2001-11-09 Miguel de Icaza <miguel@ximian.com>
14559 * assembly.c (mono_assembly_open): Implement a cache for the
14562 (mono_assembly_close): only destroy the assembly when the last
14565 2001-11-09 Dick Porter <dick@ximian.com>
14567 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
14569 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
14571 * class.c (mono_class_metadata_init): bug fix: compute the right slot
14573 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14575 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
14576 from Martin Weindel.
14577 * object.h: add mono_string_chars ().
14579 2001-11-07 Miguel de Icaza <miguel@ximian.com>
14581 * reflection.c (build_compressed_metadata): Eliminates warnings
14582 and uses 64-bit clean code.
14584 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
14585 (mono_type_equal): Change signature to eliminate warnings.
14587 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14589 * icall.c, loader.c: remove the internalcall array constructors.
14590 Changes to match the new MonoArray structure.
14591 * object.h, object.c: an array object doesn't allocate an extra
14592 vector. Add mono_array_new_full () to create jagged arrays easily.
14594 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14596 * metadata.h, metadata.c: add mono_metadata_field_info () to
14597 retreive all the info about a field from vairous tables.
14598 * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
14599 * class.h, class.c: augment MonoClassField with more info.
14600 Implemented mono_ldtoken for fields. Implemented ExplicitLayout
14601 policy and load a field's RVA if needed.
14603 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
14605 * class.c (mono_class_metadata_init): create a trampoline for all
14606 virtual functions instead of actually compiling them.
14608 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
14610 * class.h, class.c: include name in MonoClassField.
14611 * class.c: fix fundamental type of System.Object and System.String.
14612 Set the right fundamental type for SZARRAY, too. Handle TypeSpec
14614 * icall.c: remove internalcalls for the Reflection stuff that is now
14616 * loader.c: mono_field_from_memberref () implementation.
14617 * mono-endian.c: thinko (s/struct/union/g).
14618 * object.c, object.h: make the mono_string_* prototypes actually use
14619 MonoString instead of MonoObject.
14620 * reflection.c, reflection.h: updates for changes in the reflection
14621 code in corlib: we use C structures that map to the actual C# classes.
14622 Handle SZARRAYs when encoding types. Handle locals in methods. Use a
14623 fat method header if needed and use the info from the ILGenerator for
14624 methods. Handle fields in types. Misc fixes.
14626 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
14628 * class.c (mono_class_metadata_init): bug fix: always allocate
14629 space for static class data
14631 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
14633 * class.c (mono_compute_relative_numbering): use relative
14634 numbering to support fast runtime type checks.
14636 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
14638 * class.c (mono_class_create_from_typeref): added debugging output
14639 to print class name when MonoDummy is returned instead of real class
14641 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
14643 * class.c (mono_class_metadata_init): interface offset table now
14644 contains pointers into the vtable - this is more efficient for the jit
14646 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
14648 * class.c (mono_class_metadata_init): use a temporary vtable (the
14649 old algorithm only worked for the interpreter, but not for the jit)
14651 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
14653 * loader.c (method_from_memberref): use mono_class_get to get the
14654 class of an array instead of using System.Array directly.
14655 (mono_get_method): also add MEMBERREF methods to the method cache
14656 which usefull for arrays.
14658 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
14660 * pedump.c (arch_compile_method): added to compute vtable entry
14662 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
14663 number of interfaces.
14665 * class.h: merged MonoArrayClass into MonoClass
14667 * class.c (mono_class_create_from_typedef): compute the vtable size and
14668 allocate space to include the vtable inside MonoClass
14669 (mono_class_metadata_init): initialize the vtable
14671 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
14673 * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
14674 Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
14675 * image.c: endian fixes by Laurent Rioux.
14676 * object.h, object.c: rename MonoStringObject to MonoString and
14677 MonoArrayObject to MonoArray. Change some function names to conform to
14678 the style mono_<object>_<action>. mono_string_new_utf16 () takes a
14679 guint16* as first argument, so don't use char*.
14680 Provide macros to do the interesting things on arrays in a portable way.
14681 * threads-pthread.c: updates for the API changes and #include <sched.h>
14682 (required for sched_yield()).
14683 * icall.c: updates for the API changes above.
14684 * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
14685 platforms that need them.
14687 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
14689 * class.c: set the correct type for all the fundamental
14690 type when loading the class.
14692 2001-10-05 Dick Porter <dick@ximian.com>
14694 * threads-pthread.c (pthread_mutex_timedlock): Simple
14695 compatibility version for C libraries that lack this call.
14697 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
14699 * class.c: MonoTypes stored in MonoClass are stored as
14700 fundamental MonoTypes when the class represents a
14701 fundamental type (System.Int32, ...).
14702 The TypeHandle return by ldtoken is a MonoType*.
14703 * icall.c: ves_icall_get_data_chunk () write out all the
14704 PE/COFF stuff. Implement ves_icall_define_method (),
14705 ves_icall_set_method_body (), ves_icall_type_from_handle ().
14706 * image.c: properly skip unknown streams.
14707 * loader.h, loader.c: add type_class to mono_defaults.
14708 * metadata.c, metadata.h: export compute_size () as
14709 mono_metadata_compute_size () with a better interface.
14710 Typo and C&P fixes.
14711 * pedump.c: don't try to print the entry point RVA if there is no entry point.
14712 * reflection.c, reflection.h: many cleanups, fixes, output method
14713 signatures and headers, typedef and typeref info, compress the metadata
14714 tables, output all the heap streams, cli header etc.
14715 * row-indexes.h: typo fixes.
14717 2001-10-04 Dick Porter <dick@ximian.com>
14719 * object.h: Add a synchronisation mutex struct to MonoObject
14721 * object.c (mono_new_object): Initialise the object
14722 synchronisation mutexes
14724 * icall.c: System.Threading.Monitor internal calls
14726 * threads-pthread.h:
14727 * threads-pthread.c: System.Threading.Monitor internal calls
14729 * threads-types.h: New file, includes the system-specific thread
14732 * threads-pthread-types.h:
14733 * threads-pthread-types.c: New files, handle pthread-specific
14734 synchronisation types
14736 * threads-dummy-types.h:
14737 * threads-dummy-types.c: New files of dummy support for
14738 thread-specific types
14742 * pedump.c: include mono-endian.h not endian.h
14744 * Makefile.am: More threads files.
14745 Name mono-endian.h not endian.h
14747 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
14749 * Makefile.am, reflection.h, reflection.c: move here the reflection related
14750 stuff and implement a few more bits.
14751 * icall.c: a field needs to be dereferenced twice. Do not use the same
14752 name for two variables in the same scope.
14753 * image.c, image.h: cleanups.
14755 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
14757 * class.c (mono_class_metadata_init): bug fix: compute the right size
14759 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
14761 * icall.c: implemented some of the Reflection internalcalls.
14762 * image.c, image.h: start writing out the PE/COFF image.
14763 * metadata.h, metadata.c: implement mono_metadata_encode_value ()
14764 that does the reverse than decode_blob_size ().
14765 * object.c: use mono_metadata_encode_value (). Move here
14766 temporary implementation of mono_string_to_utf8 ().
14767 * rawbuffer.c: make malloc_map static.
14769 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
14771 * metadata.c: fix type comparison for arrays.
14772 * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
14773 Added a couple of new classes to monodefaults.
14774 * icall.c: added a couple of Reflection-related internalcalls.
14775 * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
14776 Added a byval_arg MonoType to MonoClass.
14778 2001-09-28 Dick Porter <dick@ximian.com>
14781 * threads-pthread.h:
14782 * threads-pthread.c: Implemented internal calls for
14783 LocalDataStoreSlot operations. Applied mutexes around all shared
14784 data. Reworked the thread creation and Start() operations to
14785 avoid a race condition.
14788 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
14790 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
14792 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
14794 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
14796 * class.c, loader.c: warn and return NULL instead of erroring out.
14797 * icall.c: added System.AppDomain::getCurDomain().
14798 * loader.c: we don't need to lookup the typedef again for p/invoke calls.
14800 2001-09-25 Dick Porter <dick@ximian.com>
14802 * threads-pthread.h:
14803 * threads-pthread.c: Implemented timed thread joining and added
14804 System.Threading.Thread::Join_internal internal call
14806 * icall.c: Added System.Threading.Thread::Join_internal internal call
14809 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
14811 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
14813 * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
14814 mono_string_intern () to implement the semantics of the ldstr opcode
14815 and the interning of System.Strings.
14816 * icall.c: provide hooks to make String::IsIntern and String::Intern
14819 2001-09-23 Dick Porter <dick@ximian.com>
14822 * threads-dummy.h: New files of dummy threading routines
14824 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
14825 support code based on system specifics
14827 Rename PTHREAD_LIBS to THREAD_LIBS
14829 2001-09-23 Dick Porter <dick@ximian.com>
14831 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
14832 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
14834 (mono_thread_init): Set up a Thread object instance to return when
14835 the main thread calls Thread.CurrentThread
14836 (mono_thread_cleanup): Wait for all subthreads to exit
14838 * icall.c: New internal calls for System.Threading.Thread::Sleep
14839 (including Schedule) and CurrentThread
14841 * threads.h: New file, to insulate thread-specific stuff from the
14844 2001-09-21 Dick Porter <dick@ximian.com>
14846 * threads-pthread.h:
14847 * threads-pthread.c: New file, for handling pthreads-style
14848 threading support. Start() now starts a new thread and executes
14849 the ThreadStart delegate instance.
14851 * icall.c: Added the internalcall for
14852 System.Threading.Thread::Start_internal
14854 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
14856 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
14858 * loader.c: work around the different signatures for delegates
14859 constructors csc generates in compiled code vs the ones compiled in mscorlib.
14861 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
14863 * class.h, class.c: add mono_class_get_field_from_name ().
14864 * *: Fix C comments and other ANSI C issues.
14866 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
14868 * endian.h, assembly.c: fix some endianness issues.
14870 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
14872 * loader.h, load.c: add delegate_class to mono_defaults.
14873 Handle runtime provided methods in mono_get_method ().
14875 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
14877 * loader.c (mono_get_method): use pinvoke for internal call
14879 * icall.c: use pinvoke for internal call
14881 * loader.c (method_from_memberref): set the method name
14883 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
14885 * metadata.c: help the compiler generate better code for
14886 mono_class_from_mono_type ().
14888 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
14890 * class.c (mono_class_metadata_init): delayed computing of the
14891 class size to mono_class_metadata_init ()
14893 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
14895 * class.c, class.h: add an interfaces member to MonoClass.
14896 * image.c, image.h: add assembly_name field to MonoImage
14897 from the assembly table.
14898 * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
14900 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
14902 * class.c: Handle Array in mono_class_from_mono_type ().
14903 * metadata.c, pedump.c: some endian fixes.
14905 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
14907 * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
14908 * metadata.c: fix small problem introduced with the latest commit.
14910 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
14912 * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
14913 We don't need a MonoMetadata pointer anymore to compare signatures in
14914 mono_metadata_signature_equal (), update callers.
14915 Reduced memory usage an number of allocations for MonoMethodHeader and
14916 MonoMethodSignature.
14918 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
14920 * metadata.c: added compare for szarray.
14922 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
14924 * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
14925 and add a couple more types to it and mono_defaults. Give an hint on
14926 classes that need implementing in our corlib and are referenced
14929 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
14931 * class.h, class.c: keep track if a class is also an Enum.
14932 * loader.c: Implement a couple more types for use in libffi
14933 marshalling. Gives better diagnostics when failing to dlopen
14934 a library. Set method->klass for P/Invoke methods, too.
14936 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
14938 * class.c, class.h: add a MonoType this_arg to MonoClass that
14939 represents a pointer to an object of the class' type that
14940 can be used by the interpreter and later the type cache.
14941 Add best guess alignment info for valuetype objects.
14943 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
14945 * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
14946 into MonoType: one less level of indirection and allocation and
14947 simplifies quite a bit of code. Added cache for MonoTypes that are
14948 used frequently, so that we don't need to allocate them all the time.
14950 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
14952 * class.c (mono_class_create_from_typedef): System.Enum is also a
14953 value type, although it does not derive from System.ValueType
14954 (maybe a bug in the ms compiler?)
14956 * metadata.c (mono_type_size): return the right size for value types
14958 * loader.c (mono_get_method): only initialize method header if not abstract
14960 * class.c (mono_class_from_mono_type): use mono_default values.
14962 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
14964 * *: use MonoClass pointers instead of <type_tokens>
14966 * class.h: new flag: metadata_inited.
14968 * class.c (mono_class_metadata_init): impl.
14969 (mono_class_instance_size): impl.
14970 (mono_class_data_size): impl.
14972 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
14974 * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
14975 MonoClass now has the name and name_space fields.
14976 MonoMethod has a pointer to its MonoClass, instead of MonoImage.
14977 mono_get_method () takes and optional MonoClass as argument.
14978 Removed mono_typedef_from_name() and added mono_class_token_from_name()
14979 instead that takes advantage of a map from class names to typedef
14980 tokens in MonoImage.
14982 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
14984 * metadata.c: zero is not a valid alignment boundary.
14985 Merge MONO_TYPE_VOID in default decoding code.
14987 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
14989 * image.h: merged MonoMetadata into MonoImage
14991 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
14992 identify the type of elements.
14994 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
14996 * blob.h: fix MONO_TYPE_TYPEDBYREF value.
14997 * cil-coff.h: split MonoMSDOSHeader and add size info.
14998 * image.c: add some consistency checks.
14999 * metadata.c: fix row size computation: one programmer
15000 error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
15001 add explanation for the locator routine.
15002 Fix decoding of size in method header.
15004 2001-08-20 Miguel de Icaza <miguel@ximian.com>
15006 * assembly.c (g_concat_dir_and_file): Use _S for string concat.
15007 (g_concat_dir_and_file): Bring g_concat_dir_and_file
15008 function from gnome-libs. This uses the right path separator
15009 based on the OS, and also works around a bug in some systems where
15010 a double slash is not allowed.
15011 (default_assembly_name_resolver): Use g_concat_dir_and_file
15012 (mono_assembly_open): ditto.
15014 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
15016 * metadata.c (mono_metadata_signature_equal): impl.
15018 * *: void is now a realy MonoType (instead of using NULL)
15020 * metadata.c (do_mono_metadata_parse_type): use
15021 mono_metadata_parse_type to parse void value.
15023 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
15025 * metadata.c, metadata.h: in the signature and method header store
15026 only the space required for holding the loca vars and incoming arguments.
15028 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
15030 * metadata.c (do_mono_metadata_parse_type): treat void like any
15031 other type (instead of assigning NULL);
15033 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
15035 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
15037 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
15039 * image.c (do_mono_image_open): added a cache for arrays.
15041 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15043 * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
15044 decode a single column from a row in a metadata table and changes
15045 to take advantage of it in the typedef locator (gives a nice speed up).
15046 Store offset info for function params.
15048 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
15050 * image.h (MONO_IMAGE_IS_CORLIB): removed
15052 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
15054 * assembly.c: how could mono_assembly_close () had ever worked?
15055 * metadata.c, metadata.h: provide offset info for local vars.
15056 Implement mono_type_size () to take care of alignment as well
15057 as size (it was mono_field_type_size in cli/class.c before).
15059 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
15061 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
15063 * assembly.h (CORLIB_NAME): set to corlib.dll
15065 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
15067 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15069 * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
15070 cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
15071 tokentype.h: massive namespace cleanup.
15073 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15075 * metadata.h, metadata.c: decode exception clauses when parsing method header.
15077 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
15079 * metadata.c (mono_metadata_free_type): added check for type !=
15080 NULL (void) before calling mono_metadata_free_type()
15082 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
15084 * metadata.h, row_indexes.h: added header with enumerations to use
15085 to index in the columns from tables in metadata and to decode coded
15086 tokens: we should start using this instead of embedding magic numbers
15089 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
15091 * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
15092 Move metadata_t info from cli_image_info_t to MonoImage, where
15093 it's easily accessible. Changed all the uses accordingly.
15094 Added the method and class caches to MonoImage.
15095 * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
15096 and mono_metadata_decode_value () signature to be more consistent
15097 with the other parse functions (and simplify code). Taken advantage
15098 of zero-length array allocation with GCC. Removed reduntant (and
15099 wrong) MonoFieldType struct and use MonoParam instead. Changed
15100 mono_metadata_parse_field_type () to use common code for parsing.
15101 Added mono_metadata_typedef_from_field () and
15102 mono_metadata_typedef_from_method () to lookup a typedef index from a
15103 field or method token.
15104 Pack the MonoRetType structure more tightly (fits in 8 bytes now).
15106 2001-07-23 Miguel de Icaza <miguel@ximian.com>
15108 * metadata.c (mono_metadata_parse_field_type): Implement.
15109 (do_mono_metadata_parse_type): Split engine from
15110 mono_metadata_parse_type, so that we can create smaller structures
15111 for things that just have one pointer to the MonoType (look at
15114 2001-07-20 Miguel de Icaza <miguel@ximian.com>
15116 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
15117 as Jan Gray found out, it is incorrect.
15119 2001-07-18 Miguel de Icaza <miguel@ximian.com>
15121 * assembly.c: Implement asssembly loading. This loads an image
15122 and loads all the referenced assemblies. Come to think of it, we
15123 could always do lazy loading of the assemblies.
15125 * image.c (mono_image_open): Keep loaded images in a hashtable.
15127 * image.h (MonoImage): Add reference count.
15129 2001-07-17 Miguel de Icaza <miguel@ximian.com>
15131 * assembly.c (mono_assembly_open): Keep track of the file name in
15132 case the assembly has no ASSEMBLY table.
15134 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
15137 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
15139 * metadata.c, metadata.h: decode local vars in method header
15140 parse function. Change callers accordingly.
15142 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
15144 * metadata.h, cil-coff.h: protect against multiple inclusion.
15145 Added some new structures to hold information decoded from metadata:
15146 MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
15147 and relevant decoding/free functions.
15148 * metadata.c: implement decoding functions. Add warning for out of bounds
15149 index in mono_metadata_locate(). Implement mono_get_method () to retreive
15150 all the info about a method signature and invocation. Remove check on
15151 uninitialized local var in parse_mh() and fix memory leak.
15153 2001-07-12 Miguel de Icaza <miguel@ximian.com>
15155 * metadata.h: More macros.
15157 * tokentype.h: New file.
15159 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
15161 * assembly.c: added a consistency check and initialize
15162 some structures with g_new0().
15163 * metadata.c: fixed a couple more bugs in table size computation
15164 and add other checks for out-of bound access to metadata.
15166 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
15168 * metatada.c: fix bugs computing table sizes. Spew a
15169 warning when index in string heap is out of bounds.
15171 2001-07-04 Miguel de Icaza <miguel@ximian.com>
15173 * metadata.h: Add a couple of macros to manipulate tokens.
15175 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15177 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
15178 cli_section_tables).
15180 2001-07-01 Miguel de Icaza <miguel@ximian.com>
15182 * metadata.c (mono_metadata_user_string): New function, provides
15183 access to the UserString heap.
15185 2001-06-27 Miguel de Icaza <miguel@ximian.com>
15187 * metadata.c: Add inline documentation.
15189 2001-06-26 Miguel de Icaza <miguel@ximian.com>
15191 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
15194 2001-06-22 Miguel de Icaza <miguel@ximian.com>
15196 * typeattr.h: New file, TypeAttribute flags.
15198 2001-06-21 Miguel de Icaza <miguel@ximian.com>
15200 * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
15201 mono_assembly_ensure_section): Section loading code.
15202 (load_section_tables): Load the sections.
15204 * mono/metadata/metadata.c (mono_metadata_locate_token,
15205 mono_metadata_locate): Functions to locate the information
15206 definition given a token or a table and an index.
15207 (mono_metadata_compute_table_bases): New.
15208 (compute_size): New function to compute the sizes of the various
15211 * mono/metadata/metadata.h: Finish listing the different index
15214 * mono/metadata/pedump.c: Improve to dump new information.
15216 2001-06-19 Miguel de Icaza <miguel@ximian.com>
15218 * mono/metadata/metadata.c: Entered all the tables matching
15221 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2