2005-06-09 Duncan Mak <duncan@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2005-06-09  Duncan Mak  <duncan@novell.com>
2
3         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
4         all public headers. Fixes #74919.
5
6 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7
8         * domain.c: The key for proxy_vtable_hash is now a pointer
9         array. Added new GHashFunc and GCompareFunc functions for this.
10
11         * class.h: The list of interfaces in MonoRemoteClass is known in
12         advance and can't grow (we create a new MonoRemoteClass if needed),
13         so now the interface array can be allocated together with
14         MonoRemoteClass.
15         
16         * object.c: Added a new method create_remote_class_key.
17         Fixed mono_remote_class so it does not depend on
18         mono_upgrade_remote_class.
19         Removed extend_interface_array.
20         Added new method clone_remote_class(), which makes a copy of a remote
21         class and adds a new interface or class to it.
22         mono_upgrade_remote_class() now creates a new remote class (or gets
23         it from the cache) if an vtable upgrade is needed. In this way
24         we make sure that other objects sharing the same remote class
25         don't get the new vtable with unwanted interfaces.
26         
27         * object-internals.h:
28         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
29         
30         * marshal.c: Track changes in mono_upgrade_remote_class().
31
32 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
33         * icall.c: Add runtime methods for obtaining members of inflated
34         class, which were created from supplied non-inflated members. It
35         is used in internal Get{Method,Constructor,Field} methods in
36         System.Type
37
38 2005-06-09  Martin Baulig  <martin@ximian.com>
39
40         * reflection.c
41         (mono_reflection_bind_generic_method_parameters): Fix #75169.
42
43 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
44         * reflection.c (mono_image_basic_init): Define
45         Version in MonoDynamicAssembly. 
46         
47 2005-06-08  Martin Baulig  <martin@ximian.com>
48
49         Fix #75136.
50
51         * loader.c
52         (mono_method_signature_full): New public method; takes a
53         `MonoGenericContext *'.
54         (find_method): Use mono_method_signature_full() and pass the
55         klass'es context to it.
56
57         * class.c (mono_class_is_inflated_method): Use
58         mono_method_signature_full() and pass the context to it.
59
60 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
61
62         * object.c: add proper locking in mono_remote_class_vtable(),
63         fixes possible memory corruption.
64
65 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
66
67         * marshal.c (mono_remoting_marshal_init): set
68         initialized after initialization.
69
70 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
71
72         * locales.c : hush.
73
74 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
75
76         * object.c (extend_interface_array): fix really silly
77         memory corrupting / comparison bug.
78
79 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
80
81         * reflection.c: Functions added to support the creation
82         of CustomAttributeData, which includes Attribute data
83         used by ReflectionOnly methods.
84
85         * reflection.h:  mono_reflection_get_custom_attrs_data and
86          mono_custom_attrs_data_construct added (functions exposed).
87
88          * icall.c: Added mono_reflection_get_custom_attrs_data
89          as icall.
90         
91 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
92
93         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
94         lupus's request.
95
96 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
97
98         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
99
100         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
101         dynamic DllImportAttribute.
102
103         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
104         dynamic DllImportAttribute.
105
106         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
107         Fixes #75162.
108
109 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
110
111         * threads.c: avoid segfault when an unstarted thread is aborted.
112
113 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
114
115         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
116         Returns the name and version of the runtime for reporting.
117
118 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
119
120         * appdomain.c: bump corlib version.
121         * object-internals.h: new field in MonoReflectionAssembly.
122
123 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
124
125         * object-internals.h: Carlos forgot to add this field.
126
127 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
128
129         * icall.c: Added create_version to create instances
130         of Version of MonoReflectionAssemblyName. This change helps
131         the AssemblyName tests to keep running fine.
132         
133 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
134   
135         * object.c (mono_method_return_message_restore): A somehow less
136         intrusive fix for #75138.
137
138 2005-06-03  Raja R Harinath  <rharinath@novell.com>
139
140         * object.c (mono_method_return_message_restore): Fix computation
141         of expected number of out args.
142
143 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
144
145         * reflection.c (mono_image_get_method_info): Fix the case when the
146         charset is empty.
147
148 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
149
150         * object.c: Added missing null check in
151           mono_method_return_message_restore.
152
153 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
154
155         * reflection.c (mono_image_get_method_info): Handle the case when
156         dllentry is empty.
157
158 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
159
160         * object.c: When creating the vtable for a proxy, take into account
161         all inherited interfaces, not only the ones registered in
162         iclass->interfaces. This fixs bug #74996.
163         Also, in mono_method_return_message_restore, verify that the array
164         of out args has the expected lengh.
165
166 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
167
168         * socket-io.c: update the timeout in Poll when the call is interrupte.
169
170 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
171
172         * socket-io.c: support abort/suspend in Select_internal after last
173         change.
174
175 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
176
177         * threadpool.c: remove warning.
178
179 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
180
181         * icall.c:
182         * socket-io.[ch]: Select_internal uses poll() now when available, thus
183         removing the 1024 limit from select(). Runtime part of the fix for
184         bug #71203.
185
186 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
187
188         * socket-io.c: when resolving the addresses for the same
189         host returned by gethostname(), get the local IPs from the interface
190         list. Loopback addresses are discarded if the are interfaces up with
191         non-loopback ones. Fixes bug #63265.
192
193 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
194
195         * appdomain.c, verify.c, object-internals.h, reflection.c:
196         bumped corlib number to 36, and added new extra_flags field
197         to ReflectionMethodBuilder and friends.  Fixes #75060.
198
199 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
200
201         * gc.c: register a new weak link only if the object is non-null
202         (fixes bug#75047).
203
204 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
205
206         * culture-info.h : short time pattern too.
207
208 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
209
210         * culture-info.h : expand long time pattern string length.
211
212 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
213
214         * culture-info-table.h : update (more French date format; #72788).
215
216 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
217
218         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
219         the method is static. Fixes #75029.
220
221 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
222
223         * reflection.c: Update the table_idx field of method builders after
224         saving the module, since it can change. This is a workaround for
225         bug #74914. 
226
227 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
228
229         * culture-info-table.h : update (additional French date format).
230
231 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
232
233         * icall.c (ves_icall_type_Equals): Revert last change.
234         
235         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
236
237         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
238
239 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
240
241         * class-internals.h: Added executioncontext_class field to 
242         MonoDefaults structure.
243         * domain.c: Cache System.Threading.ExecutionContext class in 
244         mono_defaults.
245         * object.c: Capture the ExecutionContext for asynchroneous calls in
246          mono_async_result_new.
247         * object-internals.h: Added execution_context and original_context 
248         fields to MonoAsyncResult. Added execution_context to MonoThread.
249         * security-manager.c|.h: Added mono_get_context_capture_method to 
250         return the capture method (if required by the security manager or by
251         the framework version used).
252         * threadpool.c: Apply capture (if present) ExecutionContext in 
253         mono_async_invoke and revert to original context after it completes.
254
255 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
256
257         * culture-info-table.h : updated (real hacky solution for zh-CHT).
258
259 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
260
261         * culture-info-table.h : zh-CHT related workaround.
262
263 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
264
265         * marshal.c (emit_marshal_custom): Add some error checking and call the
266         methods in the ICustomMarshaler interface. Fixes #74875.
267         
268         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
269         native->managed wrappers.
270
271 2005-05-12  Martin Baulig  <martin@ximian.com>
272
273         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
274         here and use the loader lock.
275
276         * mono-debug.c: Properly lock when the debugger is not attached.
277         (mono_debug_init): Release the initial lock if we're not running
278         in the debugger.
279
280 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
281
282         * marshal.c (emit_marshal_custom): Pass through NULL values without
283         calling the custom marshalling routines.
284
285         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
286         conversion in structures. Fixes #74882.
287
288 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
289
290         * culture-info-table.h : zh-* cultures were missing.
291
292 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
293
294         * threads.c: Added a new event background_change_event which is signaled
295         when a thread changes its background mode.
296         Moved here several checks previously done in managed code. The checks
297         require the thread lock, and using the thread lock in managed code
298         can result in deadlocks.
299         Merged Start_internal and Thread_internal into a single method. Now 
300         Thread_internal does all work of creating and starting a thread.
301         Added icalls for setting and getting the state of the object. Moved from
302         managed code to avoid locking there.
303         Added wait_for_tids_or_state_change() which is called instad of
304         wait_for_tids when waiting for non-backround threads to end. This method
305         will return if one of the threads ends or the background_change_event
306         is signaled.
307         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
308         the background mode. This method signals the background_change_event
309         event.
310         * icall.c:
311         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
312         removed Start_internal.
313         
314 2005-05-11  Martin Baulig  <martin@ximian.com>
315
316         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
317         to order of some fields to get proper alignment on 64-bit machines.
318
319 2005-05-11  Martin Baulig  <martin@ximian.com>
320
321         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
322         changes as they're broken and completely fuck up the debugger.
323
324         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
325
326 2005-05-10  Martin Baulig  <martin@ximian.com>
327
328         * reflection.c (mono_reflection_generic_class_initialize): Don't
329         call mono_class_setup_parent() here.
330
331 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
332
333         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
334         send/receive timeout use an integer in milliseconds. We were using a
335         struct timeval.
336
337 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
338
339         * locales.c:
340         (internal_get_cultures): reserve the first slot of the array for the
341         InvariantCulture, which will be filled in managed code.
342
343 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
344
345         * reflection.c (mono_image_fill_module_table): Initialize the
346         GENERATION field as well.
347
348 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
349
350         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
351         Monitor.Enter on the object.
352
353 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
354
355         * threads.c: Enable the wait for running threads when exiting.
356         * icall.c: Suspend all threads before exiting.
357
358 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
359
360         * assembly.c (mono_assembly_load_reference): Fix warning.
361
362 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
363
364         * threadpool.c: changed the default number of threads per cpu. From now
365         on, the default will be 20 + (5 * number of cpus) instead of 50.
366
367 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
368
369         * loader.c (mono_method_get_signature_full): Add locking here.
370
371 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
372
373         * appdomain.c: Moved methods for parsing and freeing assembly
374         names to assembly.c.
375         * assembly.c, domain-internals.h: Created public methods for parsing
376         assembly names. Fixed mono_assembly_load_with_partial_name:
377         it now finds the best match, taking into account the version,
378         token and culture specified in the partial name. Also return
379         the latest version if no version information is specified.
380
381 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
382
383         * threadpool.c: replace check for SocketAsyncCall class.
384
385 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
386
387         * threadpool-internals.h:
388         * Makefile.am: added threadpool-internals.h
389
390         * threadpool.c: call mono_unhandled_exception on exceptions not handled
391         that happen in threadpool threads (tested on MS).
392         (mono_thread_pool_remove_socket): new function that dispatch any pending
393         AIO call on a socket that is closing. By now only epoll really needs it,
394         as select/poll wake up when the socket closes.
395
396
397         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
398
399 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
400
401         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
402
403 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
404
405         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
406
407 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
408
409         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
410         has an abort request, convert it into a suspend request.
411
412 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
413
414         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
415         warning for the usage of `UnmanagedFunctionPointerAttribute' which
416         is not supported yet.
417
418 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
419
420         * image.c: register assemblies loaded from data (bundles) in the loaded
421         assemblies hash. Fixes bug #74772.
422
423 2005-04-29  Martin Baulig  <martin@ximian.com>
424
425         * class.c (mono_type_get_name_recurse): Update to the new naming
426         schema from the latest .NET 2.x beta2.
427         (mono_class_setup_vtable_general): If we're a generic instance,
428         copy the vtable from our generic type definition and inflate all
429         the methods in it.
430
431         * loader.c (find_method): Update to the new naming schema from the
432         latest .NET 2.x beta2.
433
434 2005-04-29  Raja R Harinath  <harinath@gmail.com>
435
436         * class.c (mono_class_init): Add a mono_loader_unlock to the
437         #74734 fix.
438
439 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
440
441         * icall.c (ves_icall_System_Environment_Exit): Remove the 
442         suspend_all_other_threads () call for the time being, since it can hang.
443
444         * threads.c (mono_thread_manage): Similarly, disable the waiting for
445         the background threads to exit, since it can also hang.
446
447         * class.c (mono_class_init): Applied patch from Ankit Jain 
448         (radical@gmail.com). Avoid pending init errors when a field refers
449         to a nested class using a typeref. Fixes #74734.
450
451         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
452         this for dynamic modules.
453
454 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
455
456         * threads.c: don't wait for threads that are in the process of aborting
457         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
458         and waiting for background threads to finish. This makes xsp and
459         mod-mono-server exit without random length delays and/or hangs.
460
461 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
462
463         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
464
465 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
466
467         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
468         dynamic types to prevent infinite loops. Fixes #74727.
469
470         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
471         ..._is_assignable_to.
472
473 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
474
475         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
476
477 2005-04-25  Martin Baulig  <martin@ximian.com>
478
479         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
480
481         * domain.c
482         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
483
484         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
485
486         * reflection.c (build_compressed_metadata): Set metadata header
487         version to 2.0.
488
489 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
490
491         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
492         number into an integral and a decimal part. Fixes #70473.
493
494         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
495
496 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
497
498         * culture-info-table.h : reflected the latest locale-builder output.
499
500 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
501
502         * threadpool.c: check for SuspendRequested too when deciding if
503         mono_thread_interruption_checkpoint should be called.
504
505 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
506
507         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
508         * threads.c: remove interruption_mutex and use Interlocked instead. When
509         suspending all the threads, wait for all the suspended events at once.
510         If we're shutting down and get an APC that is going to be queued,
511         call mono_thread_execute_interruption immediately, as the thread might
512         be sleeping on a pthread condition or mutex.
513
514         * icall.c: call mono_runtime_set_shutting_down before suspending the
515         threads.
516
517         Fixes bug #74693. And now xsp is happier when exiting.
518
519 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
520
521         * loader.c (mono_stack_walk): Fix #74690.
522
523 2005-04-22  Martin Baulig  <martin@ximian.com>
524
525         * mono-debug.h (MonoDebugMethodJitInfo): Added
526         `MonoDebugMethodJitInfo *jit'.
527
528         * mono-debug.c (mono_debug_read_method): Cache the
529         MonoDebugMethodJitInfo in `address->jit'.
530         (mono_debug_free_method_jit_info): New public method.
531
532 2005-04-22  Martin Baulig  <martin@ximian.com>
533
534         * class.c (mono_class_is_assignable_from): Disallow
535         type parameter -> interface.
536
537 2005-04-21  Dick Porter  <dick@ximian.com>
538
539         * threads.c (mono_thread_create): Turn an assertion into an error.
540
541 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
542
543         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
544         
545         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
546         Fix some gcc 4.0 warnings.
547
548 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
549
550         * file-io.c: fix alt dir separator char on unix systems
551         and cleanup (fixes bug #71214).
552
553 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
554
555         * marshal.c: Use CALLVIRT instead of CALL when dispatching
556         a call to a remote domain, since the method may be an
557         interface method in the client domain. This fixes bug #74192.
558
559 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
560
561         * threadpool.c: recv/send are now performed before going back to managed
562         code to save one transition.
563
564 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
565
566         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
567
568         * metadata/threadpool.c: removed hack to workaround the bug above.
569
570         Fixes bug #74618.
571
572 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
573
574         * reflection.c reflection.h: Fix handling of parameter defaults in
575         dynamic methods. Also fixes handling of parameter attributes.
576         Fixes #74609.
577
578         * mono-debug.c (mono_debug_close_image): Fix warning.
579
580 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
581
582         * socket-io.h: replaced old unused field with new 'blocking'.
583         * threadpool.c: restore socket blocking state on windows(tm).
584
585 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
586
587         * icall.c: don't return the codebase in the AssemblyName[] returned by
588         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
589         * object-internals.h: Removed FIXME (fields were presents) and fixed
590         versioncompat declaration.
591
592 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
593
594         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
595         not closed, so don't cleanup when it happens.
596
597 2005-04-13  Chris Toshok  <toshok@ximian.com>
598
599         * mono-debug-debugger.h: change prototype for
600         mono_debugger_lookup_type.
601
602         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
603         this function, although it should probably be named
604         mono_debugger_init_type.
605
606 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
607
608         * threadpool.c: fix non-AIO case.
609
610 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
611
612         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
613         the built-in profiler to measure just JIT compilation times.
614
615 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
616
617         * threadpool.c: the epollfd might be closed by another thread at
618         any time, so ignore EBADF at treat it as a "we're closing" sign.
619
620 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
621
622         * threadpool.c: release the semaphores with a count equals to the number
623         of working threads in both IO and regular pools. Fixed typo that messed
624         up the count of IO pool threads. Don't initialize the pipe handles if
625         we're using epoll.
626
627 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
628
629         * threadpool.c: some systems don't like a NULL when deleting the socket
630         from epoll.
631
632 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
633
634         * threadpool.c: fix semaphore allocation.
635
636 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
637
638         * threadpool.c: added epoll() based implementation for asynchronous IO
639         that is used instead of the default poll() when available.
640         It can be disabled by setting MONO_DISABLE_AIO.
641
642 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
643
644         * threadpool.c: windows needs 'closesocket' and instead of returning
645         0 when the stream is closed while in select, it returns -1. Fixes bug
646         #74573.
647
648 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
649
650         * class.c (class_compute_field_layout): Fix the regression caused by
651         the previous try.
652
653 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
654
655         * threadpool.c: separate pool for socket async. IO.
656         * threadpool.h: mono_max_worker_threads is not a global any more.
657
658 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
659
660         * class.c (class_compute_field_layout): Fix #74549.
661
662 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
663
664         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
665         use 2 connected sockets instead.
666
667 2005-04-08  Miguel de Icaza  <miguel@novell.com>
668
669         * mono-config.c: Add new entry point for mkbundle
670         mono_config_parse_memory. 
671
672 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
673
674         * threadpool.c: removed another unused function.
675
676 2005-04-08  Ankit Jain  <radical@corewars.org>
677
678         * reflection.c (get_default_param_value_blobs): Add 'types'
679         parameter to get the types encoded in the constant table.
680         (mono_param_get_objects): Use the type from the constant table,
681         not the type of the parameter, when creating default values.
682         Handle null default values correctly.
683
684 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
685
686         * file-io.c:
687         * file-io.h:
688         * threadpool.c:
689         * threadpool.h:
690         * icall.c:
691         * socket-io.c: removed dead code for async IO.
692
693 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
694
695         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
696
697         * threadpool.c: intercept socket async. calls and pass them to a thread
698         that is polling and dispatching the job items to the threadpool as
699         socket become ready. Fixes bugs #71217, #71933.
700
701         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
702         between char and short/ushort arrays.
703
704         * socket-io.c: remove dead code.
705
706 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
707
708         * locales.c,
709           icall.c : removed InternalToUpper_Comp() and
710           InternalToLower_Comp().
711
712 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
713
714         * char-conversions.h : The tables were incorrectly generated. Should
715           be generated against invariant culture.
716
717 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
718
719         * object.c (mono_runtime_invoke_array): Fix return value when 
720         passing pre-created valuetype objects to ctors.
721
722         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
723         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
724         Fixes #74338.
725
726 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
727
728         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
729         only used with --security and hides the wrong corlib version error.
730
731 2005-03-30  Joshua Tauberer  <tauberer@for.net>
732
733         * class.c: Changed mono_class_name_from_token so that types
734         outside of a namespace don't have an initial period.  Improved
735         the g_warning message used in _mono_class_get when loading
736         fails.
737         * assembly.c: In mono_assembly_load_reference, when an assembly
738         can't be found, "No such file or directory" is misleading and
739         unhelpful because a few paths were checked for the presence of
740         the assembly.  When that happens (ENOENT), display a nicer
741         message indicating the directories that were searched.  In all
742         cases, the warning is made easier to read for non-hackers.
743
744 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
745
746         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
747         project/solution.
748         * appdomain.h|domain.c: Removed inline from functions.
749         * appdomain.c: Reduced warnings when compiling on windows.
750         * icall.c: Fixed output_debug declaration to gunichar2*.
751         * mono-config.c: Reduced warnings when compiling on windows.
752         * rand.c: Added missing "windows.h". Added missing return value.
753         * rawbuffer.c: Added missing winsock2.h for windows.
754         * sysmath.h: Added mono-compiler.h header to allow/ease 
755         compilation with non-GCC compilers.
756         * threads.c: Fixed declarations to compile with VS.NET C compiler.
757         Removed cast warnings.
758
759         Adapted from the work of J Lothian (for VC6).
760
761 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
762
763         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
764         from default_path.
765
766 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
767
768         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
769         the 2.0 profile.
770
771 2005-03-27  Raja R Harinath  <harinath@gmail.com>
772
773         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
774         has to be in $(exec_prefix).  $(prefix) is for arch-independent
775         stuff, and it would probably use $(prefix)/share rather than
776         $(prefix)/lib.
777
778 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
779
780         * console-io.c: added 2 includes that might be missing.
781
782 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
783
784         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
785         profile.
786
787         * reflection.c (create_custom_attr): Allocate the params array using
788         alloca so it gets GC tracking.
789
790 2005-03-23  Chris Toshok  <toshok@ximian.com>
791
792         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
793         out some spew.
794
795 2005-03-24  Raja R Harinath  <rharinath@novell.com>
796
797         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
798         changes to pick up any changes in prefix, etc.
799
800 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
801
802         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
803         
804         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
805         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
806
807 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
808
809         * class-internals.h object-internals.h class.c reflection.c: Extend the
810         mono_lookup_dynamic_token () function to return the class of the
811         token as well. 
812
813         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
814         well. Fixes #73848.
815
816 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
817
818         * security-manager.c: Skip inheritance checks for intra-corlib
819         class inheritance and method overrides. This skips a lot of checks
820         and (anyway) permissions cannot work until corlib is loaded.
821
822 2005-03-23  Martin Baulig  <martin@ximian.com>
823
824         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
825         MONO_TYPE_GENERICINST.  
826
827 2005-03-23  Martin Baulig  <martin@ximian.com>
828
829         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
830
831 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
832
833         * class.c: added locking comments to some functions.
834         Cache the interface offsets arrays (saves about 20 KB
835         of runtime memory in a typical app).
836         Reduce the time overhead in mono_class_setup_supertypes ().
837
838 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
839
840         * icall.c: speedup and fix leaks in GetMethodsByName and
841         GetPropertiesByName.
842
843 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
844
845         * reflection.c: some locking fixes.
846
847 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
848
849         * metadata.c: added missing break in case statement.
850
851 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
852
853         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
854         typedbyref return values. Fixes #73941.
855
856 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
857
858         * security-manager.c|h: Added demandunmanaged method and 
859         suppressunmanagedcodesecurity class to MonoSecurityManager.
860         Renamed aptc class to allowpartiallytrustedcallers.
861
862 2005-03-17  Martin Baulig  <martin@ximian.com>
863
864         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
865
866 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
867
868         * file-io.c: disabled file async. IO using aio_*. It uses the
869         threadpool now. Workaround for bug #73718.
870
871 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
872
873         * assembly.h, mono-config.c: added code to deal with bundled configs
874         for bundled assemblies.
875
876 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
877
878         * *.c, private.h: cleanup, removing old private.h header file.
879
880 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
881
882         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
883         and throw_on_unmappable_char attributes.
884
885 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
886
887         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
888         _ProcessName_internal.
889
890 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
891
892         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
893         #73631.
894
895         * icall.c threads.c threads-types.h: Remove slothash icalls as they
896         are no longer used.
897
898 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
899
900         * object.c (compute_class_bitmap): Add support for generics. Fixes
901         #73527.
902
903 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
904
905         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
906
907 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
908
909         * filewatcher.c: commented out the code for windows watcher, as we don't
910         use it (we use the managed implementation instead).
911
912 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
913
914         * object-internals.h (MonoThread): Remove 'unused1' field.
915
916         * appdomain.c: Bump corlib version.
917
918         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
919
920         * reflection.c (mono_reflection_create_runtime_class): Remove the
921         AssemblyBuilder.Save optimization since it causes too many problems.
922
923 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
924
925         * exception.c|h: Added mono_get_exception_reflection_type_load to
926         create a ReflectionTypeLoadException object.
927         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
928         to return NULL is a InheritanceDemand fails during reflection. Updated
929         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
930         ReflectionTypeLoadException if an InheritanceDemand fails during 
931         reflection. Added icall mapping for GetLinkDemandSecurity.
932         * security-manager.c|h: Added ves_icall_System_Security_
933         SecurityManager_GetLinkDemandSecurity internal call to return the
934         class and methods permissions set for a LinkDemand. Removed unused
935         fields in MonoSecurityManager.
936
937 2005-03-10  Martin Baulig  <martin@ximian.com>
938
939         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
940         it's a generic instance.
941
942 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
943
944         * reflection.c (mono_get_object_from_blob): Applied patch from
945         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
946
947         * class.c (mono_class_is_assignable_from): Another try at fixing 
948         #73469 without breaking anything.
949
950 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
951
952         * class.c: (mono_class_is_assignable_from): Revert the last changes
953         since they don't work with generics.
954         
955         * class.c (mono_class_is_assignable_from): Fix build bustage.
956
957         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
958         the managed IsAssignableFrom method. Fixes #73469.
959
960         * reflection.c (mono_reflection_call_is_assignable_from): New helper
961         function.
962
963 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
964
965         * object.c (mono_load_remote_field_new): Fix returning uninitialized
966         memory when the remoting callback does not sets the out arguments.
967         Fixes #73007.
968
969         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
970         by mistake.
971
972         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
973
974         * object-internals.h (MonoStackFrame): Sync with managed object layout.
975
976         * appdomain.c: Bump corlib version.
977
978 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
979
980         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
981         function.
982
983         * threads.c (mono_thread_attach): Detect threads which are not started
984         by the GC pthread wrappers.
985
986 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
987
988         * icall.c: Added new icall for RNG.
989         * rand.c|h: Added new icall to open the RNG. This allows to share a 
990         single handle on Linux to access /dev/urandom and fix #73183.
991
992 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
993
994         * object.c: setting the new vtable in a transparent proxy object must
995         not change the GC descriptor.
996
997 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
998
999         * object.c: fixed compilation without GCJ support.
1000         * reflection.c: for runtime-created types ensure klass->has_references
1001         is correct (bug #73215).
1002
1003 2005-03-02  Martin Baulig  <martin@ximian.com>
1004
1005         * class.c (mono_class_is_assignable_from): Make this work if
1006         `oklass' is a generic instance; fixes #72831.
1007
1008 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1009
1010         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
1011         with hasthis set.
1012         
1013         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
1014
1015         * marshal.c: Reorganize native->managed marshalling code to also use
1016         the emit_marshal_... functions.
1017
1018 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1019
1020         * object.c: typed allocs have issues with bitmap sizes > 30,
1021         so check for max_set >= 30.
1022
1023 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1024
1025         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
1026         managed code. Fixes #73012.
1027
1028         * metadata.h (MonoMarshalSpec): Add elem_mult field.
1029
1030         * metadata.c reflection.c: Load/Emit elem_mult as well.
1031         
1032         * metadata.h (MonoMarshalSpec): Add comment.
1033
1034         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
1035
1036         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
1037         num_elem to -1 if not given.
1038
1039         * object-internals.h (MonoReflectionMarshal): Add has_size field.
1040
1041         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
1042         given values.
1043
1044 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
1045
1046         * null-gc.c (mono_gc_free_fixed): Was not compilable.
1047
1048 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
1049
1050         * reflection.c (encode_marshal_blob): Encode param_num field as well.
1051
1052         * object-internals.h (MonoReflectionMarshal): Add param_num field.
1053
1054 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1055
1056         * object.c: generalized the reference bitmap creation
1057         and added hooks for the new GC.
1058         * class-internals.c: removed the gc_bitmap field from MonoClass.
1059
1060 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1061
1062         * domain.c: help the compiler to produce better code
1063         in mono_jit_info_table_find ().
1064
1065 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1066
1067         * object.c: make all allocations look typed.
1068
1069 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1070
1071         * socket-io.c: load Mono.Posix if it's not loaded already
1072         (fixes bug#73033).
1073
1074 2005-02-24  Martin Baulig  <martin@ximian.com>
1075
1076         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
1077         * reflection.c (dup_type): Likewise.
1078
1079 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
1080
1081         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
1082         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
1083
1084 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1085
1086         * domain.c, threads.c, object-internals.h: make the critical thread
1087         local vars use the fast access mode (even when we're compiled in
1088         a lib). Provide accessors to be used by the jit during codegen.
1089
1090 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1091
1092         * appdomain.c: Changed hook functios behavior to include
1093         support for the reflection only assemblies. Some icalls were changed
1094         to support the mentioned assemblies too. Signatures of static methods
1095         try_assembly_resolve and real_load now have an additional parameter:
1096         refonly.
1097
1098         * assembly.c: General changes to mono_assembly_ methods to support
1099         reflection only api. Functions mono_assembly_open, mono_assembly_load,
1100         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
1101         suffix, to support an additional gbool parameter to specify whether
1102         the assembli is reflection only or not. Created some new hook functions 
1103         to add support for reflection only assemblies. Signatures of static 
1104         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
1105         have now an additional parameter: refonly.
1106
1107         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
1108         indicating whether the assembly is reflection only or not.
1109
1110         * exception.c: Add mono_get_exception_invalid_operation.
1111
1112         * icall.c: Throw an InvalidOperationException when trying to invoke
1113         a property/method/event, or trying to set/get the value of a field.
1114         Also add an icall to retrieve the ref_only flag to the
1115         MonoReflectionAssembly.
1116
1117 2005-02-23  Chris Toshok  <toshok@ximian.com>
1118
1119         Part of fix for #72827.
1120         * mono-debug.c (mono_debug_add_method): add lexical block data to
1121         the info we write.  Kind of a hack at the moment - we copy the
1122         lexical block info from the MonoDebugMethodInfo to the
1123         MonoDebugMethodJitInfo here, before writing it.
1124         (mono_debug_read_method): read the lexical block info.
1125
1126         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
1127
1128         * debug-mono-symfile.h: add lexical block support.
1129
1130         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
1131         support.
1132
1133 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1134
1135         * loader.c (mono_lookup_pinvoke_call): Fix warning.
1136
1137         * object.c (mono_runtime_free_method): Call mono_free_method () and
1138         put the TODOs there.
1139
1140         * loader.c (mono_free_method): Free up most memory allocated for 
1141         dynamic methods.
1142
1143 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1144
1145         * reflection.c: properly flag a Type argument to a
1146         named custom attr value (bug #72248).
1147
1148 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1149
1150         * reflection.c: reduce code duplication in named custom
1151         attribute encoding.
1152
1153 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
1154
1155         * reflection.c: properly encode custom attrs of type object
1156         (bug #72649).
1157
1158 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1159
1160         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
1161
1162 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
1163
1164         * socket-io.c: load System.dll if it's not loaded already
1165         (bug #72850 and #70477).
1166
1167 2005-02-21  Martin Baulig  <martin@ximian.com>
1168
1169         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
1170         generic instances.
1171
1172 2005-02-21  Martin Baulig  <martin@ximian.com>
1173
1174         * reflection.c (mono_image_build_metadata): We also need to
1175         "fixup" the MethodImpl table after we computed the final method
1176         indices.  Call fixup_methodimpl() to do that.
1177         (fixup_methodimpl): New private method.
1178
1179 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1180
1181         * assembly.c: special case mscorlib.dll (bug#72536),
1182         patch from Carlos Alberto Cortez.
1183
1184 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
1185
1186         * threads-types.h threads.c: Fix build bustage.
1187
1188         * threads.c: Use a union for long<->double conversions.
1189
1190         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
1191         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
1192
1193         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
1194         containing the checkpoint call with NOT_TAKEN.
1195         
1196         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
1197         checkpoint before pushing the arguments, so they won't have to be
1198         spilled to stack.
1199
1200 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1201
1202         * domain.c, assembly.c, domain-internals.h: make some data
1203         const and relocation-free.
1204
1205 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
1206
1207         * object.c, appdomain.c, class-internals.h: introduce the
1208         MonoClassRuntimeInfo structure to hold the info needed to
1209         use a class at runtime. Made mono_class_vtable() lock-free
1210         for all the appdomains.
1211
1212 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
1213
1214         * metadata-internals.h, image.c: introduce a per-image mempool to
1215         be used for memory that has the same lifetime as the image.
1216
1217 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
1218
1219         * domain.c: In mono_init_internal(), instead of selecting the first
1220         runtime version supported by an executable, get a list of all
1221         supported versions and select the one for which an mscorlib exists
1222         (since even if the runtime supports a given version, it doesn't mean
1223         that the framework for that version is installed).
1224         Modified get_runtimes_from_exe to support this behavior.
1225         In supported_runtimes, added information about additional system
1226         assembly versions.
1227         
1228         * assembly.c: Added support for more than one system assembly version
1229         per runtime version. Updated the assembly list.
1230         In mono_assembly_remap_version, removed the initial version check,
1231         since we don't know to which version we need to compare until we
1232         get the version set on which the assembly is based.
1233         Moved the code for loading corlib into the new method
1234         mono_assembly_load_corlib(), so it can be used by the initialization
1235         code.
1236         
1237         * domain-internals.h: Updated data structures and added declaration
1238         for mono_assembly_load_corlib.
1239
1240 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1241
1242         * reflection.c (resolve_object): Fix the creation of the signature in 
1243         the SignatureHelper case.
1244
1245         * assembly.c (mono_assembly_remap_version): Fix binary search.
1246         
1247 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
1248  
1249         * class.c: Added inheritance check when a method is overloaded (from a
1250         virtual method or when implementing an interface) and when a class is
1251         inherited. Added functions to set a failure for a class and to 
1252         retreive the exception from a failure.
1253         * class-internals.h: Added fields to MonoClass to keep the exception
1254         information status for inheritance (or other exceptions) to be thrown
1255         later (i.e. not at load time).
1256         * object.c: Throw the inheritance SecurityException when a type is to 
1257         be created with either class or method inheritance violations.
1258         * reflection.c|h: Fix when getting declsec from a class. Removed 
1259         unrequired code for class. Improved sanity in parameter naming.
1260         * security-manager.c|h: Added functions to check for class and method
1261         inheritance.
1262
1263 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1264
1265         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
1266         and has_finalize in dynamic types as well.
1267
1268 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
1269
1270         * culture-info-table.h : fixed currency format for en-GB (and so on).
1271
1272 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
1273
1274         * gc.c: ensure the GC handles never have 0 as a value.
1275
1276 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
1277
1278         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
1279         a pointer to a struct to unmanaged code. Fixes #72625.
1280
1281 2005-02-16  Martin Baulig  <martin@ximian.com>
1282
1283         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
1284
1285 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
1286
1287         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
1288
1289 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
1290
1291         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
1292
1293         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
1294         UnmanagedFunctionPointerAttribute, use it for determining calling convention
1295         etc. Fixes #71471.
1296
1297         * reflection.c (mono_custom_attrs_get_attr): New helper function.
1298
1299         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
1300
1301 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
1302
1303         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
1304         changes to make the current context a field in MonoThread.
1305
1306 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
1307
1308         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
1309         the last change.
1310         
1311         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
1312         extracted from mono_marshal_get_native_wrapper.
1313
1314         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
1315         to create wrappers around native functions.
1316
1317         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
1318         delegates for arbitrary function pointers. Fixes #71472.
1319
1320 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1321
1322         * threads.c: cleaned up the code a little.
1323
1324 2005-02-15  Martin Baulig  <martin@ximian.com>
1325
1326         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
1327         the data table.
1328
1329         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
1330         allocate larger chunks if needed.
1331
1332 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1333
1334         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
1335         in by mistake.
1336
1337 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
1338
1339         * domain.c: keep the domains in an array and ensure the domain ids
1340         are kept small, so they can be used as indexes to domain-specific data
1341         with a small memory overhead.
1342
1343 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1344
1345         * icall.c: Handle byref types in Type icalls. Fixes #72544.
1346
1347 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
1348
1349         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
1350
1351 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
1352
1353         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
1354
1355         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
1356         values.
1357
1358         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
1359         
1360 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
1361
1362         * domain-internals.h: add the hashtable here.
1363
1364         * class-internals.h: Remove `info' from MonoMethod
1365
1366         * domain.c: Add a new hashtable, jit_trampoline_hash
1367
1368 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1369
1370         * object.c: don't set the value of static fields
1371         (fixes bug#72494).
1372
1373 2005-02-11  Martin Baulig  <martin@ximian.com>
1374
1375         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
1376         (mono_debug_add_method): Silently ignore the method if it's too big.
1377         (mono_debug_add_type): Likewise.
1378
1379 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
1380
1381         * threads.c, appdomain.c: remove #ifdefs from the code.
1382
1383 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
1384
1385         * metadata-internals.h: Added flags to MonoAssembly to cache the most
1386         common security informations. This allows us to stay in unmanaged code
1387         when doing LinkDemand and it's special cases (except for the first 
1388         time for initialization). The flags a very much used with --security.
1389         * reflection.c|h: Added code to get declarative security attributes 
1390         for LinkDemand and InheritanceDemand. This required to refactor the
1391         existing code for Demand.
1392         * security-manager.c|h: Added new method fields for the special cases
1393         of LinkDemand.
1394
1395 2005-02-10  Martin Baulig  <martin@ximian.com>
1396
1397         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
1398         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
1399
1400 2005-02-10  Martin Baulig  <martin@ximian.com>
1401
1402         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
1403         debugging code; this is almost a complete rewrite.
1404
1405         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
1406
1407 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1408
1409         * domain.c, object.h: expose mono_string_equal () and 
1410         mono_string_hash ().
1411         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
1412         it's implemented in managed code.
1413
1414 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1415
1416         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
1417         lo leak objects between appdomains.
1418
1419 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1420
1421         * assembly.c: old compilers compilation fix from 
1422         robertj@gmx.net (Robert Jordan).
1423
1424 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
1425
1426         * class-internals.h: Little reminder for the future.
1427
1428         * debug-helpers.c: Fix up wrapper_type_names
1429
1430 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1431
1432         * image.c, metadata-internals.h: when loading an image from a file,
1433         mmap all of it and use the same codepaths as when using a
1434         in-memory image: the code is simpler and we use less memory
1435         (both writable and readonly).
1436
1437 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1438
1439         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
1440         API to alloc runtime data structures that need to be tracked by the
1441         GC and contain pointers.
1442         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
1443         make the code more readable and eventually use a different GC.
1444
1445 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
1446
1447         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
1448         for out arguments.
1449         
1450 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
1451
1452         * object.c: In release_type_locks(), don't release the cctor lock
1453         if it has already been released. This fixes a crash in the
1454         thread5 test.
1455
1456 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1457
1458         * gc.c, marshal.c, icall.c: register a delegate for finalization
1459         only when the native function pointer has been allocated for it.
1460
1461 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1462
1463         * object.c: cleaned up some code, allocate objects that are
1464         pointer free with the atomic malloc variant. Allocate memory
1465         for static data from the mempool if it's pointer-free.
1466         Allocate the bounds array at the end of the array data, when needed.
1467         * object-internals.h, object.h: move a private function in a private
1468         header.
1469         * class.c: handle missing case in tracking references in fields.
1470
1471 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1472
1473         * class.c, class-internals.h: keep track if a type has
1474         reference fields in either the instance or static fields.
1475
1476 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
1477
1478         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
1479         and renamed to MonoRuntimeInfo. Added fields to store the expected
1480         framework assembly version. Changed mono_get_framework_version and
1481         mono_get_runtime_version for a single mono_get_runtime_info method.
1482         
1483         * assembly.c: Added method to remap system assembly versions to the
1484         current executing runtime version. Removed old mapping code.
1485         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
1486         
1487         * icall.c, reflection.c: Track api changes.
1488
1489 2005-02-06  Miguel de Icaza  <miguel@novell.com>
1490
1491         * loader.c (method_from_memberref): Improve error reporting,
1492         produce the class name instead of the typeref/typedef index. 
1493
1494 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
1495
1496         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
1497
1498 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1499
1500         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
1501         stdcall and charset name mangling.  Reorganize the code and add
1502         some tracing stuff.
1503
1504 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
1505
1506         * monodiet.c: More iters!
1507
1508         * marshal.c: Iter usage.
1509
1510         * icall.c: Iter usage.
1511
1512         * object.c: Use iters.
1513
1514         * debug-helpers.c: More iters
1515
1516 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1517
1518         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
1519         under win32.
1520
1521 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
1522
1523         * mono-debug-debugger.c: use iters
1524
1525         * class.c, class-internals.h: mono_class_setup_events is static
1526         now
1527
1528         * All callers: use iters
1529
1530 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1531
1532         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
1533         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
1534
1535 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1536
1537         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
1538
1539         * marshal.h: Add prototypes for ldfld/stfld_remote.
1540
1541         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
1542         this is called during startup.
1543         
1544 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
1545
1546         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
1547         MonoThreadsSync struct private in monitor.c. Changed the way
1548         MonoThreadsSync is allocated so it's faster and there is no
1549         need to keep track of it with a finalizer and it uses less memory.
1550         This also finally allows us to allocate mono objects as ptrfree when
1551         there are no reference fields.
1552
1553 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
1554
1555         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
1556         disappearing link to the GC interface and use them to simplify
1557         the gchandles code.
1558
1559 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1560
1561         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
1562         stfld_remote which call mono_load/store_field_new. This allows methods
1563         calling ldfld/stfld wrappers to be AOTed.
1564
1565         * console-io.c: Include sys/filio.h under solaris.
1566         
1567         * console-io.c: Include curses.h if needed correctly.
1568
1569 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1570         
1571         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
1572         method->klass as well.
1573
1574         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
1575
1576         * class.c (mono_class_init): Switch on lazy initialization of 
1577         methods.
1578
1579         * class.c (mono_class_get_finalizer): Handle the case when the 
1580         finalizer is inherited.
1581
1582 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1583
1584         * console-io.c: <curses.h> is needed by term.h on solaris.
1585
1586 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
1587
1588         * icall.c, class-internals.h, monodiet.c, class.c: Remove
1589         mono_class_setup_properties where possible. Remove this ftn from
1590         the header file, and make it static.
1591
1592 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1593
1594         * loader.c: Add missing setup_... call.
1595
1596         * class.c: Add missing setup_... calls.
1597
1598         * class.c (mono_class_init): Switch on lazy initialization of 
1599         the generic vtable.
1600         
1601         * class.c (mono_class_init): Fix generics broken by the recent changes.
1602
1603         * monodiet.c (handle_type): Add missing setup_... calls.
1604
1605         * class.c: Back out garbage in previous patch.
1606         
1607         * class.c: Add missing setup_... calls.
1608
1609         * class.c (mono_class_get_method_from_name_flags): Avoid calling
1610         mono_class_setup_methods () if possible.
1611
1612         * class-internals.h (MonoClass): Add 'has_cctor' flag.
1613
1614         * class-internals.h (MonoCachedClassInfo): New structure.
1615
1616         * class.c: Initialize properties and events fields of MonoClass lazily.
1617
1618         * class.c: Add infrastructure for lazily initializing the methods and
1619         vtable fields of MonoClass. Not yet used.
1620
1621         * class.c (mono_class_get_finalizer): New helper function.
1622
1623         * class.c: Add infrastructure for loading some class related data from
1624         an AOT file.
1625
1626         * object.c: Add infrastructure for initializing the vtable from data
1627         in the AOT file.
1628
1629         * gc.c (run_finalize): Use mono_class_get_finalizer ().
1630
1631         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
1632         appropriate initialization function before accessing parts of the
1633         MonoClass structure.
1634
1635         * marshal.c: Fix warnings.
1636         
1637         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
1638
1639         * mono-debug-debugger.c (get_exception_message): Use 
1640         mono_class_get_method_from_name_flags ().
1641
1642 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
1643
1644         * reflection.c, appdomain.c: Replace a few manual searches that
1645         Zoltan missed. (Paolo approved this part of my initial patch).
1646
1647 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
1648
1649         * profiler.c: disable recording statistical events at report time.
1650
1651 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1652
1653         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
1654         to byteswap arrays of enum values, too (bug #72080).
1655
1656 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
1657
1658         * appdomain.c (set_domain_search_path): Allow this to be called if
1659         domain->setup is not yet set.
1660
1661         * loader.c (mono_method_get_index): New helper function.
1662
1663         * loader.c reflection.c: Use mono_method_get_index ().
1664
1665         * class.c (mono_class_get_method_from_name_flags): New helper method.
1666
1667         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
1668         this.
1669
1670         * class.c (mono_class_get_cctor): New helper method.
1671
1672         * string-icalls.c object.c class.c marshal.c reflection.c: Use
1673         mono_class_get_method () to look up methods.
1674
1675 2005-02-01  Miguel de Icaza  <miguel@novell.com>
1676
1677         * console-io.c: Fix the build, this should work on Windows.
1678
1679 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
1680
1681         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
1682         be set to null to keep things valid
1683
1684 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1685
1686         * icall.c: added Console 2.0 icalls.
1687         * Makefile.am: added console-io.[ch]
1688         * console-io.[ch]: internal calls for Console 2.0 API.
1689
1690 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1691
1692         * class.c: make sure we consider all the interfaces
1693         when calculating max_interface_id (bug found by
1694         Jeroen Frijters running ikvm).
1695
1696 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
1697
1698         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
1699         valuetype fields to null.
1700
1701         * object.c (set_value): Ditto. Fixes #71669.    
1702
1703 2005-01-31  Martin Baulig  <martin@ximian.com>
1704
1705         * metadata.c (mono_metadata_has_generic_params): New public
1706         function; checks whether something is a generic method.
1707
1708 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
1709
1710         * appdomain.c: fix infinite recursion when adding assemblies.
1711
1712 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
1713
1714         * object.c: Fix small typo to return all items for Environment.
1715         GetCommandLineArgs.
1716
1717 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1718
1719         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
1720         reflection.c: more domain and assembly-unload related fixes
1721         and memory leaks plugs.
1722
1723 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
1724
1725         * 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.
1726
1727 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
1728
1729         * loader.c (mono_method_signature): Make this method lazy
1730         (mono_get_method_from_token): Don't computate the signature here.
1731
1732         Doing this saves quite a bit of memory. I got 90 kb on starting up
1733         monodoc. It should also save some disk reads on startup.
1734
1735         * *: MonoMethod->signature might be NULL now. You *MUST* use
1736         mono_method_signature.
1737
1738 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
1739
1740         * object.c (mono_runtime_get_main_args): Return an array from the
1741         current domain here. Fixes #71938.
1742
1743 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
1744
1745         * monitor.c: formatting changes to comply with the
1746         mono coding style and remove #ifdefs from the code.
1747
1748 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1749
1750         * metadata.c, private.h: remove some unneeded data
1751         and use a more compact representation for table schemas.
1752
1753 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
1754
1755         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
1756         to get a better distribution in hash tables.
1757         * *.c: use mono_aligned_addr_hash() where appropriate.
1758         * assembly.c: make var static.
1759
1760 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
1761
1762         * domain-internals.h: Put MonoJitInfo on a diet.
1763
1764         * domain.c: Fix a warning.
1765
1766 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1767
1768         * gc.c: rework the gc handles code to reuse handles
1769         when freed.
1770
1771 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1772
1773         * domain.c: fixed long standing bug in mono_string_equal() which
1774         was brought to light with the ldstr changes.
1775
1776 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
1777
1778         * reflection.c: Remove warning by adding missing include for marshal.h
1779
1780 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1781
1782         * domain.c, object.c: change the ldstr_table to hold
1783         MonoString* as keys: makes the runtime isinterned lookup
1784         faster and simplifies memory management.
1785
1786 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
1787  
1788         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
1789         possible to add imperative security checks before calling the icall.
1790         * reflection.c: Return security attributes on the original MonoMethod
1791         (and not the wrapped one). This fix permissions on icalls.
1792
1793 2005-01-25  Dick Porter  <dick@ximian.com>
1794
1795         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
1796         the check for mktime() support actually test the mktime() return
1797         value.  "Fixes" bug 71682, though the output is still different to
1798         MS.
1799
1800 2005-01-25  Martin Baulig  <martin@ximian.com>
1801
1802         * class.c (mono_class_is_assignable_from): Make this work for
1803         generic instances.
1804
1805 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
1806
1807         * marshal.c (mono_string_utf8_to_builder)
1808         (mono_string_builder_to_utf16): We might not have ownership of the
1809         string. In thise case, we need to create a new buffer.
1810
1811         * object-internals.h (mono_stringbuilder_capacity): sb->str might
1812         be null, in which case, use the default capacity.
1813
1814 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1815
1816         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
1817         GC events to the profiler.
1818
1819 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1820
1821         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
1822         if you don't want the GC to run.
1823
1824 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
1825
1826         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
1827         start providing a GC API and keeping different implementations in
1828         their own file.
1829         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
1830
1831 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
1832
1833         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
1834         mmap rather than allocating a huge buffer.
1835         (mono_debug_close_mono_symbol_file): Free the buffer allocated
1836         above.
1837
1838 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
1839
1840         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
1841         and CheckExecutionRights.
1842         * reflection.c|h: Keep the index of the declarative security to be 
1843         used, instead of the pointer, when AOT compiler is used. Also add 
1844         class initialization when requesting demands.
1845         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
1846         CheckExecutionRights. Both properties are now FALSE by default, and
1847         unmodifiable, unless the --security option is used.
1848
1849 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1850
1851         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
1852         reflection.c: properly refcount images and assemblies, many leaks fixed.
1853
1854 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1855
1856         * threadpool.c: increase the timeout for threads in the thread pool to
1857         10s.  Fixes bug #67159.
1858
1859 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
1860
1861         * class-internals.h: Sun's compiler insists on explicit
1862         signed on bit fields to handle then correctly.
1863
1864 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
1865
1866         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
1867         Make the size of the array fit only the number of invalid path
1868         chars that we have.
1869
1870         * class.c (_mono_class_get): Improve the error reporting when a
1871         class referenced is not found, to assist debugging. 
1872
1873 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
1874
1875         * threads.c: fix off-by-one error.
1876         * domain.c: free data allocated in the domain.
1877
1878 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
1879
1880         * reflection.c (mono_method_body_get_object): Fill out exception info
1881         as well.
1882
1883         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
1884         structure.
1885         
1886 2005-01-19  Martin Baulig  <martin@ximian.com>
1887
1888         * loader.c (mono_get_method_constrained): Make this work again.
1889
1890 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
1891
1892         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
1893         guint16 to match the managed side.
1894
1895         * reflection.c (mono_reflection_body_get_object): Fill out local
1896         variables array.
1897
1898         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
1899         as well.
1900
1901         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
1902         'local_var_sig_token'.
1903
1904 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
1905
1906         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
1907         System.Drawing.
1908
1909         * reflection.c (mono_method_body_get_object): Handle abstract and
1910         runtime methods.
1911
1912 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
1913
1914         * marshal.c, loader.c, class-internals.h, reflection.c:
1915         store the emthod data for a wrapper in an array instead of a list.
1916
1917 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
1918
1919         * marshal.c: change the code to allocate memory more
1920         conservatively for method wrappers.
1921
1922 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
1923
1924         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
1925         fields from MonoClass to the marshal info structure where they belong.
1926
1927 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1928
1929         * class.c, object.c, class-internals.h, marshal.c: rearrange
1930         some fields and tweak some types to lower memory usage.
1931
1932 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
1933
1934         * threads.c (signal_thread_state_change): Handle the case when the
1935         target thread is the current thread.
1936
1937         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
1938
1939         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
1940         emit_ptr_to_object_conv. 
1941
1942         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
1943         marshalling. Fixes #71352.
1944
1945 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1946
1947         * metadata.h, blob.h: move table enum to blob.h so it can be included
1948         in any header.
1949         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
1950         cut the size of MonoImage/MonoDynamicImage.
1951
1952 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
1953
1954         * profiler.c (mono_profiler_install_simple): Fix default arguments.
1955
1956 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
1957
1958         * reflection.c, reflection.h, icall.c: add a function to check
1959         if an attribute type is defined for a metadata object.
1960
1961 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
1962
1963         * object-internals.h: Added some needed fields from StringBuilder class.
1964         * marshal.c: Set the maxCapacity when creating a StringBuilder.
1965
1966 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
1967
1968         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
1969         threads before shutting down the runtime.
1970
1971         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
1972
1973 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1974
1975         * object-internal.h, threads.c: implement stacksize and 
1976         parameterized thread start functionality (requires
1977         matching corlib). Marked broken code for later removal.
1978
1979 2005-01-12  Martin Baulig  <martin@ximian.com>
1980
1981         * class-internals.h (MonoGenericClass): Moved the `initialized'
1982         flag to MonoDynamicGenericClass, removed `init_pending'.
1983         (MonoGenericInst): Added `is_reference' flag.
1984
1985 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
1986
1987         * reflection.c (mono_image_create_pefile): Only set the pe_offset
1988         inside the MSDOS header. Fixes #71201.
1989
1990         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
1991         gc thread.
1992         (mono_domain_finalize): Ditto.
1993
1994 2005-01-12  Martin Baulig  <martin@ximian.com>
1995
1996         * class.c (mono_get_shared_generic_class): Use the cache for
1997         non-dynamic generic classes.
1998
1999         * class-internals.h (mono_class_create_generic_2): Removed
2000         function prototype, this function is now static inside class.c.
2001
2002         * class.c (mono_class_create_generic_2): Made this static, only
2003         call it from mono_class_init() and mono_class_setup_parent().
2004         (collect_implemented_interfaces_aux): Call mono_class_init() on
2005         the interfaces we collect.
2006         (mono_class_setup_vtable): Call mono_class_init (class->parent).
2007
2008 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2009
2010         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
2011         it a real thread handle.
2012
2013         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
2014         MonoJitExceptionInfo, since each catch clause needs its own variable.
2015         
2016 2005-01-11  Dick Porter  <dick@ximian.com>
2017
2018         * image.c (mono_pe_file_open): New variant on mono_image_open()
2019         that does not set up the CLI metadata; used for FileVersionInfo so
2020         it can get the data for windows binaries too.
2021         
2022         * process.c (process_read_string_block): Don't read off the end of
2023         the StringTable block.
2024
2025         These both fix bug 70766.
2026
2027 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
2028
2029         * gc.c: set some fields to NULL at GC cleanup time.
2030         * threads.c: if we quit the main thread, call exit ().
2031
2032 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2033
2034         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
2035
2036 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
2037
2038         * threads.h, threads.c, object.c: added accessor and settor for
2039         main_thread. Handle it specially when exiting from it: wait
2040         for other foreground threads to exit.
2041
2042 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
2043
2044         * process.c, verify.c: remove some bloat.
2045
2046 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
2047
2048         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
2049         the calling convention to cdecl under win32.
2050
2051 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
2052
2053         * object.c (mono_object_get_size): New function to get the size of
2054         an object instance.
2055
2056         * profiler.c (simple_allocation): Use above.
2057
2058 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
2059
2060         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
2061         ves_icall_System_AppDomain_getRootDomain (as it's not required to
2062         get an appdomain by it's id and we can't assume the root's id is 0).
2063         * domain-internals.h: Change the function prototype to match.
2064         * icall.c: Change the icall table for AppDomain.
2065
2066 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
2067
2068         * locales.c (string_invariant_compare_char): Only compute
2069         GUnicodeTypes in the case where we need them.  Test for ordinality
2070         first and return if so.
2071
2072         From the commit:
2073
2074                 /*
2075                  * FIXME: here we must use the information from c1type and c2type
2076                  * to find out the proper collation, even on the InvariantCulture, the
2077                  * sorting is not done by computing the unicode values, but their
2078                  * actual sort order.
2079                  */
2080
2081 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
2082
2083         * loader.c: for P/Invoke methods, allow the "Internal" shared
2084         library name to refer to the calling process symbol namespace.
2085
2086 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
2087
2088         * Makefile.am: Add the security manager to the build.
2089         * security-manager.c|h: New. Initialization of the security manager.
2090
2091 2005-01-07  Dick Porter  <dick@ximian.com>
2092
2093         * threads.c: 
2094         * monitor.c: Update thread state during Monitor and WaitHandle
2095         waits.  Fixes bug 71031.
2096
2097 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
2098
2099         * reflection.c (property_encode_signature): Correctly handle when the
2100         property has no methods.
2101
2102 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
2103
2104         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
2105         
2106         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
2107         fields from mb, not rmb. Fixes #71017.
2108
2109         * marshal.c (emit_ptr_to_str_conv): Add support for 
2110         ByValTStr -> string conversion. Fixes #71015.
2111
2112         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
2113
2114         * mempool.c (mono_mempool_contains_addr): New helper function.
2115
2116 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2117
2118         * metadata.c (mono_metadata_compute_size): Fix size calculation of
2119         HasSematics encoded fields.
2120         
2121         * metadata.c (mono_type_to_unmanaged): Improve error message for 
2122         invalid string marshalling.
2123
2124         * metadata.c: Fix warnings.
2125         
2126 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2127
2128         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
2129         profiler support.
2130
2131 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2132
2133         * domain.c object.c domain-internals.h: Revert part of r38077 since the
2134         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
2135         tests.
2136
2137 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
2138
2139         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
2140         so methods containing these can be AOTed.
2141
2142 2005-01-03  Martin Baulig  <martin@ximian.com>
2143
2144         * loader.c (find_method): Removed the hack for generic instances.
2145         (method_from_memberref): If our parent is a generic instance, pass
2146         its generic type definition to find_method() and then inflate the
2147         method.
2148         (mono_get_method_constrained): Pass the generic type definition to
2149         find_method() and inflate the method later.
2150
2151         * class-internals.h (MonoStats): Added `generic_class_count'.
2152
2153         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
2154         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
2155
2156         * reflection.c (mono_custom_attrs_from_params): Don't ignore
2157         generic type definitions.
2158
2159 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
2160
2161         * loader.c icall.c: Fix warnings.
2162
2163 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
2164
2165         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
2166         blittable types. Fixes #70864.
2167
2168 2004-12-29  Martin Baulig  <martin@ximian.com>
2169
2170         * icall.c
2171         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
2172
2173         * reflection.c (mono_method_get_object): Create a
2174         "System.Reflection.MonoGenericMethod" for inflated methods; don't
2175         call mono_get_inflated_method().
2176
2177         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
2178
2179 2004-12-27  Martin Baulig  <martin@ximian.com>
2180
2181         * class-internals.h (MonoMethod): Added `is_inflated' flag.
2182         (MonoMethodInflated): Added `inflated' field.
2183
2184         * class.c (mono_class_inflate_generic_method): Don't really
2185         inflate the method here; just set the `is_inflated' flag in the
2186         MonoMethod.
2187         (mono_class_get_inflated_method): Actually inflate the method here
2188         if it's not already inflated; we use the MonoMethodInflated's new
2189         `inflated' field as a cache.
2190
2191 2004-12-26  Martin Baulig  <martin@ximian.com>
2192
2193         * class.c
2194         (inflate_generic_class): Moved some code out of inflate_generic_type().
2195         (mono_class_inflate_generic_method): If we're already inflated,
2196         inflate the context and use the declaring method; ie. make sure
2197         the declaring method of an inflated method is always the generic
2198         method definition.
2199         (mono_class_create_from_typedef): Create
2200         `class->generic_container->context->gclass'.
2201
2202 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
2203
2204         * metadata-internals.h, marshal.c, reflection.c: More
2205         MonoGHashTable->GHashTable.
2206
2207         * domain-internals.h, class.c: Change MonoGHashTable's into
2208         GHashTables for some cases where no gc stuff is used
2209
2210         All users: update apis
2211
2212 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
2213
2214         * metadata.c (builtin_types): Make this `const'. Makes this get
2215         put into the shareable section.
2216         (mono_metadata_init): Casts to make gcc happy.
2217
2218 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
2219
2220         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
2221
2222 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
2223
2224         * icall.c: Added an internal call to retrieve the position and length
2225         of assembly-level declarative security attributes (RequestMinimum, 
2226         RequestOptional and RequestRefuse). This is used by the Assembly class
2227         to re-create the corresponding permission sets.
2228
2229 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
2230
2231         * marshal.c: fix the stelemref wrapper to be type correct
2232         (and faster).
2233
2234 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
2235
2236         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
2237         to do key & 0x7fffffff. Hashtable already does this. It just
2238         results in longer code.
2239
2240 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
2241
2242         * appdomain.c: Bump corlib version.
2243         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
2244         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
2245         * reflection.c|h: Add functions to get declarative security infos
2246         (blob position and length) for assemblies, classes and methods.
2247
2248 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
2249
2250         * reflection.c: sort the constant table (bug #70693).
2251
2252 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
2253
2254         * object-internals.h, threads.c, domain.c: add accessors for
2255         the MonoThread and MonoDomain tls keys.
2256
2257 2004-12-18  Martin Baulig  <martin@ximian.com>
2258
2259         * class.c (inflate_generic_type): If we're inflating a generic
2260         instance, set `ngclass->context->container = context->container';
2261         ie. the container we inflated into.
2262
2263         * metadata.c (mono_metadata_parse_generic_param): Reflect above
2264         inflate_generic_type() changes.
2265
2266 2004-12-17  Martin Baulig  <martin@ximian.com>
2267
2268         * class-internals.h
2269         (MonoGenericClass): Replaced `MonoType *generic_type' with
2270         `MonoClass *generic_class'.  Removed `dynamic_info'; if
2271         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
2272         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
2273
2274 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
2275
2276         * exception.c (mono_exception_from_token): New helper function.
2277
2278 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
2279
2280         * assembly.c (mono_assembly_load_with_partial_name): Call 
2281         mono_assembly_loaded before invoking the preload hooks. Fixes
2282         #70564.
2283
2284         * object-internals.h (MonoThread): Change culture_info and 
2285         ui_culture_info into an array.
2286
2287         * threads.c: Cache culture info objects from more than one appdomain.
2288
2289         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
2290         current UI culture.
2291
2292 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
2293
2294         * threads.h threads.c appdomain.c: Clear the culture_info field of
2295         all threads during unloading if they point to an object in the dying
2296         appdomain.
2297
2298 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
2299
2300         * culture-info.h (TextInfoEntry): New struct
2301         * object-internals.h: sync with managed
2302         * locales.c: fill the `text_info_data' field
2303         * culture-info-tables.h: update
2304
2305 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
2306
2307         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
2308         collector.
2309
2310 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
2311
2312         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
2313         (ves_icall_ModuleBuilder_getMethodToken): Ditto
2314
2315 2004-12-12  Martin Baulig  <martin@ximian.com>
2316
2317         * mono-debug-debugger.c (write_type): If we're an enum and the
2318         builtin types have already been initialized, call mono_class_init().
2319
2320 2004-12-11  Martin Baulig  <martin@ximian.com>
2321
2322         * metadata.c (mono_metadata_load_generic_params): Added
2323         `MonoGenericContainer *parent_container' argument; automatically
2324         compute `container->is_method'; pass the correct owner to
2325         get_constraints().      
2326
2327         * reflection.c (compare_genericparam): Sort the GenericParam table
2328         according to increasing owners. 
2329
2330 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
2331
2332         * profiler.c: allow disabling the default profiler.
2333
2334 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
2335
2336         * decimal.c, icall.c: allow disabling System.Decimal support.
2337
2338 2004-12-09  Marek Safar <marek.safar@seznam.cz>
2339
2340         * reflection.c: Add support for null attribute arguments.
2341
2342 2004-12-09  Martin Baulig  <martin@ximian.com>
2343
2344         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
2345         names to get rid of compiler warnings.
2346
2347 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2348
2349         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
2350         mono_marshal_load_type_info (). Fixes #69625.
2351         (mono_marshal_get_ptr_to_struct): Likewise.
2352
2353 2004-12-08  Martin Baulig  <martin@ximian.com>
2354
2355         * mono-debug.h: Bumped version number to 47.
2356
2357         * mono-debug-debugger.c
2358         (mono_debugger_event_handler, mono_debugger_event): Take two
2359         guint64 arguments insteed of a gpointer and a guint32.  
2360
2361 2004-12-08  Martin Baulig  <martin@ximian.com>
2362
2363         * debug-mono-symfile.h
2364         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
2365         `address' to `native_offset'.
2366
2367 2004-12-08  Martin Baulig  <martin@ximian.com>
2368
2369         * class.c (mono_class_create_from_typespec): Only inflate if we
2370         either have `context->gclass' or `context->gmethod'.
2371
2372 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2373
2374         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
2375
2376         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
2377
2378         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
2379
2380         * reflection.c (mono_assembly_get_object): Remove the workaround put
2381         in for the release.
2382         
2383         * appdomain.c: Use the corlib_internal field from MonoAssembly.
2384
2385         * appdomain.c: Bump corlib version.
2386
2387         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
2388         be visible in other appdomains.
2389
2390 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
2391
2392         * threads.c: Interlocked inc and dec for longs were messed up,
2393         use a KISS based impl for this. Fixes 70234
2394
2395 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
2396
2397         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
2398
2399 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
2400
2401         * icall.c: fix to follow policy not to allow struct
2402         arguments in icalls.
2403
2404 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2405
2406         * process.c: make the patch that handles spaces in file paths work
2407         on mono/windows too.
2408
2409 2004-12-06  Martin Baulig  <martin@ximian.com>
2410
2411         * class.c (mono_class_create_generic): Call
2412         mono_class_setup_supertypes() if we're dynamic.
2413         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
2414
2415 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
2416
2417         * object-internals.h: Add new fields to MonoThread.
2418
2419         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2420
2421         * icall.c threads-types.h threads.c: Add new icalls.
2422
2423         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
2424
2425         * object-internals.h (MonoReflectionAssembly): Sync object layout with
2426         managed side.
2427
2428         * appdomain.c: Bump corlib version.
2429
2430         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
2431         internal assemblies. Fixes #69181.
2432
2433 2004-12-05  Martin Baulig  <martin@ximian.com>
2434
2435         * class.c (mono_class_inflate_generic_signature): Make this a
2436         no-op if `context' is NULL or we don't have any type parameters;
2437         also copy `sentinelpos'.        
2438
2439 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
2440
2441         * image.c: Add unbox_wrapper_cache.
2442
2443         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
2444
2445         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
2446         function generator.
2447         
2448         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
2449         Fixes #70173.
2450
2451         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
2452         
2453 2004-12-04  Martin Baulig  <martin@ximian.com>
2454
2455         * loader.c (mono_method_get_signature_full): New public function;
2456         like mono_method_get_signature(), but with an additional
2457         `MonoGenericContext *' argument.
2458
2459         * class.c (mono_class_inflate_generic_signature): Formerly known
2460         as inflate_generic_signature(); make this public.
2461
2462 2004-12-04  Martin Baulig  <martin@ximian.com>
2463
2464         * metadata.c
2465         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
2466         instead of a `MonoGenericContainer *'.  
2467         (mono_metadata_parse_array_full): Likewise.
2468         (mono_metadata_parse_signature_full): Likewise.
2469         (mono_metadata_parse_method_signature_full): Likewise.
2470         (mono_metadata_parse_generic_inst): Likewise.
2471         (mono_metadata_parse_generic_param): Likewise.
2472         (mono_metadata_parse_mh_full): Likewise.
2473         (mono_type_create_from_typespec_full): Likewise.
2474
2475 2004-12-03  Martin Baulig  <martin@ximian.com>
2476
2477         * class-internals.h (MonoGenericContainer): Replaced the
2478         `MonoGenericContext * pointer with a `MonoGenericContext'
2479         structure and made it the first element.
2480
2481 2004-12-03  Martin Baulig  <martin@ximian.com>
2482
2483         * class.c
2484         (inflate_generic_type): Set the `context->container' when creating
2485         a new MonoGenericContext.
2486         (mono_class_inflate_generic_method): Likewise.
2487         (mono_class_create_from_typespec): Just use `context->container'
2488         to get the container.
2489
2490         * loader.c (method_from_methodspec): Set `context->parent' from
2491         `context->container' - and if that's a method container, use its
2492         parent.  Also set the `context->container' when creating a new
2493         MonoGenericContext.
2494         (mono_get_method_from_token): Use just `context->container' to get
2495         the container.
2496
2497         * metadata.c (do_mono_metadata_parse_generic_class): Also set
2498         `gclass->context->container'.
2499
2500         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
2501         the `context->container' when creating a new MonoGenericContext.
2502
2503 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
2504
2505         * reflection.c (compare_genericparam): Sort params with identical
2506         owner by their number. Fixes gen-111 on sparc.
2507
2508 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2509
2510         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
2511         around the domain changes.
2512
2513         * appdomain.c (mono_domain_unload): Handle the case when the thread
2514         calling Unload is itself being aborted during unloading. Fixes #70022.
2515
2516         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
2517
2518         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
2519         checkpoint_func as an icall so it gets a wrapper.
2520         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
2521         in the cross-appdomain wrappers too.
2522
2523         * threads.c (mono_thread_has_appdomain_ref): Make this public.
2524
2525         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
2526
2527         * reflection.c: Fix some memory leaks.
2528         
2529 2004-12-02  Martin Baulig  <martin@ximian.com>
2530
2531         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
2532
2533         * metadata.c (generic_class_cache): New static hashtable.
2534         (mono_metadata_lookup_generic_class): New public method.
2535
2536 2004-12-02  Martin Baulig  <martin@ximian.com>
2537
2538         * class.c (mono_class_create_from_typedef): Call
2539         mono_class_setup_parent() and mono_class_create_mono_type() before
2540         parsing the interfaces.
2541
2542 2004-12-02  Martin Baulig  <martin@ximian.com>
2543
2544         * metadata.c (generic_inst_cache): New static hashtable.
2545         (mono_metadata_lookup_generic_inst): New public function.
2546         (mono_metadata_inflate_generic_inst): New public function.
2547         (mono_metadata_parse_generic_inst): New public function.
2548         (do_mono_metadata_parse_generic_class): Use the new
2549         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
2550         since this'll also use the cache.
2551
2552         * reflection.c (mono_reflection_bind_generic_method_parameters):
2553         Use mono_metadata_lookup_generic_inst() to use the new cache.
2554
2555         * class.c (inflate_mono_type): Use
2556         mono_metadata_inflate_generic_inst() to inflate a generic
2557         instance; this'll also use the new cache.
2558
2559         * loader.c (method_from_methodspec): Use
2560         mono_metadata_parse_generic_inst() and
2561         mono_metadata_inflate_generic_inst() rather than parsing it
2562         manually, so we can use the new cache.
2563
2564 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2565
2566         * threads.c (wait_for_tids): Do not incorrectly free threads when 
2567         the wait times out.
2568
2569 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2570
2571         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
2572         iter->args based on whether parameters are passed in registers (i.e.
2573         MONO_ARCH_REGPARMS is defined)
2574
2575 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
2576
2577         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
2578         the exception message. Fixes #70070.
2579         (method_from_methodspec): Fix warnings.
2580
2581 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2582
2583         * process.c: (complete_path) return the path quoted
2584
2585 2004-12-01  Martin Baulig  <martin@ximian.com>
2586
2587         * class-internals.h (MonoGenericInst): New structure.
2588         (MonoGenericClass): Replaced `type_argc', `type_argv' and
2589         `is_open' with `MonoGenericInst *inst'.
2590         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
2591         `is_open' with `MonoGenericInst *inst'.
2592
2593 2004-11-30  Martin Baulig  <martin@ximian.com>
2594
2595         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
2596
2597         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
2598         to `generic_class_cache'.
2599
2600         * metadata.c
2601         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
2602         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
2603         (mono_generic_inst_is_valuetype): Renamed to
2604         mono_generic_class_is_valuetype().
2605
2606         * class-internals.h
2607         (MonoGenericInst): Renamed to MonoGenericClass.
2608         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
2609         (MonoClass): Renamed `generic_inst' to `generic_class'.
2610         (MonoGenericContext): Renamed `ginst' to `gclass'.
2611
2612         * object-internals.h
2613         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
2614
2615         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
2616         mono_reflection_generic_class_initialize().
2617
2618         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
2619         now known as "System.Reflection.MonoGenericClass".
2620         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
2621
2622 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
2623
2624         * class-internals.h: Added a flag field to MonoClass to cache the
2625         declarative security attributes actions associated with the class.
2626         * domain-internals.h: Added booleans to MonoJitInfo to cache the
2627         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
2628         applicable to the JITted method.
2629         * reflection.c|h: Added functions to extract (as flags) which security
2630         actions are available (declaratively) for a method, class or assembly.
2631         * metadata.c|h: Added functions to search the declarative security
2632         table in the metadata.
2633         
2634 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
2635
2636         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
2637         EXPORTEDTYPES are already in the class name cache, so there is no
2638         need to add extra code here to look at them. Just removes a bit of
2639         cruft.
2640
2641         (ves_icall_System_Environment_get_TickCount): No need for #if
2642         WINDOWS. We already have the code in io-layer.
2643
2644 2004-11-28  Martin Baulig  <martin@ximian.com>
2645
2646         * loader.c
2647         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
2648         Fixes gen-112.cs.
2649
2650 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
2651
2652         * assembly.c (do_mono_assembly_open): Instead of having a
2653         conditional WITH_BUNDLE, incorporate support for bundles here, by
2654         having a global `bundles' variable holding a pointer to the actual
2655         bundles. 
2656
2657         (mono_register_bundled_assemblies): New API call used by the
2658         bundle code. 
2659
2660         See mkbundle.1 for details.
2661         
2662 2004-11-27  Martin Baulig  <martin@ximian.com>
2663
2664         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
2665         the vtable for generic methods.
2666
2667 2004-11-26  Martin Baulig  <martin@ximian.com>
2668
2669         * metadata.c
2670         (mono_metadata_generic_method_hash): New public function.
2671         (mono_metadata_generic_method_equal): Likewise.
2672
2673         * class-internals.h
2674         (MonoGenericContainer): Added `GHashTable *method_hash'.
2675
2676         * reflection.c (ReflectionMethodBuilder): Added
2677         `MonoGenericContainer *generic_container'.
2678         (reflection_methodbuilder_to_mono_method): Don't create a new
2679         MonoGenericContainer each time we're called.
2680         (mono_reflection_bind_generic_method_parameters): Use
2681         `container->method_hash' to cache the results so we don't create a
2682         different method if we're called several times with the same
2683         arguments.
2684
2685         * loader.c (method_from_methodspec): Use the new
2686         `container->method_hash' here, too.
2687
2688 2004-11-26  Martin Baulig  <martin@ximian.com>
2689
2690         * class.c (inflate_generic_signature): Correctly compute
2691         `res->has_type_parameters'.
2692         (mono_class_vtable): Use the `has_type_parameters' flag to
2693         determine whether we're a generic method.
2694
2695         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
2696
2697 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
2698
2699         * object.c (mono_runtime_run_main): Fix a small memory leak.
2700
2701 2004-11-25  Martin Baulig  <martin@ximian.com>
2702
2703         * class.c (set_generic_param_owner): Fixed the loop.
2704
2705 2004-11-25  Martin Baulig  <martin@ximian.com>
2706
2707         * object.c (mono_class_vtable): Don't create any JIT wrappers for
2708         generic methods.
2709
2710 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
2711
2712         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
2713         names. Fixes #69787.
2714
2715 2004-11-24  Martin Baulig  <martin@ximian.com>
2716
2717         * class.c (mono_class_create_generic_2): If we don't have a
2718         `ginst->parent', inflate `gklass->parent' to get our parent.
2719
2720 2004-11-24  Martin Baulig  <martin@ximian.com>
2721
2722         * reflection.c (compare_genericparam): Correctly sort the
2723         GenericParam table; fixes #69779.
2724
2725 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
2726
2727         * reflection.c: When writing a PE file, don't create a huge
2728         buffer in memory. Just write the arrays we have to the file.
2729         This reduces memory usage.
2730
2731         * metadata-internals.h: MonoDynamicStream pefile is no longer used
2732         globally.
2733
2734 2004-11-17  Martin Baulig  <martin@ximian.com>
2735
2736         * class.c (mono_class_init): Don't setup `class->parent' for
2737         dynamic instances; moved this to mono_class_generic_2().
2738         (mono_class_create_generic): Also set `klass->inited' for dynamic
2739         generic instances.
2740         (mono_class_create_generic_2): Don't do anything for dynamic
2741         generic instances.  Set `klass->parent' here and also call
2742         mono_class_setup_parent() here. 
2743
2744         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
2745         `MonoType *parent' argument; set `ginst->parent' before calling
2746         mono_class_create_generic_2(), so we set the correct parent.
2747
2748 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
2749
2750         * reflection.c: allow getting attributes from ModuleBuilder
2751         (used by ikvm).
2752
2753 2004-11-17  Martin Baulig  <martin@ximian.com>
2754
2755         * class.c (mono_class_create_from_typedef): If a type parameter is
2756         inherited from an outer class, set its owner to that class.
2757
2758 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
2759
2760         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
2761           for (int*) written size. This fixes bug #69592.
2762
2763 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
2764
2765         * icall.c: Added IsAuthenticodePresnet internal call.
2766         * image.c|h: New function that check a MonoImage for an Authenticode
2767         signature in the certificate PE data directory.
2768         * security.c|h: New internal call to ask the runtime if an 
2769         Authenticode signature seems referenced in the PE header.
2770
2771 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
2772
2773         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
2774
2775         * reflection.c (mono_image_create_pefile): Free the assembly streams
2776         after writing out the assembly file.
2777
2778         * object.c (mono_runtime_run_main): Fix small memory leak.
2779
2780         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
2781         property access modifiers. Fixes #69389.
2782
2783 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
2784
2785         * domain.c, object.c, object-internals.h, domain-internals.h,
2786         object.h, marshal.c: keep dynamic code info per domain.
2787
2788 2004-11-15  Martin Baulig  <martin@ximian.com>
2789
2790         * class.c (mono_type_get_name_recurse): Put type arguments in
2791         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
2792         see bug #68387.
2793
2794 2004-11-15  Martin Baulig  <martin@ximian.com>
2795
2796         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
2797         (mono_class_setup_vtable): When computing `the_cname' for a
2798         generic instance, don't include the namespace since we'd otherwise
2799         add it twice.
2800
2801 2004-11-15  Martin Baulig  <martin@ximian.com>
2802
2803         * class.c (mono_class_create_generic): Changed return type to void.
2804         (mono_class_create_generic_2): New public function; setup
2805         `class->method', `class->field' and `class->interfaces' here
2806         instead of in mono_class_init().
2807
2808         * class.h (mono_class_create_generic): Moved to class-internals.h.
2809
2810 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
2811
2812         * reflection.c (mono_image_create_pefile): take a file HANDLE.
2813         rather than writing to memory, write to this file. Right now,
2814         we are just writting into a buffer, and copying that. However
2815         we can avoid the buffer later.
2816
2817         (mono_dynamic_stream_reset): new function
2818
2819         * icall.c, object-internals.h: update for the above.
2820
2821 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
2822
2823         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
2824         have been using gc'd memory. First it is slower, unlikely
2825         the comment in the source code said, secondly, it increases
2826         our footprint to do it in the gc.
2827
2828         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
2829         the method so that it does not have to copy to managed code.
2830
2831 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
2832
2833         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
2834
2835 2004-11-12  Martin Baulig  <martin@localhost>
2836
2837         * reflection.c (mono_image_create_token): Allow generic method
2838         definitions here, since they may appear in an `.override'; see
2839         gen-98/gen-99 for an example.
2840
2841 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
2842
2843         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
2844         #69365.
2845
2846         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
2847         descriptive.
2848
2849 2004-11-11  Martin Baulig  <martin@ximian.com>
2850
2851         * class.c (mono_class_setup_vtable): In an explicit interface
2852         implementation, the method name now includes the arity.
2853
2854 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
2855
2856         * object.c (mono_array_full_copy): Fix warning.
2857
2858 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
2859
2860         * appdomain.c: Removed look_for_method_by_name(). Use the new method
2861         mono_class_get_method_from_name() instead.
2862         
2863         * class-internals.h: Added two new types of wrappers. 
2864         Added MonoRemotingTarget enum. Added new trampoline function type, which
2865         takes an additional MonoRemotingTarget value as parameter, so it is
2866         possible to request a trampoline for a specific target.
2867         
2868         * class.c: Added new mono_class_get_method_from_name() method.
2869         
2870         * class.h: In MonoRemoteClass, we can have now to vtables, one for
2871         general remoting sinks and one specific for cross domain calls.
2872         
2873         * debug-helpers.c: Added new wrapper names.
2874         
2875         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
2876         of a remote class.
2877         
2878         * image.c: Porperly delete value objects form the remoting invoke hashtable.
2879         
2880         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
2881         with several other methods (mono_marshal_get_xappdomain_dispatch,
2882         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
2883         and others) can generate a fast remoting wrapper for cross domain calls.
2884         More information can be found in docs/remoting.
2885         Other changes: Removed mono_find_method_by_name, and used
2886         mono_class_get_method_from_name instead.
2887         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
2888         is stored in the remoting invoke hashtable.
2889         
2890         * marshal.h: published the new method for getting the xdomain wrapper,
2891         and also added a method for getting the adequate wrapper for a given
2892         method and target.
2893         
2894         * object-internals.h, object.c: Added a couple of methods for capying and
2895         cloning arrays.
2896         Modified mono_install_remoting_trampoline, which takes the new remoting
2897         trampoline that has a remoting target as parameter.
2898         mono_class_proxy_vtable now also takes a remoting target as parameter, and
2899         will return the most suitable vtable for the target.
2900         Added mono_remote_class_vtable, which returns the vtable of a remote class
2901         (which can be the normal remoting vtable or the xdomain vtable).
2902         
2903         * threads.c: the xdomain invoke and dispatch wrappers must also be
2904         protected against interruptions.
2905
2906 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2907
2908         * icall.c: use memmove in BlockCopyInternal when the source and
2909         destination arrays are the same.
2910
2911 2004-11-09  Martin Baulig  <martin@ximian.com>
2912
2913         * class-internals.h (MonoGenericContainer): Removed `method' and
2914         `signature', replaced them with `is_method' and `is_signature'
2915         flags.  Added `context'.
2916
2917         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
2918         instead of a `MonoGenericContainer *'.
2919
2920         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
2921         for dynamic type parameters.
2922         (mono_metadata_load_generic_params): Setup `container->context'.
2923
2924         * reflection.c (mono_reflection_setup_generic_class): Setup
2925         `tb->generic_container->context'.
2926         (do_mono_reflection_bind_generic_parameters): Use
2927         mono_class_inflate_generic_type() to correctly inflate types,
2928         rather than using our own hack just for MONO_TYPE_VAR.
2929
2930 2004-11-09  Martin Baulig  <martin@ximian.com>
2931
2932         * class.c (mono_class_inflate_generic_method): Small fix; don't
2933         crash here.
2934
2935         * icall.c
2936         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
2937         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
2938         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
2939         (ves_icall_Type_BindGenericParameters): Likewise.
2940         (ves_icall_Type_get_IsGenericInstance): Likewise.
2941         (ves_icall_Type_GetGenericParameterPosition): Likewise.
2942         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
2943         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2944         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2945
2946 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
2947
2948         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
2949         assembly versions and public key tokens. Fixes #69113.
2950
2951 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
2952
2953         * metadata.c: fix bug introduced with the type cache changes
2954         on 2004-11-06.
2955
2956 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
2957
2958         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
2959         the MonoClass pointer instead of the token in exception clauses.
2960         * reflection.c: updates for the above and make the code not depend
2961         on the structure of MonoExceptionClause.
2962
2963 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
2964
2965         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
2966         Add support for dynamic assemblies. Fixes #69114.
2967
2968         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
2969
2970 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
2971
2972         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
2973         since most only those methods use it. the code member of
2974         MonoMethodPInvoke was dead, so that can be removed too. Also,
2975         remove inline_count (again, not used), and move slot so that it
2976         can share bits with some other flags. This saves 8 bytes in the
2977         structure and gives us about 50 kb back for mcs helloworld.cs
2978
2979         * *.[ch]: Do naming changes for the above.
2980
2981         * loader.c (mono_method_get_header): Lazily init the header
2982         on first access.
2983         (mono_get_method_from_token): don't init the header here
2984         (mono_free_method): the header may never be allocated
2985
2986         Overall, this saves 150 kb of unmanaged allocations
2987         for mcs helloworld.cs. That accounts for 10% of the unmanaged
2988         memory at runtime.
2989         
2990         * loader.c, loader.h (mono_method_get_header): new accessor.
2991
2992         * *.[ch]: use the above method. Prepares us to lazily load
2993         the header.
2994
2995         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
2996         three warnings, which are actual bugs (see 69206).
2997
2998         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
2999         unused. Saves a cool 4 bytes / method.
3000
3001 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
3002
3003         * metadata.c (builtin_types): Add types for System.Object here.
3004         (mono_metadata_parse_type_full): Cache MonoType*'s that are
3005         for a class or valuetype from klass->this_arg or klass->byval_arg.
3006
3007         On mcs for a hello world, this gets us down from 21836 MonoType's
3008         to 14560.
3009
3010         (mono_metadata_free_type): Account for the above change.
3011
3012 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
3013
3014         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
3015         exception instead of asserting if name is null.
3016         (ves_icall_System_AppDomain_GetData): Ditto.
3017
3018 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
3019
3020         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
3021         EnumBuilder.
3022
3023         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
3024         Return NULL when the domain does not have entry_assembly set.
3025
3026         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
3027         Add a 'resource_modules' argument.
3028         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
3029
3030         * reflection.c (mono_reflection_create_runtime_class): Move setting
3031         of wastypebuilder here, so mono_get_type_object () returns a MonoType
3032         for enums too.
3033
3034         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
3035         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
3036         Throw an ArgumentNullException if 'ptr' is null.
3037
3038         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
3039         assemblies here. Fixes #69020.
3040
3041 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
3042
3043         * reflection.c (build_compressed_metadata): Fix the previous patch for
3044         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
3045         the stack.
3046
3047 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
3048
3049         * assembly.c (mono_assembly_names_equal): Allow a match if one of
3050         the cultures is false. Fixes #69090.
3051
3052         * reflection.c (build_compressed_metadata): Fix invalid memory read 
3053         detected by valgrind.
3054         
3055         * reflection.c (mono_reflection_get_type): Avoid triggering a 
3056         TypeResolve multiple times for the same type. Fixes #65577.
3057
3058 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
3059
3060         * marshal.c: Avoid using ldftn to call managed functions. It is
3061         much slower than just a call.
3062
3063         * reflection.c (mono_module_get_object): free the basename we
3064         allocate here from glib.
3065         
3066         * reflection.c (ensure_runtime_vtable): make sure to free
3067         overrides.  Also, we were allocating an array of MonoMethod not an
3068         array of MonoMethod*.
3069
3070         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
3071
3072         * image.c (mono_image_close): free image->guid here.
3073
3074 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
3075
3076         * reflection.c: Fix some spec conformance issues with the PE file
3077         structures so mcs compiled apps run on the Net 2.0 beta.
3078
3079 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
3080
3081         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
3082         Implement this. Fixes #67264.
3083
3084         * debug-helpers.h debug-helpers.c marshal.c: Move 
3085         mono_find_method_by_name to debug-helpers.c.
3086
3087 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
3088
3089         * object.c (mono_release_type_locks): type_initialization_hash is
3090         a GHashTable.
3091
3092         * reflection.c object.c object-internals.h: Fix warnings.
3093
3094         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
3095         without accessors. Fixes #61561.
3096
3097         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
3098         application base from the root domain if not set. Fixes #65641.
3099         (mono_runtime_init): Fix warning.
3100
3101 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3102
3103         * appdomain.c: call mono_thread_pool_init.
3104         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
3105         of worker threads based on the number of CPUs and the environment
3106         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
3107         for non-windows (windows) systems.
3108
3109 2004-10-27  Chris Toshok  <toshok@ximian.com>
3110
3111         * mono-debug-debugger.c (write_class): don't call mono_class_init
3112         here, as even with the check for (!klass->init_pending), we get
3113         into a situation where we're hitting cycles in class
3114         initialization.  Fixes #68816.
3115
3116 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
3117
3118         * image.c: Avoid overwriting values in the loaded_images_hash when an
3119         assembly is loaded multiple times. Fixes #61152.
3120
3121         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
3122         so multiple satellite assemblies for the same name can be loaded.
3123         Fixes #68259.
3124
3125         * mono_domain_assembly_preload: Actually return the loaded assembly, 
3126         not NULL.
3127
3128         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
3129         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
3130
3131         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
3132         pending finalizers are not invoked after the appdomain has been 
3133         unloaded. Fixes #67862.
3134
3135 2004-10-22  Martin Baulig  <martin@ximian.com>
3136
3137         * mono-debug-debugger.c
3138         (mono_debugger_runtime_invoke): Don't box valuetypes.
3139
3140 2004-10-22  Chris Toshok  <toshok@ximian.com>
3141
3142         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
3143         don't hide private methods.
3144
3145 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
3146
3147         * icall.c: Allows the runtime to "share" (when known) the public key
3148         token of an assembly. This avoid the need to recalculate the token 
3149         (from the public key) in managed code.
3150
3151 2004-10-21  Chris Toshok  <toshok@ximian.com>
3152
3153         * debug-helpers.c (append_class_name): argh, revert last patch.
3154         
3155 2004-10-21  Chris Toshok  <toshok@ximian.com>
3156
3157         * debug-helpers.c (append_class_name): use '+' as the delimiter,
3158         not '/', so that it matches what the debugger uses to look up
3159         methods.
3160
3161 2004-10-21  Martin Baulig  <martin@ximian.com>
3162
3163         * mono-debug-debugger.c (mono_debugger_throw_exception): New
3164         public method; this is called each time an exception is thrown and
3165         allows the debugger to use exception catch points.
3166
3167 2004-10-21  Martin Baulig  <martin@ximian.com>
3168
3169         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
3170         the stack pointer and the exception object in some struct and pass
3171         that to the debugger.
3172
3173 2004-10-21  Chris Toshok  <toshok@ximian.com>
3174
3175         * mono-debug-debugger.c (do_write_class): add instance/static
3176         event support.  We don't expose "raise" or "other" yet.
3177         (event_is_static): new method.
3178
3179 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
3180
3181         * mono-debug-debugger.c
3182         (mono_debugger_handle_exception): Remove
3183         bogus return value for fussy compilers.
3184
3185 2004-10-20  Martin Baulig  <martin@ximian.com>
3186
3187         * mono-debug-debugger.c
3188         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
3189         (mono_debugger_handled_exception): Likewise.
3190
3191 2004-10-20  Martin Baulig  <martin@ximian.com>
3192
3193         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3194         MONO_DEBUGGER_EVENT_EXCEPTION.
3195
3196         * mono-debug-debugger.c (mono_debugger_handle_exception): New
3197         public function to send the debugger a notification for an
3198         exception and inform it about a catch/finally clause.
3199
3200 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
3201
3202         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
3203         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
3204         fix 2.95 build. 
3205
3206         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
3207
3208 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
3209
3210         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
3211         marshalled as [In,Out]. Fixes #58325.
3212
3213 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
3214
3215         * reflection.c (mono_method_body_get_object): Implement some fields.
3216
3217 2004-10-12  Martin Baulig  <martin@ximian.com>
3218
3219         * reflection.c (mono_reflection_bind_generic_parameters): Small
3220         fix, correctly retrieve our parent from a generic instance.
3221
3222 2004-10-12  Martin Baulig  <martin@ximian.com>
3223
3224         * metadata.c (mono_metadata_generic_param_equal): We always have
3225         an owner.
3226
3227         * class.c
3228         (mono_class_from_generic_parameter): We need to have an owner.
3229         (my_mono_class_from_generic_parameter): Likewise.
3230
3231         * reflection.c (mono_reflection_setup_generic_class): Renamed to
3232         mono_reflection_create_generic_class() and added a new
3233         mono_reflection_setup_generic_class().  
3234         (mono_reflection_initialize_generic_param): If we're a nested
3235         generic type and inherited from the containing class, set our
3236         owner to the outer class.
3237
3238 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
3239
3240         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
3241
3242         * reflection.c (mono_method_body_get_object): New function to create
3243         a MethodBody object.
3244
3245         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
3246
3247 2004-10-11  Martin Baulig  <martin@ximian.com>
3248
3249         * metadata.c (_mono_metadata_type_equal): Renamed to
3250         do_mono_metadata_type_equal() and made static.
3251
3252 2004-10-11  Martin Baulig  <martin@ximian.com>
3253
3254         * appdomain.c: Bump corlib version number to 28.
3255
3256 2004-10-10  Martin Baulig  <martin@ximian.com>
3257
3258         * class-internals.h
3259         (MonoGenericInst): Added `MonoGenericContainer *container'.
3260         (MonoGenericMethod): Likewise.
3261         (MonoGenericContext): Likewise.
3262         (MonoGenericParam): Added `MonoGenericContainer *owner'.
3263
3264         * metadata.c
3265         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
3266         (do_mono_metadata_parse_generic_inst): Likewise.
3267         (mono_metadata_parse_type_full): New public method.  This is the actual
3268         mono_metadata_parse_type() implementation - with an additional
3269         `MonoGenericContainer *' argument.
3270         (mono_metadata_parse_array_full): Likewise.
3271         (mono_metadata_parse_signature_full): Likewise.
3272         (mono_metadata_parse_method_signature_full): Likewise.
3273         (mono_metadata_parse_mh_full): Likewise.
3274         (mono_type_create_from_typespec): Likewise.
3275         (mono_metadata_interfaces_from_typedef_full): New public method;
3276         this is similar to the other _full() methods, but we take a
3277         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
3278         (mono_metadata_parse_generic_param): Take an additional
3279         `MonoGenericContainer *' argument and lookup the MonoGenericParam
3280         from that container.
3281         (mono_metadata_generic_param_equal): New static method to compare
3282         two type parameters.
3283         (_mono_metadata_type_equal): New static method; takes an
3284         additional `gboolean signature_only' argument - if true, we don't
3285         compare the owners of generic parameters.
3286         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
3287         with a TRUE argument - do a signature-only comparision.
3288
3289         * loader.c: Use the new _full() methods and pass the
3290         MonoGenericContainer to them.
3291
3292         * object-internals.h (MonoReflectionTypeBuilder): Added
3293         `MonoGenericContainer *generic_container' field.
3294         (MonoReflectionMethodBuilder): Likewise.
3295
3296 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
3297
3298         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
3299         case initial images of dynamic assemblies.
3300
3301         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
3302
3303         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
3304
3305         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
3306         length of event->other array.
3307         (typebuilder_setup_events): Ditto.
3308
3309         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
3310         'assembly_by_name' and add an 'assemblies' list.
3311
3312         * assembly.h assembly.c: Add a new search hook for determining whenever
3313         an assembly is already loaded. Use this instead of searching in the
3314         loaded_assemblies list.
3315
3316         * domain.c appdomain.c: Implement the new search hook so loaded 
3317         assemblies are now scoped by appdomain. Fixes #67727.
3318
3319 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
3320
3321         * threads.c (mono_thread_attach): Initialize synch_lock field so
3322         mono_thread_detach works again.
3323
3324         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
3325         'lib' too. Fixes #63130.
3326
3327 2004-10-06  Jackson Harper  <jackson@ximian.com>
3328
3329         * culture-info-tables.h: regenerated.
3330
3331 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
3332
3333         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
3334         implemented by other interfaces in the result. Fixes #65764.
3335         
3336         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3337         Handle unloadable modules without crashing.
3338
3339         * image.c (load_modules): Revert the previous patch since modules must
3340         have a fixed index inside the array.
3341         
3342         * image.c (load_modules): Don't include native modules in the modules
3343         array.
3344
3345 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
3346
3347         * reflection.h: Add param_defaults field.
3348
3349         * reflection.c: Add support for parameter defaults in dynamic methods.
3350         Fixes #64595.
3351
3352         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
3353         an empty string when a type has no namespace. Fixes #64230.
3354
3355 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
3356
3357         * tabledefs.h: Added "internal" security actions to support non-CAS
3358         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
3359         Note: they do not seems to be used anymore in 2.0 (new metadata format)
3360
3361 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
3362
3363         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
3364         constructor of abstract class. Fixes #61689.
3365
3366 2004-10-04  Martin Baulig  <martin@ximian.com>
3367
3368         * class-internals.h (MonoGenericContainer): New type.
3369         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
3370         `MonoGenericContainer *generic_container'.
3371         (MonoClass): Replaced `gen_params' and `num_gen_params' with
3372         `MonoGenericContainer *generic_container'.
3373
3374         * metadata.c (mono_metadata_load_generic_params): Return a
3375         `MonoGenericContainer *' instead of a `MonoGenericParam *';
3376         removed the `num' argument.
3377
3378 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
3379
3380         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
3381         for dynamic images.
3382
3383         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
3384         machine fields.
3385
3386         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
3387
3388         * reflection.c: Save pe_kind and machine values into the generated
3389         image file.
3390
3391         * appdomain.c: Bump corlib version number.
3392
3393         * object-internals.h: Reorganize layout of LocalBuilder.
3394
3395         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
3396         New helper function.
3397
3398         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
3399         created MonoType for dynamic types. Fixes #66180.
3400
3401 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
3402
3403         * threadpool.c: the ares hashtable needs a critical section around it.
3404         this prevents some nasty segfaults
3405
3406 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
3407
3408         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
3409         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
3410         bug 67324).
3411         
3412 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
3413
3414         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
3415         
3416 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
3417
3418         * image.c: Always canonicalize image file names, to avoid loading
3419         the same assembly twice when referenced using a relative path.
3420
3421 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
3422
3423         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
3424
3425         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
3426
3427         * marshal.c: Fix warnings.
3428
3429 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
3430
3431         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
3432         attempting to marshal the delegate_trampoline as the method_addr.
3433         This patch has a static hashtable of marshalled delegates so that 
3434         we can map delegate_trampoline addresses back to delegates.  This
3435         allows a delegate passed to managed code to be passed back into native
3436         code.  Fixes #67039
3437
3438 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
3439
3440         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
3441
3442         * reflection.c (method_encode_code): Align method headers properly.
3443         Fixes #66025.
3444
3445 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
3446
3447         * marshal.c: In the runtime invoke wrapper, reset the abort
3448         exception if it is cached. This avoids the automatic rethrowal of 
3449         the exception after the catch of the wrapper. Also check for pending
3450         interruptions before calling the managed method. This is done using
3451         the new method emit_thread_force_interrupt_checkpoint, since the
3452         normal checkpoint method is ignored when running the invoke wrapper.
3453         * object.c: If the abort exception is rethrown, set the abort_exc
3454         field of the thread, so it will be rethrown aftere every catch.
3455         * threadpool.c: Only run an interruption checkpoint if what has been
3456         requested is a stop of the thread (aborts will be ignored).
3457         * threads.c: By default, a thread will now never be interrumped while
3458         running the runtime invoke wrapper (this ensures that runtime_invoke
3459         will always return to the caller if an exception pointer is provided).
3460         There is a new special method mono_thread_force_interruption_checkpoint()
3461         to force an interruption checkpoint even if running a protected
3462         wrapper, which is used by the same runtime invoke wrapper to do a check
3463         at a safe point.
3464
3465 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
3466
3467         * object.c, object-internals.h: Implemented mono_release_type_locks,
3468         which releases the cctor locks held by a thread.
3469         * threads.c, threads.h: In thread_cleanup, release cctor locks held
3470         by a thread. Added mono_thread_exit() method to be used to safely stop
3471         a thread.
3472
3473 2004-09-28  Raja R Harinath  <rharinath@novell.com>
3474
3475         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3476         Move null check before dereference.  Avoid indexing beyond the end
3477         of the 'modules' array.
3478
3479 2004-09-28  Raja R Harinath  <rharinath@novell.com>
3480
3481         * metadata-internals.h (MonoImage): Add module_count field.
3482         * image.c (load_modules): Set image->module_count.
3483         (mono_image_load_file_for_image): Use image->module_count.
3484         * reflection.c (mono_image_load_module): Append to image->modules array 
3485         of dynamic assembly.
3486         (mono_module_get_object): Fix loop to actually increment index.
3487         Use image->module_count.
3488         * assembly.c (mono_assembly_load_references): Use image->module_count.
3489         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
3490         Likewise.
3491
3492 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
3493
3494         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
3495         Avoid assert on generic types.
3496
3497 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
3498
3499         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
3500
3501         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
3502
3503         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
3504         function to convert a MarshalSpec structure to its managed counterpart.
3505
3506         * reflection.c: Fix warnings.
3507         
3508         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
3509         field.
3510
3511         * icall.c (mono_create_icall_signature): Fix build.
3512
3513 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
3514
3515         * icall.c: Add MakePointType icall.
3516
3517         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
3518         warnings.
3519
3520 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3521
3522         * threadpool.c: reuse allocated slots in the queue.
3523
3524 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
3525
3526         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
3527
3528         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
3529
3530         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
3531         previous change.
3532
3533         * tabledefs.h: Add constants for pinvoke attributes BestFit and
3534         ThrowOnUnmappableChar.
3535
3536         * icall.c (ves_icall_Type_GetPacking): New icall.
3537
3538 2004-09-24  Martin Baulig  <martin@ximian.com>
3539
3540         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
3541
3542 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3543
3544         * appdomain.c:
3545         (mono_domain_set): allow setting a domain that is being unloaded.
3546         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
3547         being unloaded.
3548
3549 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
3550
3551         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
3552         the GetCustomAttributes icall.
3553
3554 2004-09-23  Martin Baulig  <martin@ximian.com>
3555
3556         * object-internals.h (MonoReflectionGenericParam): Replaced
3557         'has_ctor_constraint', `has_reference_type' and `has_value_type'
3558         with `guint32 attrs'.
3559
3560 2004-09-23  Martin Baulig  <martin@ximian.com>
3561
3562         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
3563
3564 2004-09-23  Martin Baulig  <martin@ximian.com>
3565
3566         * object-internals.h (GenericParameterAttributes): New enum.
3567
3568 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
3569
3570         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
3571         
3572         * class.c (init_events): Fill out event->other field.
3573
3574         * class.c: Fix warnings.
3575
3576         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
3577
3578 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
3579
3580         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
3581         walk which doesn't supply the IL offset.
3582
3583 2004-09-22  Martin Baulig  <martin@ximian.com>
3584
3585         * reflection.c (mono_reflection_setup_internal_class): If we're
3586         System.ValueType, System.Object or System.Enum, set
3587         `klass->instance_size' and create the vtable.
3588         (mono_reflection_create_internal_class): If we're an enum type,
3589         get the base class from our current corlib.
3590
3591 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
3592
3593         * reflection.h (MonoResolveTokenError): New type.
3594
3595         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
3596         icall.
3597
3598         * icall.c: Add an 'error' argument to the ResolveToken icalls.
3599
3600 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
3601
3602         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
3603         Support also calling constructors, but only for already allocated objects.
3604
3605 2004-09-17  Geoff Norton <gnorton@customerdna.com>
3606
3607         * reflection.c (type_get_qualified_name): If the klass is null
3608         return the typename to avoid a NullRefEx.
3609         (encode_cattr_value): Get the qualified name of the boxed type,
3610         not the underlying enumtype.  Fixes #62984.
3611
3612 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
3613
3614         * marshal.c: Fix problems with previous checkin.
3615
3616 2004-09-21    <vargaz@freemail.hu>
3617
3618         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
3619         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
3620
3621         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
3622
3623 2004-09-21  Geoff Norton <gnorton@customerdna.com>
3624
3625         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
3626         should only return a type for pointers, arrays, and passbyref types.
3627         Fixes bug #63841.
3628
3629 2004-09-21  Martin Baulig  <martin@ximian.com>
3630
3631         * domain.c (mono_debugger_check_runtime_version): New public
3632         function.
3633
3634         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
3635
3636 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
3637
3638         * reflection.c: Added missing sort to the declarative security 
3639         attributes table. MS implementation stops seeing the attributes if the
3640         token number regress in the table (as shown by ildasm and permview).
3641
3642 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
3643
3644         * object-internals.h (MonoReflectionModule): Add 'token' field.
3645         
3646         * reflection.c (mono_reflection_get_token): Add support for Module
3647         and Assembly.
3648         (mono_module_get_object): Set 'token' field.
3649         (mono_module_file_get_object): Set 'token' field.
3650
3651         * icall.c: Add new Assembly and Module icalls.
3652
3653         * appdomain.c: Bump corlib version.
3654
3655 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
3656
3657         * loader.h loader.c class.h class.c: Add helper functions for obtaining
3658         tokens of metadata objects.
3659
3660         * reflection.h reflection.c (mono_reflection_get_token): New function
3661         to obtain the token of a metadata object.
3662
3663         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
3664
3665 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
3666
3667         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
3668         
3669         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
3670
3671 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
3672
3673         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
3674         * object-internals.h: Added 3 MonoArray* members to MonoReflection
3675         AssemblyBuilder to access the permissions set in the class lib.
3676         * reflection.c: Added security attributes encoding step in 
3677         mono_image_build_metadata.
3678         * tabledefs.h: Added new security actions defined in 2.0:
3679         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
3680
3681 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
3682
3683         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
3684         macro parameter.
3685
3686 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
3687  
3688         * locales.c: nullify the ICU_collator member of CompareInfo when it is
3689           finalized. There where random SIGSEVs at program termination, when
3690           an object being finalized was trying to do a string comparison and
3691           the current culture was already finalized.
3692  
3693 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3694
3695         * threads.c: call thread_cleanup before finishing the thread if we get
3696         there.
3697
3698 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
3699
3700         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
3701         assemblies from the parent. Fixes #65665.
3702
3703 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
3704
3705         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
3706         modifiers.
3707
3708 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
3709
3710         * reflection.h: add prototype for mono_get_dbnull_object
3711         * reflection.c: add prototypes for get_default_param_value_blobs 
3712         and mono_get_object_from_blob for fussier compilers
3713
3714 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
3715  
3716         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
3717         false deadlock checks in class initialization.
3718  
3719 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
3720
3721         * image.c (mono_image_addref): Fix comment.
3722
3723         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
3724         possible.
3725
3726 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
3727
3728         * reflection.c (mono_param_get_objects): Modified to return
3729         ParameterInfo.DefaultValue object.
3730
3731         (get_default_param_value_blobs):
3732         (mono_get_object_from_blob):
3733         (mono_get_dbnull_object): New helper routines. 
3734
3735         * object.c (mono_get_constant_value_from_blob): New helper routine
3736         carved out from get_default_field_value ()
3737
3738         * object-internals.h (mono_get_constant_value_from_blob): Added
3739         function declaration.
3740
3741 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
3742
3743         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
3744         referenced assemblies. Fixes #62135.
3745
3746         * exception.h exception.c (mono_get_exception_file_not_found2): New
3747         helper function.
3748
3749 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
3750
3751         * class.h class.c: Add mono_type_get_underlying_type ().
3752
3753 2004-09-09  Geoff Norton <gnorton@customerndna.com>
3754
3755         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
3756         Fix GetTypes() to support dynamically created assemblies.
3757
3758 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
3759
3760         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
3761         
3762         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
3763         previous patch.
3764
3765         * reflection.h reflection.c loader.c: Allow dynamic construction of
3766         pinvoke methods. Fixes #65571.
3767         
3768         * reflection.c (mono_reflection_get_type): Revert previous change since
3769         it causes regressions.
3770
3771 2004-09-08  Martin Baulig  <martin@ximian.com>
3772
3773         * class.c (class_compute_field_layout): Don't call
3774         mono_class_layout_fields() for open generic instances.
3775
3776 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
3777         * threads.c appdomain.c: fix typo in GC macro
3778
3779 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3780
3781         * threads.c: don't call mono_thread_detach() in start_wrapper(),
3782         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
3783
3784 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
3785
3786         * image.c (mono_image_close): Applied patch from 
3787         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
3788         assembly is loaded multiple times from data.
3789         
3790         * image.c (mono_image_open): Fix warning.
3791
3792 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3793
3794         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
3795         once. Fixes #58334.
3796         
3797         * reflection.c (mono_reflection_create_runtime_class): Initialize
3798         klass->nested_classes. Fixes #61224.
3799
3800 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
3801
3802         * threads.c: sched_yield() on exit, to allow threads to quit.
3803
3804 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3805
3806         * object.c (mono_unhandled_exception): Remove leftover debug code.
3807
3808 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
3809
3810         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
3811
3812 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3813
3814         * marshal.c (emit_marshal_array): Really null terminate string arrays.
3815         
3816         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
3817
3818 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3819
3820         * marshal.c (emit_marshal_array): Null terminate string arrays.
3821         
3822         * marshal.c (raise_auto_layout_exception): Fix warning.
3823
3824         * reflection.c (mono_param_get_objects): Initialize the default value
3825         with DBNull.Value, not null. Fixes #62123.
3826
3827 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
3828
3829         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
3830         throw an exception with a cute explanation.
3831
3832 2004-09-06  Dick Porter  <dick@ximian.com>
3833
3834         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
3835         Close the new process's thread handle, as we don't use it.  The
3836         handle stays around forever otherwise.
3837
3838 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3839
3840         * object.c (arith_overflow): Fix warning.
3841
3842         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
3843         calling conventions in method refs. Fixes #65352.
3844
3845         * reflection.c: Fix warnings.
3846
3847 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
3848
3849         * icall.c: Add a new icall for Array.Clear
3850
3851 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
3852
3853         * object.c: When allocating an array, we have to throw
3854         an overflow exception if any of the lengths are < 0.
3855
3856 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3857
3858         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
3859         properly. Also move implementation of string array marshalling to 
3860         managed code. Fixes #42316.
3861
3862 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3863
3864         * assembly.c: provide more information when loading an assembly fails.
3865
3866 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3867
3868         * filewatcher.c: don't expect the development fam package to be
3869         installed.
3870
3871 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
3872
3873         * marshal.c: Make a copy of the signature cookie since it will be
3874         freed by the caller.
3875         
3876         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
3877
3878         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
3879
3880         * metadata.c (mono_metadata_free_marshal_spec): New function to free
3881         marshal specs.
3882
3883         * marshal.c: More refactoring.
3884         
3885         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
3886         smaller functions.
3887
3888 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
3889
3890         * object.c: In mono_message_invoke, fill the output parameter array after
3891           calling the managed method (it was done before the call). This fixes
3892           bug #59299.
3893
3894 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
3895
3896         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
3897         as well.
3898
3899 2004-09-02  Martin Baulig  <martin@ximian.com>
3900
3901         * class.c (mono_class_instance_size): Don't allow generic type
3902         definitions or open generic instances.
3903         (mono_class_array_element_size): If we're a value type, call
3904         mono_class_instance_size() on the original class.
3905
3906         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
3907         handle generic instances.
3908
3909         * mono-debug-debugger.c (write_type): Handle generic instances
3910         like classes.
3911
3912 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
3913
3914         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
3915         the allocation request fails. Fixes #65089.
3916
3917         * object.c (mono_runtime_free_method): Do not call mono_free_method.
3918         
3919         * object.c (mono_runtime_free_method): New function to free a dynamic
3920         method.
3921
3922         * marshal.c (mono_delegate_free_ftnptr): New function to free the
3923         delegate trampoline.
3924
3925         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
3926         with hasthis as dynamic,
3927
3928         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
3929
3930         * domain.c (mono_jit_info_table_remove): New function to remove an
3931         entry from the jit info table.
3932
3933         * class-internals.h (MonoMethod): Add 'dynamic' field.
3934
3935         * loader.c: Fix warnings.
3936
3937 2004-09-01  Martin Baulig  <martin@ximian.com>
3938
3939         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
3940         instead of mono_debugger_lock() because the latter one is a no-op
3941         unless running in the debugger.
3942
3943 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
3944
3945         * class.c (class_compute_field_layout): Classes with auto-layout or
3946         reference fields are not blittable.
3947         
3948 2004-09-01  Dick Porter  <dick@ximian.com>
3949
3950         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
3951         mono_image_get_filename() to get the assembly location.
3952
3953         * icall.c:
3954         * metadata.h: Fix compile warnings
3955
3956 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
3957
3958         * class.c (class_compute_field_layout): System.Object is blittable.
3959
3960         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
3961         as in/out. Fixes #59909.
3962
3963 2004-09-01  Martin Baulig  <martin@ximian.com>
3964
3965         * metadata.h (MONO_TYPE_ISREFERENCE): Call
3966         mono_metadata_generic_inst_is_valuetype() if we're a generic
3967         instance to check whether our underlying type is a reference type.
3968
3969 2004-09-01  Martin Baulig  <martin@ximian.com>
3970
3971         * metadata.c (mono_type_size): If we're a generic instance, call
3972         mono_class_value_size() for value types.
3973
3974 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
3975
3976         * marshal.c: Implement more custom marshalling functionality. Fixes
3977         #64915.
3978
3979 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
3980
3981         * mono-debug.c, debug-mono-symfile.c: add some locking love.
3982
3983 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
3984
3985         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
3986
3987         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
3988
3989         * icall.c: Fix some warnings.
3990
3991         * threads.c (abort_appdomain_thread): Fix unref errors.
3992         (mono_thread_current): Fix THREAD_DEBUG define.
3993
3994 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
3995
3996         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
3997
3998         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
3999
4000 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
4001
4002         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
4003         string arrays.
4004
4005 2004-08-28  Martin Baulig  <martin@ximian.com>
4006
4007         * metadata.c
4008         (mono_metadata_generic_inst_is_valuetype): New public function.
4009
4010         * metadata.h (MONO_TYPE_ISSTRUCT): Call
4011         mono_metadata_generic_inst_is_valuetype() if we're a generic
4012         instance to check whether our underlying type is a valuetype.
4013
4014 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
4015
4016         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
4017         #63768.
4018
4019 2004-08-25  Martin Baulig  <martin@ximian.com>
4020
4021         * loader.c (mono_get_method_from_token): Abstract methods can also
4022         be generic and thus have type parameters.
4023
4024         * metadata-internals.h
4025         (MonoDynamicImage): Added `GPtrArray *gen_params'.
4026
4027         * reflection.c (mono_image_get_generic_param_info): Don't create a
4028         metadata row, just add an entry to the `gen_params' array.
4029         (build_compressed_metadata): Sort the `gen_params' array and then
4030         actually create the metadata.
4031
4032 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4033
4034         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
4035
4036 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
4037
4038         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
4039
4040 2004-08-24  Martin Baulig  <martin@ximian.com>
4041
4042         * class.cs (mono_class_is_subclass_of): Like an interface, a
4043         generic instance also derives from System.Object.
4044
4045 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
4046
4047         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
4048         custom modifiers to be in any order. Fixes #61990.
4049
4050 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
4051
4052         * object.c: Register mono_object_new_fast icall.
4053         
4054         * object.c (mono_class_get_allocation_ftn): Return to calling
4055         mono_object_new_fast, since it seems faster to compute the object 
4056         size in unmanaged code than passing it as a parameter.
4057
4058         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
4059
4060         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
4061         this function with Boehm as the oom handler, so we don't have to check
4062         the result of GC_malloc.
4063
4064         * object.c: Remove checks for oom.
4065
4066         * object.h object.c (mono_class_get_allocation_ftn): New function to
4067         return the icall which can be used to allocate an instance of a given
4068         class. 
4069
4070         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
4071
4072         * class-internals.h: Add 'enabled' field.
4073
4074 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
4075
4076         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
4077
4078 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
4079         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
4080         value 0x0010.
4081
4082 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
4083
4084         * appdomain.c: use the Tls function for appdomain too,
4085         at Zoltan's request. Actually return in mono_context_get
4086
4087         * appdomain.c, profiler.c, threads.c: use __thread
4088
4089 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
4090
4091         * appdomain.c threads.c: Call GC_CreateThread on windows.
4092
4093         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
4094         multiple libraries since this don't work on windows.
4095
4096 2004-08-18  Martin Baulig  <martin@ximian.com>
4097
4098         * class-internals.h
4099         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
4100         MonoMethodHeader.
4101
4102         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
4103         MonoMethodNormal since we also need it for abstract and interface
4104         methods.
4105
4106         * reflection.c
4107         (build_compressed_metadata): Sort the GenericParam table.
4108         (mono_image_create_token): Added `gboolean create_methodspec'
4109         argument; this is false when generating a MethodImpl token.
4110         (reflection_methodbuilder_to_mono_method): Abstract and interface
4111         methods may also have generic parameters.
4112
4113 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
4114
4115         * appdomain.c: thread local alloc
4116
4117 2004-08-17  Martin Baulig  <martin@ximian.com>
4118
4119         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
4120
4121         * icall.c
4122         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
4123         argument.
4124
4125         * class.c (mono_type_get_full_name): New public function.
4126         (mono_type_get_name): Don't include the type arguments.
4127
4128 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
4129
4130         * Makefile.am: Build static versions of libmetadata and libmonoruntime
4131         for inclusion into the mono executable.
4132
4133 2004-08-16  Martin Baulig  <martin@ximian.com>
4134
4135         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
4136         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
4137
4138 2004-08-14  Martin Baulig  <martin@ximian.com>
4139
4140         * class.c (dup_type): Also copy the `byref' field.
4141
4142 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
4143
4144         * reflection.c (create_dynamic_mono_image): Revert the last change 
4145         since it breaks bootstrap.
4146
4147 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
4148
4149         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
4150
4151         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
4152         not free them with g_free.
4153
4154 2004-08-11  Martin Baulig  <martin@ximian.com>
4155
4156         * reflection.c (mono_reflection_setup_internal_class): Also call
4157         mono_class_setup_mono_type() if we already have a `tb->type.type'.
4158
4159 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
4160
4161         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
4162         called during default (first) AppDomain creation. Keep track of
4163         Evidence when loading assemblies.
4164
4165 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4166
4167         * opcodes.c, opcodes.h: reduce runtime relocations.
4168
4169 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
4170
4171         * culture-info.h, locales.c: fixes and chages to sue the new
4172         optimized format of the locale data.
4173         * culture-info-tables.h: regenerated.
4174
4175 2004-08-06  Geoff Norton <gnorton@customerdna.com>
4176         
4177         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
4178
4179 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
4180
4181         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
4182         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
4183         * domain-internals.h: icall declaration.
4184         * icall.c: icall registration.
4185         * object-internals.h: New fields in MonoAssembly for CAS.
4186
4187 2004-08-05  Duncan Mak  <duncan@ximian.com>
4188
4189         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
4190         CEE_LDELEM_ANY.
4191
4192 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4193
4194         * reflection.c: fix to deal with object[] arrays in custom ctors
4195         (bug #62550).
4196
4197 2004-08-05  Martin Baulig  <martin@ximian.com>
4198
4199         * class.c (mono_class_array_element_size): Added support for
4200         generic instances and correctly handle "recursive" types.
4201
4202 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
4203
4204         * assembly.c: Fix warnings.
4205
4206 2004-08-04  Martin Baulig  <martin@ximian.com>
4207
4208         * class.c
4209         (mono_type_get_name_recurse): Added `gboolean include_arity'
4210         argument specifying whether or not we should include the generic
4211         arity in the type name.
4212         (_mono_type_get_name): New static function.
4213         (mono_class_setup_vtable): If we're a generic instance, don't
4214         include the generic arity in the names of explicit method
4215         implementations.        
4216
4217 2004-08-03  Martin Baulig  <martin@ximian.com>
4218
4219         * class.c (mono_type_get_name_recurse): Enclose the generic type
4220         arguments in `<', '>'.
4221
4222 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4223
4224         * gc.c: make GC warning messages use the trace API, they are just
4225         noise to most of the users.
4226
4227 2004-08-03  Martin Baulig  <martin@ximian.com>
4228
4229         * debug-mono-symfile.c (read_string): Correctly read the string.
4230
4231 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
4232
4233         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
4234         
4235         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
4236         icalls.
4237         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
4238
4239 2004-07-30  Martin Baulig  <martin@ximian.com>
4240
4241         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
4242         Reflect latest symbol writer changes.   
4243
4244 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4245
4246         * object.c: always create an object if null is passed
4247         to Invoke() where a valuetype is expected.
4248
4249 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
4250
4251         * marshal.c (mono_marshal_init): make managed
4252         signatures match native ones better for 64bits.
4253
4254 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4255
4256         * appdomain.c: hack to build correctly the private bin path on windows.
4257         Fixes bug #61991.
4258
4259 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
4260
4261         * assembly.c: Load mscorlib from the correct framework directory
4262           (mono/<version>/mscorlib.dll).
4263         * appdomain.h: Added prototypes for new functions.
4264         * internals.h: Added some prototypes.
4265         * domain.c: When initializing the runtime, get from the executable and
4266           the configuration files the runtime version that the app supports.
4267           Added support methods for reading app.exe.config. Added list of versions
4268           supported by the JIT. Added two new methods: mono_init_from_assembly,
4269           which initializes the runtime and determines the required version from
4270           the provided exe file, and mono_init_version, which initializes
4271           the runtime using the provided version.
4272         * icall.c: Get machine.config from version-specific directory.
4273         * reflection.c: When generating an image, embed the version number
4274           of the current runtime.
4275
4276 2004-07-28  Dick Porter  <dick@ximian.com>
4277
4278         * socket-io.c
4279         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
4280         returned sockaddr size before creating the remote address object.
4281         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
4282         61608.
4283
4284 2004-07-28  Dick Porter  <dick@ximian.com>
4285
4286         * locales.c (string_invariant_compare_char): Fix invariant char
4287         compares between upper and lower cases.  Fixes bug 61458.
4288
4289 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
4290         
4291         * marshal.c: actually cache stelem.ref wrappers.
4292         
4293 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
4294
4295         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
4296         sections and remove the mono_cli_rva_map () function.
4297
4298 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4299
4300         * debug-mono-symfile.c: fix one more endianess issue, from a patch
4301         by Geoff Norton (<gnorton@customerdna.com>).
4302
4303 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4304
4305         * class.c: fix class loads for pointer types (typeof(int) !=
4306         typeof(int*)).
4307
4308 2004-07-27  Martin Baulig  <martin@ximian.com>
4309
4310         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
4311         reading the debugging information from an external ".mdb" file.
4312
4313 2004-07-24  Martin Baulig  <martin@ximian.com>
4314
4315         * reflection.c (mono_image_get_type_info): Only write a class
4316         layout entry if we actually have a size or a packing size.
4317
4318 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
4319
4320         * reflection.c (type_get_fully_qualified_name): 
4321         insert cast to get type checking of ?: with non-gcc compilers
4322
4323 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
4324
4325         * rand.c: use g_getenv for both lookups of
4326         MONO_EGD_SOCKET
4327
4328 2004-07-17  Martin Baulig  <martin@ximian.com>
4329
4330         * reflection.c (mono_reflection_bind_generic_method_parameters):
4331         Set `gmethod->reflection_info'.
4332
4333 2004-07-17  Martin Baulig  <martin@ximian.com>
4334
4335         * class.c (mono_class_create_from_typedef): Insert the newly
4336         created class into the hash table before computing the interfaces
4337         since we could be called recursively.
4338
4339 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
4340
4341         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
4342         function to implement stelem.ref in managed code
4343         * class-internals.h, debug-helpers.c: a new wrapper type
4344         for the above.
4345
4346 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4347
4348         * gc.c: allow GC handles to work even when no GC is compiled in.
4349         Fix part of bug #61134 (GetAddrOfPinnedObject).
4350
4351 2004-07-13  Peter Williams  <peter@newton.cx>
4352  
4353         * process.c (complete_path): Make sure we don't attempt to execute
4354         directories.
4355  
4356 2004-07-12  Geoff Norton <gnorton@customerdna.com>
4357
4358         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
4359           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
4360           and will add/subtract the hour if needed
4361
4362 2004-07-12  Martin Baulig  <martin@ximian.com>
4363
4364         * reflection.c (mono_field_get_object): If we have
4365         `field->generic_info', take the attributes from
4366         `field->generic_info->generic_type'.    
4367
4368 2004-07-12  Martin Baulig  <martin@ximian.com>
4369
4370         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
4371         This function must be called before initializing the runtime.
4372         (mono_debug_init_1): New function; call this after initializing
4373         the runtime, but before loading the assembly.  It tells the
4374         debugger to load corlib and the builtin types.
4375
4376         * mono-debug-debugger.c: Did some larger changes in the debugging
4377         code; support recursive class declarations, make sure we actually
4378         add all classes.
4379
4380 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4381
4382         * debug-helpers.c: undo my previous patch and fixed the real issue in
4383         ../mini/exceptions-x86.c
4384
4385 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4386
4387         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
4388         when no HOME env. variable was set and a NullRef was thrown in a .cctor
4389         called from other .cctors.
4390
4391 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
4392
4393         * loader.c: Removed the mono_loader_wine_init hack now that we are
4394         doing a managed version of Windows.Forms.
4395
4396 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
4397
4398         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
4399         threadpool.c, threads.c: remove static data from rootset.
4400
4401 2004-07-09  Dick Porter  <dick@ximian.com>
4402
4403         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
4404         Don't do any more processing if the matched length was 0.  It was
4405         increasing the size of the string before.  Fixes bug 61167.
4406
4407 2004-07-09  Dick Porter  <dick@ximian.com>
4408
4409         * socket-io.h:
4410         * socket-io.c
4411         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4412         Add support for SO_PEERCRED if its available.
4413
4414 2004-07-09  Peter Bartok <pbartok@novell.com>
4415         * loader.c: winelib.exe.so error message is now only displayed if
4416         MONO_DEBUG is set. To help us avoid questions when people are trying
4417         out the new Managed.Windows.Forms.
4418
4419 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
4420
4421         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
4422         for isinst and castclass wrappers.
4423
4424         * class-internals.h icall.c: Move registration and lookup of JIT icalls
4425         to libmetadata from the JIT, so they could be used by the marshalling
4426         code and the interpreter.
4427
4428         * marshal.c: Register marshalling related JIT icalls here instead of
4429         in mini.c. Use CEE_MONO_ICALL instead of the family of 
4430         CEE_MONO_PROC<x> opcodes to call marshalling functions.
4431
4432         * metadata.h: Remove unneeded marshalling conversions.
4433
4434         * opcodes.c: Update for new opcodes.
4435         
4436 2004-07-08  Martin Baulig  <martin@ximian.com>
4437
4438         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
4439         (mono_debug_get_domain_data): Make this function static.
4440
4441 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4442
4443         * gc.c, object.h: add nice GC handle API for embedders.
4444
4445 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
4446
4447         * reflection.c: more changes for the new api
4448
4449         * object.c: When we reflect on a field w/ a constant value, it
4450         will not have a memory location, so we must access metadata. Also,
4451         allow easier reading of strings so that we can read them from
4452         the constant data.
4453
4454         * class.c (mono_class_layout_fields): no need for literal fields here.
4455
4456         * class-internals.h: api changes for const fields
4457
4458         * icall.c (ves_icall_get_enum_info): use new apis for const fields
4459
4460 2004-07-06  Martin Baulig  <martin@ximian.com>
4461
4462         * mono-debug.h: Increment version number to 44.
4463
4464         * mono-debug.c (mono_debug_add_wrapper): The second argument is
4465         now a gpointer, rewrote this whole method.
4466
4467         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
4468         function.  Add information about the wrapper in a new "misc table".
4469
4470         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
4471         for the new misc table.
4472
4473 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
4474
4475         * metadata-internals.h image.c: Add a cache for helper signatures.
4476
4477         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
4478
4479 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
4480
4481         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
4482         delegates from a delegate. Fixes #61033.
4483         
4484         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
4485         marshalling of stringbuilder arrays. Fixes #59900.
4486
4487 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
4488
4489         * icall.c: Add EnumBuilder:setup_enum_type icall.
4490
4491 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
4492
4493         * icall.c: Added a new icall for the property version of
4494         OffsetOfStringData.
4495
4496 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
4497
4498         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
4499         it has a constant size across platforms.
4500
4501         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
4502         stack trace.
4503
4504 2004-06-29  Martin Baulig  <martin@ximian.com>
4505
4506         * mono-debug.c (mono_debug_add_method): Protect the whole function
4507         in mono_debugger_lock(), not just parts of it.
4508
4509 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
4510
4511         * reflection.c: make sure padding bytes in heaps are zeroed.
4512
4513 2004-06-24  David Waite  <mass@akuma.org>
4514
4515         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
4516         image.c, loader.c, locales.c, marshal.c, metadata.c,
4517         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
4518         string-icalls.c, threads.c: change to C90-style comments from C99 /
4519         C++ -style
4520
4521 2004-06-24  Dick Porter  <dick@ximian.com>
4522
4523         * threads.c
4524         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
4525         return createdNew.  Fixes bug 60412.
4526
4527         * threads-types.h: 
4528         * icall.c: Add createdNew parameter to CreateMutex icall
4529
4530 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4531
4532         * reflection.c, object-internals.h: save default value in params.
4533
4534 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4535
4536         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
4537         no need to build a new path combining that with the application base.
4538         Fixes bug #60442.
4539
4540 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
4541
4542         * reflection.c: fixed minor standard compliance issues.
4543
4544 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4545
4546         * reflection.c: fixed issue with encoding some custom attributes
4547         (arrays in properties and fields, bug #60411).
4548
4549 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4550
4551         * reflection.c: fix start address when copying the public key token.
4552
4553 2004-06-23  Martin Baulig  <martin@ximian.com>
4554
4555         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
4556         the `exc' object in a static object to put it into the GC's root set.
4557
4558 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
4559
4560         * reflection.c: make mono_reflection_setup_internal_class ()
4561         callable a second time to setup a new parent class.
4562
4563 2004-06-23  Dick Porter  <dick@ximian.com>
4564
4565         * threads.c: Check for WAIT_IO_COMPLETION return values.
4566
4567 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
4568
4569         * appdomain.c: Removed the g_free on the public key token. Now copy 
4570         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
4571         * assembly.c: Added public key token string value when loading 
4572         assemblies. Fix bug #60439.
4573         * icall.c: Added missing informations (like public key) in 
4574         GetReferencedAssemblies. Fix #60519.
4575         * image.h: Changed definition for public key token from const char*
4576         public_tok_value to guchar public_key_token [17];
4577         * reflection.c: Updated for changes to public key token.
4578
4579 2004-06-22  Lluis Sanchez Gual
4580
4581         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
4582         for the field in base classes.
4583
4584 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4585
4586         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
4587         mark headers as not supported, they are installed only for use by the
4588         debugger.
4589
4590 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
4591
4592         * *.c, *.h: avoid namespace pollution in public headers.
4593
4594 2004-06-21  Martin Baulig  <martin@ximian.com>
4595
4596         * exception.c (mono_get_exception_security): It's in
4597         "System.Security", not in "System".
4598
4599         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
4600         the exception classes.
4601
4602 2004-06-21  Martin Baulig  <martin@ximian.com>
4603
4604         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
4605         Protect the exception object from being finalized.
4606
4607 2004-06-21  Martin Baulig  <martin@ximian.com>
4608
4609         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
4610         public function.
4611
4612 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
4613
4614         * reflection.c: Load the assembly in mono_reflection_type_from_name,
4615         if it was not loaded before. Fix parts of #60439.
4616
4617 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
4618
4619         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
4620         code that was broken since Ben's change: wrappers are now
4621         dependent on the method signature only again.
4622
4623 2004-06-21  Martin Baulig  <martin@ximian.com>
4624
4625         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
4626         added interface support.
4627
4628 2004-06-21  Martin Baulig  <martin@ximian.com>
4629
4630         * class.c (mono_vtable_get_static_field_data): New public method.
4631
4632 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
4633
4634         * filewatcher.c : Windows build fix to be compliant with API changes.
4635
4636 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4637
4638         * class.h, class.c: more accessors.
4639         * metadata.h, metadata.c: prepare for hiding MonoType and
4640         MonoMethodSignature: people should use the accessors from now on
4641         outside of the tree.
4642
4643 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4644
4645         * *.c, *.h: more API cleanups.
4646
4647 2004-06-18  Jackson Harper  <jackson@ximian.com>
4648
4649         * assembly.c: Trace loading assemblies.
4650         * loader.c: Trace loading native libraries.
4651         * mono-config.c: Trace loading config files.
4652         
4653 2004-06-18  Dick Porter  <dick@ximian.com>
4654
4655         * locales.c: Tell ICU the lengths of strings, it can cope with
4656         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
4657
4658 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
4659
4660         * image.c: swapped name/filename;
4661
4662 2004-06-18  Martin Baulig  <martin@ximian.com>
4663
4664         * mono-debug-debugger.c (write_class): Write the parent class at
4665         the end of the header.
4666
4667 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4668
4669         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
4670
4671 2004-06-17  Raja R Harinath  <rharinath@novell.com>
4672
4673         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
4674         (bundle_obj): New conditional define.
4675         (BUILT_SOURCES): Remove.
4676         ($(bundle_srcs)): Make parallel-make safe.
4677         (libmonoruntime_la_LIBADD): Make unconditional.
4678         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
4679         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
4680
4681 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
4682
4683         * culture-info-tables.h: It was inconsistent with the latest
4684           supp info files.
4685
4686 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
4687
4688         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
4689         be loaded.
4690
4691         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
4692         with gcc 2.95.
4693
4694 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4695
4696         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
4697         cleaned up public header threads.h.
4698
4699 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4700
4701         * Makefile.am, *.c, *.h: more API cleanups.
4702
4703 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
4704
4705         * Makefile.am: removed monosn from compilation.
4706         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
4707         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
4708         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
4709         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
4710         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
4711         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
4712
4713 2004-06-15  Jackson Harper  <jackson@ximian.com>
4714
4715         * assembly.c: Make locales lower case when searching the GAC for
4716         assemblies. gacutil will always make locales lowercase when
4717         installing so this effectively makes them case insensitive.
4718         
4719 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
4720
4721         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
4722         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
4723           parameter which allows to choose whether the wait can be interrupted or 
4724           not. Also added the method mono_monitor_enter(), which locks the monitor
4725           using an infinite wait and without allowing interruption.
4726           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
4727           interrupted.
4728         * object.h: Added new fields in MonoThread. suspend_event holds the event
4729           used to susped/resume the thread. synch_lock is the lock object to use for
4730           modifying the thread state.
4731         * threads.c: Use the new synch_lock object for locking, instead of "this",
4732           which can generate deadlocks.
4733           Moved thread state change in Thread.Sleep and Thread.Join from managed
4734           to unmanaged code. This avoids a deadlock when the thread was suspended
4735           just after acquiring the thread lock.
4736           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
4737           Implemented Thread.Suspend using an event instead of ThreadSuspend,
4738           which is not fully implemented in the io-layer.
4739         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
4740
4741 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
4742
4743         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
4744         threads-types.h: more API cleanups.
4745
4746 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4747
4748         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
4749         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
4750         threadpool.c, threads.c: first pass at the exported API cleanup.
4751
4752 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
4753
4754         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
4755
4756 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4757
4758         * icall.c: added internalGetHome.
4759
4760 2004-06-14  Dick Porter  <dick@ximian.com>
4761
4762         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
4763         possible to return successfully when '.' or '..' were the only
4764         entries in a directory, but were skipped.  The MonoIOStat was not
4765         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
4766         Fixes bug 59574.
4767
4768 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4769
4770         * reflection.c: make binaries run on .Net 1.1 by default.
4771
4772 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
4773
4774         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
4775
4776 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
4777
4778         * marshal.c: keep track of struct size with explicit layout
4779         (bug #59979).
4780
4781 2004-06-12  Martin Baulig  <martin@ximian.com>
4782
4783         * mono-debug-debugger.c: Comment out a debugging g_message().
4784
4785 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4786
4787         * reflection.c, reflection.h: do not free custom attrs that are cached.
4788         * icall.c: use braces to make code clearer.
4789
4790 2004-06-11  Martin Baulig  <martin@ximian.com>
4791
4792         * class.h (MonoInflatedField): New type.
4793         (MonoClassField): Replaced `MonoType *generic_type' with
4794         `MonoInflatedField *generic_info'.
4795
4796         * icall.c
4797         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
4798
4799 2004-06-11  Martin Baulig  <martin@ximian.com>
4800
4801         * reflection.c (mono_image_create_method_token): Correctly encode
4802         varargs methods.
4803
4804 2004-06-11  Martin Baulig  <martin@ximian.com>
4805
4806         * metadata.c (mono_metadata_parse_method_signature): When parsing
4807         a MethodDef which has VarArgs, also set sentinelpos if we don't
4808         have any parameters.
4809
4810 2004-06-11  Martin Baulig  <martin@ximian.com>
4811
4812         * verify.c (mono_method_verify): In CEE_CALL, use
4813         mono_method_get_signature() to get the method's signature, unless
4814         we're a PInvoke method.
4815
4816 2004-06-10  Jackson Harper  <jackson@ximian.com>
4817
4818         * assembly.c: Use <path>/lib/mono/gac for the extra paths
4819         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
4820         logical name as the supplied path is just a prefix to the gac not
4821         the direct path to it.
4822         
4823 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
4824
4825         * reflection.c: make the token for a created method match
4826         the token of the MethodBuilder it was created from
4827         (IKVM requires this behaviour now).
4828
4829 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
4830
4831         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
4832         reflection.c, socket-io.c: leak fixes.
4833
4834 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
4835
4836         * icall.c: handle sentinel pos in vararg methods in position different
4837         from 0.
4838
4839 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4840
4841         * culture-info-tables.h: freshly generated.
4842
4843 2004-06-09  Martin Baulig  <martin@ximian.com>
4844
4845         * loader.c (mono_get_method_constrained): Call `mono_class_init
4846         (constrained_class)'.   
4847
4848 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
4849
4850         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
4851         any methods. Fixes #59629.
4852
4853 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4854
4855         * culture-info-tables.h: reflecting locale-builder updates.
4856
4857 2004-06-08  Dick Porter  <dick@ximian.com>
4858
4859         * object.h:
4860         * locales.c: Fixed compile warnings, including a real bug in
4861         CompareInfo_internal_compare.
4862         
4863 2004-06-08  Dick Porter  <dick@ximian.com>
4864
4865         * locales.c
4866         (ves_icall_System_Globalization_CompareInfo_internal_index):
4867         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
4868         Double-check the resuls of usearches, because ICU currently
4869         ignores most of the collator settings here.  Fixes bug 59720.
4870         
4871 2004-06-08  Dick Porter  <dick@ximian.com>
4872
4873         * locales.c
4874         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
4875         Fix memory leak and segfault-causing typo.  No idea how this one
4876         lasted so long without being noticed.
4877
4878 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
4879
4880         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
4881         any methods. Fixes #59629.
4882
4883 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4884
4885         * assembly.c:
4886         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
4887         own the critical section before). Removed dead code (that's done
4888         in the preload hook).
4889
4890         (mono_assembly_load_with_partial_name): call the preload hook.
4891
4892 2004-06-08  Martin Baulig  <martin@ximian.com>
4893
4894         * metadata.c (mono_metadata_signature_alloc): Default
4895         `sentinelpos' to -1.
4896
4897         * reflection.c (mono_image_get_array_token): Likewise.
4898
4899 2004-06-08  Martin Baulig  <martin@ximian.com>
4900
4901         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
4902
4903         * metadata.c (mono_metadata_parse_method_signature): When parsing
4904         a MethodDef which has VarArgs, set sentinelpos.
4905
4906         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
4907         `gint16' since we're using -1 for non-varargs methods.
4908
4909         * reflection.c
4910         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
4911         (method_encode_signature): Added varargs support.
4912         (method_builder_encode_signature): Likewise.
4913         (mono_image_get_varargs_method_token): New static method.
4914         (mono_image_create_method_token): New public method; this is
4915         called via an icall instead of mono_image_create_token() when
4916         calling a varargs method.       
4917
4918 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
4919
4920         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
4921
4922 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4923
4924         * culture-info-tables.h : Reflecting the latest locale-builder that
4925           fixed empty array representation ({} to {0}).
4926
4927 2004-06-07  Jackson Harper  <jackson@ximian.com>
4928
4929         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
4930         looking up extra gac paths. This allows MONO_GAC_PATH to act
4931         exactly like a prefix.
4932         
4933 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
4934
4935         * reflection.c (mono_reflection_type_from_name): Make a copy of the
4936         type name before modifying it. Fixes #59405.
4937
4938 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4939
4940         * culture-info.h: added fields for "all datetime patterns".
4941         * locales.c: (  ves_icall_System_Globalization_CultureInfo
4942           _construct_datetime_format ()): fill xxx_patterns fields.
4943         * object.h: added fields for "all datetime patterns" to
4944           MonoDateTimeFormatInfo.
4945         * culture-info-tables.h: reflecting locale-builder updates.
4946
4947 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
4948
4949         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
4950         the event has no add and remove methods. Fixes #59629.
4951
4952 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
4953
4954         * object.c: Fixed possible integer overflow when allocating large
4955         strings.
4956
4957 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
4958
4959         * culture-info-tables.h: reflecting locale-builder updates.
4960
4961 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
4962
4963         * culture-info-tables.h: reflecting locale-builder updates.
4964
4965 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
4966
4967         * culture-info-tables.h: reflecting locale-builder updates.
4968
4969 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
4970
4971         * threads.c: Made Thread.Sleep abortable.
4972
4973 2004-06-02  Martin Baulig  <martin@ximian.com>
4974
4975         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
4976
4977         * debug-mono-symfile.h: Bumped symbol file version number to 37.
4978
4979 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
4980
4981         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
4982
4983 2004-05-30  Jackson Harper  <jackson@ximian.com>
4984
4985         * reflection.c: Do not hardcode assembly versions or public key
4986         tokens anymore. All of this except the corlib section was dead
4987         code anyways.
4988         
4989 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
4990
4991         * object.c (mono_runtime_invoke_array): Automatically create boxed
4992         objects for byref valuetypes if needed. Fixes #59300.
4993         
4994         * object.c (mono_method_return_message_restore): Handle 
4995         MONO_TYPE_OBJECT as well.
4996
4997 2004-05-28  Jackson Harper  <jackson@ximian.com>
4998
4999         * reflection.c: The modified type encoding was causing build
5000         problems. Reverted for now.
5001         
5002 2004-05-28  Jackson Harper  <jackson@ximian.com>
5003
5004         * reflection.c/h: Take an assembly ref so that we dont create
5005         fully qualified names when encoding types in the same assembly as
5006         the custom attribute being emitted.
5007         * appdomain.c: Increment version number.
5008         
5009 2004-05-26  Duncan Mak  <duncan@ximian.com>
5010
5011         * icall.c
5012         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
5013         Set the full version number (major, minor, build, revision).
5014
5015 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
5016
5017         * marshal.c (emit_struct_conv): increment src/dst after blit
5018         (mono_marshal_get_managed_wrapper,
5019         mono_marshal_get_native_wrapper): make sure we have marshalling
5020         info before marshalling params (info computation affects
5021         blittable)
5022
5023         * class.c (class_compute_field_layout): correctly deal with
5024         blittable
5025         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
5026         value types (as per what windows dows by default)
5027         (mono_class_setup_mono_type): System.ValueType is blittable
5028         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
5029         blittable
5030
5031         * marshal.c (mono_marshal_load_type_info): flag types  as
5032         non-blittable if the native layout doesn't match the managed
5033         layout
5034
5035 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5036
5037         * appdomain.c: don't add stuff in the private search path that is
5038         above the application base. If application base is not set, there's
5039         no private search path.
5040
5041 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
5042
5043         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
5044         byref struct arguments in native->managed marshalling.
5045
5046 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
5047
5048         * marshal.c (mono_marshal_get_runtime_invoke): correctly
5049         cache methods using signature (special case for methods
5050         that are value type or string class)
5051         
5052         * image.c (mono_image_close): clean up allocated GSList's
5053         in runtime_invoke_cache.
5054
5055 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5056
5057         * mono-config.c: set the correct path for mono_cfg_dir on windows when
5058         there's no MONO_CFG_DIR environment variable defined.
5059
5060 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5061
5062         * threads.c: windows version must be >= 0x0500 to include OpenThread.
5063
5064 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
5065
5066         * threadpool.c: Really wait for 500ms after the async call, even if the wait
5067           is interrumped.
5068         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
5069           before waiting for it, and call CloseHandle after the wait to unref it.
5070           This will make sure that handles are not disposed too early.
5071
5072 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5073
5074         * appdomain.c:
5075         * appdomain.h:
5076         * icall.c: removed
5077         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
5078         needed now.
5079
5080         * object.c: se the application_base only for the domain that runs
5081         Main. Fixes bug #59216,
5082
5083 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5084
5085         * appdomain.c:
5086         * object.c: only the domain in which Main is run have
5087         SetupInformation.ConfigurationFile set, so moved a few lines from
5088         appdomain.c to object.c.
5089
5090 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5091
5092         * appdomain.c: we tried to load [name].(dll|exe), but according
5093         to bug #57710, we must also try [culture]/[name].(dll|exe) and
5094         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
5095         There's a test case attached to bug #58922.
5096
5097 2004-05-27  Dick Porter  <dick@ximian.com>
5098
5099         * icall.c:
5100         * file-io.c: Implemented icalls for locking and unlocking regions
5101         in a file.
5102         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
5103         FALSE on error (fixes both compiler warning and real bug.)
5104
5105 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
5106
5107         * culture-info-tables.h: reflecting locale-builder updates.
5108
5109           (Added missing ChangeLog entry for 05/26)
5110
5111 2004-05-27  Jackson Harper  <jackson@ximian.com>
5112
5113         * locales.c: Fix some cut and paste errors.
5114         
5115 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5116
5117         * mono-config.c: set the correct path for config. directory on windows.
5118
5119 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5120
5121         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
5122           on win32.
5123
5124 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5125
5126         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
5127         from pinvoke functions.
5128         
5129         * marshal.c (mono_ftnptr_to_delegate): Implement this.
5130
5131 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5132
5133         * culture-info-tables.h: reflecting locale-builder updates.
5134
5135 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5136
5137         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
5138         #59086.
5139
5140 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
5141
5142         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
5143         * icall.c: Modified icalls for RNG.
5144         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
5145         Windows (CryptoAPI).
5146
5147 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5148
5149         * locales.c: Fix build.
5150
5151 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5152
5153         * culture-info-tables.h: reflecting locale-builder updates.
5154
5155 2004-05-25  Jackson Harper  <jackson@ximian.com>
5156
5157         * locales.c: When creating the current culture use the $LANGs
5158         specific culture. So DateTimeFormat and NumberFormat entries are created.
5159         
5160 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5161
5162         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
5163         a char array as parameter.
5164
5165 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
5166
5167         * image.c: In mono_image_open(), always use an absolute path name to
5168           look for already loaded images.
5169
5170 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
5171
5172         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
5173         missing in the windows build (like older cygwin include files).
5174
5175 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
5176
5177         * icall.c: Fixed check for possible integer overflow in Buffer_
5178         BlockCopy icall. Replaced comments style // by /* */.
5179
5180 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
5181
5182         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
5183         
5184         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
5185         check after MONO_VTADDR. Fixes pinvoke2.exe.
5186
5187         * marshal.h marshal.c metadata.h: Add beginnings of support for
5188         ftnptr -> delegate marshalling.
5189
5190 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
5191
5192         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
5193         * threads.c: Fix warnings.
5194
5195 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
5196
5197         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
5198         * icall.c: Registered icalls for Suspend and Resume.
5199         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
5200           Thread.Abort.
5201         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
5202         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
5203         * process.c: Use WaitForSingleObjectEx.
5204         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
5205           checkpoints.
5206         * threads.c, threads.h: Make use of new Ex wait methods. Improved
5207           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
5208           for Suspend and Resume. Added new mono_thread_stop, used for stoping
5209           background threads. Added basic support for Abort in Windows.
5210           Start new threads using a managed delegate invoke wrapper. This wrapper
5211           has an interruption checkpoint that is needed since an interruption
5212           can be requested before the thread leaves the unmanaged code that starts 
5213           the thread.
5214         * marshal.c: Added interruption checkpoint after every native call, and
5215           also before managed calls for wrappers called from unmanaged code to
5216           go into managed code.
5217         * object.h: Added new field in MonoThread to keep track of interruption
5218           requests.
5219
5220 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
5221
5222         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
5223         calls.
5224
5225 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5226
5227         * appdomain.c:
5228         * assembly.c:
5229         * gc.c:
5230         * locales.c:
5231         * mono-config.c:
5232         * rand.c: getenv -> g_getenv (windows!)
5233
5234         * process.c: complete_path is also used on non-windows platforms.
5235
5236 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5237
5238         * icall.c: new signature for Process_Start.
5239
5240         * process.[ch]: new signature for Process_Start. If we're on windows
5241         and UseShellExecute is false, we have to search for the program by
5242         ourselves if we don't get a full path.
5243
5244 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
5245
5246         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
5247         marshalling and call CleanUpNativeData if needed. Fixes #58646.
5248
5249 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5250
5251         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
5252         Fixes bug #58373.
5253
5254 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5255
5256         * process.c: use double quotes to quote program name and arguments on
5257         windows. Fixes bug #58575.
5258
5259 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5260
5261         * file-io.c: don't return "." and ".." when using windows Find*File.
5262
5263 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
5264
5265         * marshal.c: Don't pass wrappers to message init because method 
5266         addressed used to lookup metadata. part of remoting[2|3] fix.
5267
5268 2004-05-15  Jackson Harper  <jackson@ximian.com>
5269
5270         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
5271         path is essentially the same as MONO_PATH except that it points to
5272         GACs instead of lib directories.
5273         * loader.h: The user gac is gone so we dont need function to
5274         enable/disable it.
5275         * mono-config.c: user gac option is now gone.
5276         
5277 2004-05-15  Jackson Harper  <jackson@ximian.com>
5278
5279         * culture-info.h: Make defines more consistent, add calendar data
5280         to the culture info table.
5281         * culture-info-tables.h: Add basic calendar data. Basically
5282         everyone gets default gregorian until all the data is
5283         updated.
5284         * locales.c: Use the new consistent defines. Set calendar data for
5285         culture info objects.
5286         * object.h: add a field for calendar data to CultureInfo
5287         
5288 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
5289
5290         * image.c: image->runtime_invoke_cache is keyed on signatures now.
5291         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
5292         a signature.
5293         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
5294         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
5295         an extra param that is the pointer of the method to invoke. The IL for
5296         the invoke method is no longer specific to the method, but to the
5297         signature of the method. Thus, we can share the same code for multiple
5298         methods. This reduces the number of methods that have to be compiled.
5299
5300 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
5301
5302         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
5303
5304         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5305
5306         * icall.c: Optimize Buffer.BlockCopy.
5307
5308 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5309
5310         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
5311         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
5312         quote). Changed them to "MMMM yyyy".
5313
5314 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
5315
5316         * rand.c
5317         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
5318
5319 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
5320
5321         * reflection.h: Updated after changes to managed structures.
5322
5323         * appdomain.c: Bump corlib version.
5324
5325 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5326
5327         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
5328         windows.
5329
5330 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5331
5332         * Makefile.am: link to ../os/libmonoos.la on windows.
5333
5334         * assembly.c:
5335                 -If MONO_DEBUG, warn about non-existing directories in
5336                 MONO_PATH.
5337                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
5338                 compile time variable.
5339                 -Removed init_default_path and call mono_set_rootdir from
5340                 libmonoos.a instead (windows only).
5341
5342         * assembly.h: declare mono_assembly_getrootdir().
5343
5344         * domain.c:
5345         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
5346
5347         * loader.c: s/getenv/g_getenv/
5348
5349 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
5350
5351         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
5352
5353         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
5354
5355         * metadata.h: Add new marshalling conversions.
5356
5357         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
5358         function.
5359
5360         * reflection.c (mono_reflection_get_type): Lookup the type in all
5361         modules of a multi-module assembly. Fixes #58291.
5362
5363 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
5364
5365         * threads.c: Before aborting a background, set the StopRequested
5366         state.  This avoids throwing the Abort exception.
5367         In mono_thread_manage, don't continue with the shutdown until all
5368         aborted threads have actually stopped.
5369
5370 2004-05-10  Jackson Harper  <jackson@ximian.com>
5371
5372         * locales.c: Remove the modifier from culture names.
5373         
5374 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5375
5376         * Makefile.am: monosn is not installed any more. It has been deprecated
5377         in favor of sn.
5378
5379 2004-05-07  Jackson Harper  <jackson@ximian.com>
5380
5381         * locales.c
5382         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
5383         Fix array construction, add bailout if the length is 0.
5384
5385 2004-05-07  Dick Porter  <dick@ximian.com>
5386
5387         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
5388         machine doesn't have a DNS entry.  Patch by Urs Muff
5389         (umuff@quark.com), fixes bug 57928.
5390
5391 2004-05-06  Jackson Harper  <jackson@ximian.com>
5392
5393         * reflection.c: Handle null PublicTokens properly. alloc mem for
5394         assembly names culture so we dont crash when freeing it.
5395         
5396 2004-05-06  Jackson Harper  <jackson@ximian.com>
5397
5398         * assembly.c: Check the usergac when loading with partial names.
5399         
5400 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
5401
5402         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
5403         does nothing for now (not required for Linux/Windows) but the class
5404         library can call it (and a newer or modified runtime could need it).
5405         * icall.c: Registred icall.
5406
5407 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5408
5409         * loader.c: prints a message on module loading error we set MONO_DEBUG
5410         environment variable.
5411
5412 2004-05-05  Jackson Harper  <jackson@ximian.com>
5413
5414         * appdomain.c: Handle PublicKeyToken=null properly.
5415         
5416 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
5417
5418         * environment.c|h: Added icall ves_icall_System_Environment_
5419         GetOSVersionString to get the current OS version as a string.
5420         * icall.c: Registred icall.
5421
5422 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
5423
5424         * object.c: in mono_object_get_virtual_method(), take into account that
5425         non-virtual methods don't have a slot in the vtable. Check needed when
5426         the object is a proxy.
5427
5428 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
5429
5430         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
5431         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
5432
5433         * object.c (mono_class_compute_gc_descriptor): Fix warning.
5434
5435         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
5436         passed when a valuetype is expected.
5437
5438         * object.c (mono_unhandled_exception): Only set the exit code if the
5439         exception happens in the main thread. Fixes thread5.exe.
5440
5441         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
5442         invalid names. Fixes #58047.
5443
5444 2004-05-03  Jackson Harper  <jackson@ximian.com>
5445
5446         * assembly.c: This line was committed accidently and is unneeded.
5447         
5448 2004-05-03  Jackson Harper  <jackson@ximian.com>
5449
5450         * icall.c: Add new icall for Assembly::LoadWithPartialName
5451         * assembly.c/.h: new function that probes the GAC to load partial
5452         assembly names by Paolo Molaro.
5453         
5454 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5455
5456         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
5457         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
5458         (type_get_fully_qualified_name): Added PublicKeyToken when building a
5459         full type name.
5460
5461 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5462
5463         * appdomain.c: fixed check for 'neutral' culture and removed warning.
5464         * reflection.c: fix bug when parsing a full type name and Version is not
5465         the last thing in the string.
5466
5467 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
5468
5469         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
5470         crashes when it is freed.
5471
5472 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5473
5474         * assembly.c: print the compat warning to stderr.
5475
5476 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
5477
5478         * assembly.c (mono_assembly_load_references): Add a compatibility
5479         hack to run old applications that might be still referencing the
5480         3300-based assemblies, only do this for System.xxx.
5481
5482 2004-05-01  Jackson Harper  <jackson@ximian.com>
5483
5484         * appdomain.c: If the culture is neutral we set it to "".
5485         
5486 2004-04-29  Jackson Harper  <jackson@ximian.com>
5487
5488         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
5489
5490 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
5491  
5492         * string-icalls.c: added low overhead function for copying chars
5493         * icall.c: added needed icall for the above function
5494  
5495 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5496
5497         * icall.c: fix return value of get_global_assembly_cache.  Implemented
5498         Environment.GetLogicalDrives.
5499
5500 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
5501
5502         * rand.c: try and talk to egd or prngd
5503         for random bytes if opening devices fail.
5504
5505 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
5506
5507         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
5508         alignment for the type using the native alignment of its members 
5509         instead of using klass->min_align.
5510
5511         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
5512
5513 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5514
5515         * file-io.c:
5516         * socket-io.c: added check for sys/aio.h.
5517
5518 2004-04-28  Dick Porter  <dick@ximian.com>
5519
5520         * threads.c: Don't abort a thread thats already aborting, when
5521         terminating everything.
5522
5523 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5524
5525         * icall.c: added 2 new async calls for Socket.
5526
5527         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
5528         IO on *nix systems.
5529
5530         * threadpool.c: removed unused variable.
5531
5532 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
5533
5534         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
5535
5536 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5537
5538         * locales.c: put back string_invariant_tolower () and
5539         string_invariant_toupper ().
5540
5541 2004-04-26 David Waite <mass@akuma.org>
5542
5543         * file-io.h:
5544         * socket-io.h:
5545         * threads.h:
5546         * unicode.h: remove comma from end of enumeration declarations
5547
5548 2004-04-26 David Waite <mass@akuma.org>
5549
5550         * debug-mono-symfile.h:
5551         * decimal.c:
5552         * mono_debug.h:
5553         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
5554
5555
5556 2004-04-26  Jackson Harper  <jackson@ximian.com>
5557
5558         * appdomain.c: Increment version number.
5559         
5560 2004-04-26  Jackson Harper  <jackson@ximian.com>
5561
5562         * appdomain.c: Set assembly references public token value when
5563         PublicKeyToken is specified, not the hash_value. Free public token
5564         values when free assembly name data. Previously the public key
5565         token was hex decoded, however we are using hex encoded public key
5566         tokens, so this is not neccasary.
5567         * assembly.c: Lookup assemblies in the gac if their public token
5568         value is set. Add function to allow enabling user gac
5569         lookups. Specify whether or not the assembly was loaded from the
5570         GAC. Compare full assembly names when checking the cache for
5571         assemblies (Temporarily disabled see comment in code). Remove
5572         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
5573         specifies trace-loader they get extra info to stdout on the
5574         loading of assemblies.
5575         * image.h: Add a field for an assembly references public token
5576         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
5577         whether an assembly has been loaded from the GAC.
5578         * image.c: Remove a corlib -> mscorlib name mapping.
5579         * loader.h: Add function to enable/disable the user gac.
5580         * mono-config.c: Check if the usergac is enabled in the config
5581         file.
5582         * icall.c: New icall to determine whether or not an assembly has
5583         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
5584         * tabldefs.h: Add constant for assemblyref flag that specifies a
5585         full public key is used instead of a public token.
5586         * reflection.c: Remove mscorlib -> corlib mappings. Set
5587         PublicTokenValue instead of hash value. This value is a hex
5588         string so it does not need to be expanded.
5589
5590 2004-04-26  Martin Baulig  <martin@ximian.com>
5591
5592         * mono-debug-debugger.c (mono_debugger_initialize): Set
5593         `mono_debugger_initialized' before calling mono_debug_lock().
5594
5595 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
5596
5597         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
5598           InternalToUpper/InternalToLower.
5599         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
5600           removed invariant culture shortcut.  This is now done in managed code.
5601         * locales.c: (string_invariant_toupper/tolower) removed.
5602
5603 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5604
5605         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
5606         Added Poll internal call.
5607
5608         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
5609         call for Poll. Select was too heavy for polling a single socket.
5610
5611         * threadpool.[ch]: added mono_threadpool_cleanup.
5612         * threads.c: use it. Don't use Thread_Abort on windows.
5613
5614 2004-04-23  Martin Baulig  <martin@ximian.com>
5615
5616         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
5617
5618 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
5619
5620         * icall.c: Registred new icalls for key pair protection and added an
5621         icall for Environment.GetFolderPath on Windows.
5622         * security.c|h: Added new icalls for key pair protection.
5623
5624 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5625
5626         * socket-io.c: don't display the non-supported family warning for known
5627         families. Now this is not displayed on windows when checking support
5628         for IPv4/IPv6.
5629
5630 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5631
5632         * class.c: don't display the layout warning for static fields.
5633
5634 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
5635
5636         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
5637         * locales.c, locales.h: Added new icalls for culture-specific
5638         Char.ToLower and Char.ToUpper.
5639
5640 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5641
5642         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
5643         by David Waite.
5644
5645 2004-04-20  Martin Baulig  <martin@ximian.com>
5646
5647         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
5648         of the type name before passing it to mono_reflection_type_from_name().
5649
5650 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
5651
5652         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
5653         encodings here. Fixes #56965.
5654
5655 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
5656
5657         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5658         fix test on strstr result not that I can see anything that
5659         relies on the result.
5660
5661 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
5662
5663         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
5664         Fixes #57081.
5665
5666         * marshal.c (mono_marshal_get_string_encoding): New helper function.
5667
5668         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
5669         function to determine which marshalling to use for strings. Fixes
5670         #56965.
5671
5672         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
5673
5674         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
5675
5676 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
5677
5678         * icall.c: #include mono-config.h
5679
5680 2004-04-15  Jackson Harper  <jackson@ximian.com>
5681
5682         * culture-info-tables.h: Fix date formats for en-US culture.
5683         
5684 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
5685
5686         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
5687         ThreadPool.SetMinThreads.
5688         * threadpool.c: Implemented ThreadPool.GetMinThreads and
5689         ThreadPool.SetMinThreads.
5690
5691 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
5692
5693         * mono-config.c: also load the .config file in the directory
5694         where the assembly was found.
5695
5696 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
5697
5698         * assembly.c: load per-assembly config files.
5699         * icall.c: decrapified code to get the config dir and moved to
5700         mono-config.c.
5701         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
5702         per-assembly config files. When doing a dll map lookup give precedence
5703         to the per-assembly data.
5704
5705 2004-04-14  Martin Baulig  <martin@ximian.com>
5706
5707         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
5708         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
5709         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
5710
5711         * mono-debugger-debugger.c: While the debugger is locked, remember
5712         whether the symbol tables have changes and send one single
5713         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
5714
5715 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
5716
5717         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
5718
5719         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
5720         function.
5721
5722         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
5723         account when marshalling string arrays. Fixes #56965.
5724
5725 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
5726
5727         * icall.c: Add new icalls mapping for security.
5728         * security.c|h: Add internal calls for WindowsIdentity,
5729         WindowsImpersonationContext and WindowsPrincipal.
5730
5731 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
5732
5733         * class.c: Added comment to ensure the System.MonoDummy class
5734         is removed when no longer necessary
5735
5736 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
5737
5738         * appdomain.c: Pass arguments to the bootstraping exceptions to
5739         minimize JITed methods at boot
5740
5741         * metadata.c (mono_exception_from_name_two_strings): Allow for the
5742         second string to be null.
5743
5744         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5745         Change the protocol to minimize the JIT methods at startup.  Now
5746         it Returns the internal codepage, if the value of "int_code_page"
5747         is 1 at entry, and we can not compute a suitable code page
5748         number, returns the code page as a string.
5749
5750 2004-04-13  Jackson Harper  <jackson@ximian.com>
5751
5752         * culture-info-tables.h: Fix number of decimal digits for all
5753         english locales.
5754
5755 2004-04-13  Jackson Harper  <jackson@ximian.com>
5756
5757         * icall.c: Clairfy out of sync error message. It is not always
5758         your corlib that is out of sync.
5759
5760 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
5761
5762         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
5763         properties when only the set accessor is overriden. Fixes #55874.
5764
5765 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
5766
5767         * assembly.c (mono_assembly_load_references): Make this thread safe.
5768         Fixes #56327.
5769
5770 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
5771
5772         * monosn.c: Add missing initialization calls.
5773
5774 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
5775
5776         * locales.c:
5777         ves_icall_System_Globalization_CultureInfo_construct_number_format
5778         Fix g_assert so it compiles on fussier compilers re int/ptr
5779         mismatch
5780
5781 2004-04-08  Dick Porter  <dick@ximian.com>
5782
5783         * socket-io.h:
5784         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
5785         53992.  Also rearrange the code so that the internal calls return
5786         an error value and exceptions are thrown from managed code.
5787
5788         * icall.c: Add type info to the socket icalls.
5789
5790 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5791
5792         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
5793         owes me a beer.
5794
5795 2004-04-07  Martin Baulig  <martin@ximian.com>
5796
5797         * class.c (mono_class_from_generic_parameter): Don't default
5798         `klass->parent' to `mono_defaults.object_type'.
5799
5800 2004-04-07  Martin Baulig  <martin@ximian.com>
5801
5802         * reflection.c (mono_reflection_initialize_generic_parameter): Set
5803         `param->pklass->reflection_info'.       
5804
5805 2004-04-07  Jackson Harper  <jackson@ximian.com>
5806
5807         * culture-info-tables.h: Fix date separator symbol.
5808         
5809 2004-04-07  Martin Baulig  <martin@ximian.com>
5810
5811         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
5812         from System.Type to System.MonoType.
5813
5814 2004-04-07  Martin Baulig  <martin@ximian.com>
5815
5816         * reflection.h
5817         (MonoReflectionGenericParam): Added `has_reference_type' and
5818         `has_value_type' fields.
5819
5820         * reflection.c (mono_image_get_generic_param_info): Encode the
5821         correct flags if we have the `class' or `struct' constraint.
5822
5823 2004-04-07  Martin Baulig  <martin@ximian.com>
5824
5825         * reflection.h
5826         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
5827
5828 2004-04-07  Jackson Harper  <jackson@ximian.com>
5829
5830         * appdomain.c: Revert extra patches, just wanted to bump the
5831         version number.
5832         
5833 2004-04-07  Jackson Harper  <jackson@ximian.com>
5834
5835         * Makefile.am: Add culture-info private headers.
5836         * icall.c: Add new icalls for contructing locales.
5837         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
5838         * locales.h: Declare new culture info construction methods.
5839         * object.h: Add new fields used to avoid the CultureMap to
5840         MonoCultureInfo.
5841         * culture-info.h: Definition of structs used in the culture info
5842         tables.
5843         * culture-info-tables.h: Autogenerated tables that contain culture
5844         info data. This file was generated with the locale-builder tool.
5845         * appdomain.c: Incement corlib version number.
5846         
5847 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
5848
5849         * appdomain.c: (mono_runtime_init) move mono_thread_init
5850         to before mono_object_new calls so critical sections
5851         are initialized before use.
5852
5853 2004-04-07  Martin Baulig  <martin@ximian.com>
5854
5855         * icall.c
5856         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
5857         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
5858         (ves_icall_MonoGenericParam_initialize): Removed.
5859         (monogenericparam_icalls): Removed.
5860         (generictypeparambuilder_icalls): Added new table for
5861         System.Reflection.Emit.GenericTypeParameterBuilder.
5862
5863         * reflection.c
5864         (mono_reflection_define_generic_parameter): Removed.
5865         (mono_reflection_initialize_generic_parameter): This is now called
5866         from GenericTypeParameterBuilder's .ctor.
5867
5868 2004-04-06  Martin Baulig  <martin@ximian.com>
5869
5870         * class.c (mono_class_init): Don't inflate nested classes in a
5871         generic instance.
5872         (mono_type_get_name_recurse): Include the generic arguments for
5873         generic instances and generic type declarations.
5874         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
5875         (_mono_class_get_instantiation_name): Removed.
5876         (mono_class_create_generic): Always use `gklass->name' as our name.
5877
5878         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
5879
5880         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
5881         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
5882         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
5883         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
5884         closed generic methods here.
5885
5886         * reflection.c
5887         (mono_reflection_generic_inst_get_nested_types): Removed.
5888         (inflate_mono_method): Copy the generic parameters from the
5889         MonoMethodHeader into out MonoGenericMethod.
5890
5891 2004-04-06  Martin Baulig  <martin@ximian.com>
5892
5893         * row-indexes.h
5894         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
5895
5896         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
5897
5898         * reflection.c (build_compressed_metadata): If we have any entries
5899         in the GenericParam, MethodSpec or GenericParamConstraint tables,
5900         set the header version to 1.1.
5901
5902 2004-04-06  Martin Baulig  <martin@ximian.com>
5903
5904         * class.c (mono_class_init): If we're a generic instance,
5905         initialize our nested classes, too.
5906         (_mono_class_get_instantiation_name): Deal with the new `!%d'
5907         suffix. 
5908
5909 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5910
5911         * process.c: quote the argument passed to the shell on windows.
5912
5913 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
5914
5915         * threads.c (mono_alloc_special_static_data): Allow this to be
5916         called during startup.
5917
5918 2004-04-02  Martin Baulig  <martin@ximian.com>
5919
5920         * icall.c
5921         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
5922
5923 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
5924
5925         * icall.c: Fix build.
5926
5927 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
5928
5929         * Makefile.am: Added security.c|h.
5930         * icall.c: Added icall for get_UserName;
5931         * security.c: New file for security related icalls. Added function
5932         get_UserName for System.Environment (fix #56144).
5933         * security.h: New. Header file for security.c
5934
5935 2004-04-02  Dick Porter  <dick@ximian.com>
5936
5937         * icall.c: Deleted the icalls that were obsoleted some time ago
5938         by the ICU string code, and which were mixed into the icall
5939         rearranging.  Fixes bug 55969.
5940
5941         * string-icalls.h: 
5942         * string-icalls.c: Deleted the code that those icalls reference.
5943
5944 2004-04-01  Martin Baulig  <martin@ximian.com>
5945
5946         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
5947
5948         * class.c (mono_class_from_generic_parameter): Don't set 
5949         TYPE_ATTRIBUTE_INTERFACE.
5950         (my_mono_class_from_generic_parameter): Likewise.
5951
5952 2004-04-01  Martin Baulig  <martin@ximian.com>
5953
5954         * loader.c (find_method): Added an optional `MonoClass *ic'
5955         argument to search in a specific interface.
5956         (mono_get_method_constrained): New public function.
5957
5958 2004-04-01  Martin Baulig  <martin@ximian.com>
5959
5960         * reflection.c (mono_image_get_generic_field_token): Use the
5961         `handleref' cache here.
5962
5963 2004-04-01  Martin Baulig  <martin@ximian.com>
5964
5965         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
5966
5967         * reflection.c (create_generic_typespec): Use the `typespec' hash
5968         here, not the `typeref' one.    
5969
5970 2004-04-01  Martin Baulig  <martin@ximian.com>
5971
5972         * class.c (mono_class_inflate_generic_type): Moved the
5973         functionality into a new static inflate_generic_type() which
5974         returns NULL if it didn't do anything.  Only increment the
5975         `mono_stats.inflated_type_count' if we actually inflated
5976         something.
5977         (mono_class_get_full): Check the classes type to see whether we
5978         need to inflate it; also inflate MONO_TYPE_(M)VAR.
5979
5980 2004-04-01  Jackson Harper  <jackson@ximian.com>
5981
5982         * reflection.c: Set culture for assembly references.
5983         
5984 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
5985
5986         * reflection.[ch], icall.[ch], Fix support for pinning variables.
5987
5988 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5989
5990         * assembly.c:
5991         (do_mono_assembly_open): the critical section also covers
5992         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
5993
5994 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5995
5996         * threads.c:
5997         (mono_manage_threads): abort the background threads when finishing.
5998         Fixes bug #47232.
5999
6000 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6001
6002         * gc.c: only close the done_event handle if there was no timeout.
6003         C-ified comments.
6004
6005 2004-03-30  Martin Baulig  <martin@ximian.com>
6006
6007         * icall.c (icall_entries): It's called "System.Activator", not
6008         "System.Activation".    
6009
6010 2004-03-30  Martin Baulig  <martin@ximian.com>
6011
6012         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
6013         (mono_class_create_from_typespec): Likewise.
6014
6015 2004-03-30  Martin Baulig  <martin@ximian.com>
6016
6017         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
6018         `has_ctor_constraint' and `initialized'.
6019
6020 2004-03-30  Martin Baulig  <martin@ximian.com>
6021
6022         * reflection.c (encode_new_constraint): New static function to add
6023         the constructor constraint attribute to a type parameter.
6024         (encode_constraints): Call encode_new_constraint() if necessary.
6025
6026         * reflection.h
6027         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
6028
6029         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
6030         
6031 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
6032
6033         * reflection.c, icall.c: add support for pinning variables. 
6034
6035 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
6036
6037         * marshal.c (mono_marshal_get_managed_wrapper):
6038         init bool local with zero rather than null.
6039
6040 2004-03-29  Martin Baulig  <martin@ximian.com>
6041
6042         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
6043         the "official" behavior here.
6044         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
6045
6046 2004-03-29  Martin Baulig  <martin@ximian.com>
6047
6048         * icall.c: Reflect latest API changes.
6049
6050 2004-03-29  Martin Baulig  <martin@ximian.com>
6051
6052         * loader.c (mono_get_method_from_token): Also call
6053         mono_metadata_load_generic_params () for abstract and interface
6054         methods; replace the type arguments in the method signature with
6055         the ones which are loaded from the metadata.
6056
6057 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
6058
6059         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
6060         of the lock is not the current thread. MS.NET don't do it, in spite of
6061         what the documentation says. See bug #56157.
6062
6063 2004-03-28  Martin Baulig  <martin@ximian.com>
6064
6065         * class.c (mono_class_init): Don't call init_properties() and
6066         init_events() for generic instances; set `prop->parent' when
6067         inflating properties.
6068
6069         * reflection.c (mono_generic_inst_get_object): Call
6070         `mono_class_init (ginst->klass)'.
6071         (mono_type_get_object): Only create a MonoGenericInst if your
6072         generic type is a TypeBuilder.
6073         (do_mono_reflection_bind_generic_parameters): Only set
6074         `ginst->is_dynamic' if our generic type is a TypeBuilder.
6075
6076 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
6077
6078         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
6079         Fixes #56091.
6080
6081 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6082
6083         * icall.c: added Kill_internal icall.
6084         * process.[ch]: added Kill_internal icall.
6085
6086 2004-03-25  Martin Baulig  <martin@ximian.com>
6087
6088         * class.h (MonoStats): Added `generic_instance_count',
6089         `inflated_method_count', `inflated_type_count' and
6090         `generics_metadata_size'.       
6091
6092 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6093
6094         * reflection.c: no warnings now.
6095
6096 2004-03-25  Martin Baulig  <martin@ximian.com>
6097
6098         * class.c (mono_class_get_full): New public function; does a
6099         mono_class_get(), but also takes a `MonoGenericContext *'.
6100
6101         * loader.c (mono_field_from_memberref): Renamed to
6102         `field_from_memberref', made static and added `MonoGenericContext *'
6103         argument.
6104         (mono_field_from_token): Added `MonoGenericInst *' argument.
6105         (method_from_memberef): Likewise.
6106         (mono_get_method_from_token): Likewise.
6107         (mono_get_method_full): New public function; does a
6108         mono_get_method(), but also takes a `MonoGenericContext *'.
6109
6110         * verify.c (mono_method_verify): Get the method's generic context
6111         and pass it to mono_field_from_token(), mono_get_method_full() and
6112         mono_class_get_full().
6113
6114 2004-03-25  Martin Baulig  <martin@ximian.com>
6115
6116         * class.c (mono_class_inflate_generic_type): Take a
6117         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
6118         `MonoGenericMethod *'.
6119
6120 2004-03-25  Martin Baulig  <martin@ximian.com>
6121
6122         * loader.h (MonoMethodInflated): Store the MonoGenericContext
6123         instead of the MonoGenericMethod here.
6124
6125 2004-03-25  Martin Baulig  <martin@ximian.com>
6126
6127         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
6128         each time we create a new MonoGenericInst, we also create a new
6129         context which points back to us.
6130
6131         * class.c (inflate_method): Use `ginst->context' instead of
6132         creating a new context.
6133
6134         * loader.c (method_from_memberref): Use
6135         `klass->generic_inst->context' instead of creating a new context.
6136
6137 2004-03-25  Martin Baulig  <martin@ximian.com>
6138
6139         * class.h (MonoGenericContext): New struct.
6140         (MonoGenericMethod): Removed `generic_inst'.
6141
6142         * class.c (mono_class_inflate_generic_method): Take a
6143         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
6144
6145 2004-03-25  Martin Baulig  <martin@ximian.com>
6146
6147         * loader.h (MonoMethodInflated): New typedef.
6148
6149         * metadata.h (MonoMethodSignature): Removed `gen_method', make
6150         `generic_param_count' consume just 30 bits, added `is_inflated'
6151         and `has_type_parameters' flags (one bit each).
6152
6153         * class.c (mono_class_inflate_generic_method): Create a
6154         MonoMethodInflated instead of a MonoMethodNormal and set
6155         `is_inflated' in the method signature.
6156
6157         * class.h (MonoGenericMethod): Removed `generic_method'.
6158
6159 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
6160
6161         * image.c: Make sure the name of a MonoImage is always an absolute path.
6162           This fixes bug #54415.
6163
6164 2004-03-24  Martin Baulig  <martin@ximian.com>
6165
6166         * class.c (mono_class_setup_vtable): If we're a generic instance,
6167         use our generic type's vtable size.
6168
6169 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
6170
6171         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
6172         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
6173         problems.
6174
6175 2004-03-23  Martin Baulig  <martin@ximian.com>
6176
6177         * class.h (MonoDynamicGenericInst): Added `int count_events' and
6178         `MonoEvent *events'.
6179
6180         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
6181         (typebuilder_icalls): Added "get_event_info"; calls
6182         mono_reflection_event_builder_get_event_info(). 
6183
6184         * reflection.c (mono_reflection_generic_inst_initialize): Added
6185         `MonoArray *events'.
6186         (mono_reflection_event_builder_get_event_info): New function.
6187
6188 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
6189
6190         * object.h: add mono_type_initialization_init
6191
6192         * object.c (mono_runtime_class_init): 
6193         implement class constructor synchronization rules
6194         to cope with threading issues.  
6195         add mono_type_initialization_init
6196
6197         * appdomain.c (mono_runtime_init): call 
6198         mono_type_initialization_init
6199
6200         * class.h: removing initializing field from MonoVTable
6201
6202 2004-03-23  Martin Baulig  <martin@ximian.com>
6203
6204         * class.c (my_mono_class_from_generic_parameter): Use
6205         `param->name' if it's not NULL. 
6206
6207 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
6208
6209         * class.c: do not insert non-virtual methods in the vtable.
6210         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
6211         that means the method is non-virtual. This never would have
6212         happened before.
6213
6214 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
6215
6216         * profiler.c: Added lock for accessing coverage_hash.
6217
6218 2004-03-22  Martin Baulig  <martin@ximian.com>
6219
6220         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
6221         `method->method->signature->generic_param_count != 0' to make it
6222         work for interface methods.
6223
6224 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6225
6226         * process.c: quote the string passed to the shell using g_shell_quote.
6227
6228 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6229
6230         * threads.c:
6231         (mono_threads_manage): don't remove the finalizer thread and self
6232         from the threads hash table so that mono_thread_manage can be called
6233         more than once.
6234
6235 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6236
6237         * process.c: quote the arguments when UseShellExecute is true. Fixes
6238         bug #55790.
6239
6240 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6241
6242         * threads.c: set mono_thread_detach as a cleanup routine for every
6243         thread. This way it's always executed upon thread termination, either
6244         aborted or finished normally. No more xsp hangs!
6245
6246 2004-03-17  Martin Baulig  <martin@ximian.com>
6247
6248         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
6249         `int count_nested' and a `MonoType **nested'.
6250
6251         * reflection.c (mono_reflection_bind_generic_parameters): Moved
6252         most of the functionality into a new static
6253         do_mono_reflection_bind_generic_parameters() and don't take a
6254         `MonoType *nested_in' argument any more.  Don't compute nested
6255         types here.
6256         (mono_reflection_generic_inst_get_nested_types): New public method
6257         to get nested types.
6258
6259         * class.c (mono_class_create_generic): Set `klass->nested_in' if
6260         we're a nested class.
6261
6262         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
6263         mono_reflection_generic_inst_get_nested_types() to compute the
6264         nested types.
6265
6266 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
6267
6268         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
6269         descriptive error message under windows.
6270         
6271 2004-03-17  Martin Baulig  <martin@ximian.com>
6272
6273         * class.c (dup_type): Added `const MonoType *original' argument;
6274         copy the attrs from the original type.
6275
6276 2004-03-17  Martin Baulig  <martin@ximian.com>
6277
6278         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
6279         `m->generic_inst_cache' here.
6280
6281 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
6282
6283         * exception.h exception.c: Add stack_overflow_exception.
6284
6285 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6286
6287         * threadpool.c:
6288         (overlapped_callback): call SetEvent *after* invoking the callback.
6289         No need to call CloseHandle.
6290
6291 2004-03-16  Martin Baulig  <martin@ximian.com>
6292
6293         * reflection.c (mono_image_get_fieldref_token): Take a
6294         `MonoReflectionField *' instead of a `MonoClassField *' and a
6295         `MonoClass *'; store the `MonoReflectionField *' in the hash.
6296
6297 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6298
6299         * appdomain.c: don't add the culture to the filename we're looking for
6300         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
6301
6302 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6303
6304         * locales.c: don't ignore symbols when doing case insensitive compares.
6305         Thanks Dick! Fixes bug #54046.
6306
6307         * threads.c: surround 'threads' usage with enter/leave in
6308         mono_thread_manage.
6309
6310 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
6311
6312         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
6313         implicitly marshalled as [Out]. Fixes #55450.
6314
6315         (mono_marshal_get_runtime_invoke): Zero out the result if there is
6316         an exception.
6317
6318 2004-03-16  Martin Baulig  <martin@ximian.com>
6319
6320         * class.c (mono_class_from_generic_parameter): Use the actual
6321         parameter name. 
6322
6323 2004-03-16  Martin Baulig  <martin@ximian.com>
6324
6325         * reflection.c (type_get_signature_size): New static function.
6326         Compues the size of the type in a method signature.
6327         (method_get_signature_size): New static function; calls
6328         type_get_signature_size() to compute the actual size of the
6329         method's signature.
6330         (method_encode_signature): Use method_get_signature_size() to get
6331         the signature's size rather than using `nparams * 10'.
6332
6333 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6334
6335         * file-io.h: define here WapiOverlapped on windows. I don't want the
6336         regular OVERLAPPED one.
6337
6338         * file-io.c:
6339         * threadpool.c: somehow, BindIoCompletionCallback is not found.
6340         Disabling AIO on windows.
6341
6342 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6343
6344         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
6345         bug #55385.
6346
6347 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6348
6349         * appdomain.c: upgraded corlib version.
6350
6351         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
6352         and BeginWrite. Allow opening files for asynchrnous operations.
6353
6354         * file-io.h: new struct that maps FileStreamAsyncResult.
6355         * icall.c: added new icalls.
6356         * process.[ch]: support setting child process environment variables
6357         and use the SHELL or COMSPEC when UseShellExecute is true.
6358
6359         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
6360         callback for async. IO is here and also BindHandle.
6361
6362         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
6363         from here.
6364
6365 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
6366
6367         * reflection.c (create_custom_attr): Allow len == 0.
6368
6369         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
6370         computation on big-endian machines.
6371
6372 2004-03-13  Martin Baulig  <martin@ximian.com>
6373
6374         * class.h (MonoGenericInst): Added `int count_ifaces'.
6375
6376         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
6377         `ginst->count_ifaces' instead `klass->interface_count' since we
6378         may get called before the vtable is created.
6379
6380         * loader.c (mono_method_get_param_names): If we're a generic
6381         instance, return and don't initialize the class.
6382
6383         * reflection.c (mono_reflection_setup_generic_class): Don't call
6384         ensure_runtime_vtable().
6385         (mono_reflection_bind_generic_parameters): Set
6386         `ginst->count_ifaces'.
6387
6388 2004-03-11  Jackson Harper <jackson@ximian.com>
6389
6390         * icall.c:
6391         * unicode.c:
6392         * unicode.h: Remove unused System.Char icalls.
6393         
6394 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
6395
6396         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
6397         code when we P/Invoke the first library in Windows.Forms, instead
6398         of when we first open the assembly.
6399
6400         * assembly.c: Drop the lookup from here.
6401
6402 2004-03-10  Martin Baulig  <martin@ximian.com>
6403
6404         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
6405         class for properties, fields and events.  Finally fixes #54945.
6406
6407 2004-03-10  Martin Baulig  <martin@ximian.com>
6408
6409         * metadata.c (mono_metadata_class_equal): New static function;
6410         checks whether two generic instances or two generic parameters are
6411         equal.
6412         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
6413         compare classes.        
6414
6415 2004-03-10  Martin Baulig  <martin@ximian.com>
6416
6417         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
6418
6419         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
6420         argument and write it into the `reflection_info' field.
6421
6422         * icall.c
6423         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
6424         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
6425
6426 2004-03-09  Jackson Harper  <jackson@ximian.com>
6427
6428         * char-conversions.h: use 8 bits for numeric data its all we need
6429         * icall.c: numeric data is only 8 bits now.
6430
6431 2004-03-09  Martin Baulig  <martin@ximian.com>
6432
6433         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
6434
6435         * class.c (init_properties, init_events): Initialize the new
6436         `parent' field.
6437
6438         * reflection.c (typebuilder_setup_properties): Likewise.
6439         (typebuilder_setup_events): Likewise.
6440
6441         * reflection.h (MonoEventInfo): Replaced `parent with
6442         `declaring_type' and `reflected_type'.
6443
6444         * icall.c (ves_icall_get_property_info): Distinguish between
6445         declaring and reflected type.
6446         (ves_icall_get_event_info): Likewise.
6447
6448 2004-03-09  Martin Baulig  <martin@ximian.com>
6449
6450         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
6451         (ves_icall_Type_GetField): Correctly set field->klass.
6452
6453 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
6454
6455         * loader.h: Fix warning.
6456
6457 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
6458
6459         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
6460         library routine if present.  Notice that it will still continue
6461         executing even if its missing, for those working on the Gtk#
6462         edition of Windows.Forms.
6463
6464         * assembly.c (do_mono_assembly_open): If loading the
6465         System.Windows.Forms call mono_loader_wini_init.
6466
6467 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
6468
6469         * class.h: Added MonoRemoteClass struct.
6470         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
6471         function for MonoStrings.
6472         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
6473         Added internal call for getting the proxy type.
6474         * marshal.c: Get the type of transparent proxies from its remote_class.
6475         Added methods that generate the IL for type checks and casts:
6476         mono_marshal_get_isinst, mono_marshal_get_castclass, 
6477         mono_marshal_get_proxy_cancast.
6478         * marshal.h: Declaration of the previous new methods.
6479         * object.c: Added new moethods for creating and updating MonoRemoteClass
6480         instances: mono_remote_class, mono_upgrade_remote_class, 
6481         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
6482         * verify.c: FIx transparent_proxy_fields layout.
6483         * appdomain.c: Bump corlib version.
6484
6485 2004-03-04  Jackson Harper  <jackson@ximian.com>
6486
6487         * icall.c: Add icall to access char conversion tables.
6488         * char-conversions.h: Character conversion tables.
6489         * Makefile.am: Add char-conversions.h private header file.
6490         
6491 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
6492
6493         * appdomain.c (unload_thread_main): Increase unloading timeout to
6494         10 sec as a temporary workaround for Nant problems.
6495
6496 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
6497
6498         * gc.c: Add checks for GC_enable and GC_disable.
6499
6500         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
6501         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
6502         (bug #54988).
6503         
6504 2004-02-27  Martin Baulig  <martin@ximian.com>
6505
6506         * reflection.c (mono_reflection_bind_generic_parameters): Take a
6507         `MonoReflectionType *' instead of a `MonoType *'.
6508
6509 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
6510
6511         * gc.c (run_finalize): Avoid finalizing the object representing the
6512         finalizer thread.
6513         (finalizer_thread): Fix warning.
6514
6515 2004-02-25  Martin Baulig  <martin@ximian.com>
6516
6517         * class.c (_mono_class_get_instantiation_name): Added `int offset'
6518         argument for nested types.
6519         (mono_class_create_generic): Added support for nested generictypes.
6520
6521         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
6522         `GList *nested'.
6523
6524         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
6525
6526         * reflection.c (method_encode_signature): Increase the minimum
6527         value of `size' from 10 to 11.
6528         (mono_reflection_bind_generic_parameters): Take `int type_argc'
6529         and `MonoType **types' arguments instead of the `MonoArray
6530         *types'; added `MonoType *nested_in'.  Recursively instantiate
6531         nested classes. 
6532
6533 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
6534
6535         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
6536         stack_overflow_ex members which are used by exception handling.
6537
6538         * appdomain.c (mono_runtime_init): Initialize the new members.
6539
6540         * gc.c (mono_gc_enable): New helper function.
6541         * gc.c (mono_gc_disable): New helper function.
6542
6543 2004-02-23  Martin Baulig  <martin@ximian.com>
6544
6545         * icall.c: I must have been really stupid - make it actually work
6546         this time ;-)
6547
6548 2004-02-23  Martin Baulig  <martin@ximian.com>
6549
6550         * loader.c (method_from_memberref): Only inflate the method if
6551         it's in another klass.
6552
6553 2004-02-23  Martin Baulig  <martin@ximian.com>
6554
6555         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
6556         (mono_class_init): If we're a generic instance and an interface,
6557         compute `class->interface_id'; also create `class->interfaces'
6558         here and inflate them.
6559
6560         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
6561         `ginst->is_open'.
6562         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
6563
6564         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
6565
6566 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
6567
6568         * reflection.c (method_encode_code): Improved the error message
6569         generated by the exception.
6570
6571 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6572
6573         * icall.c: Martin did not do what he said in the ChangeLog for
6574         2004-02-18, but put back the changes for properties and events.
6575         Commenting those changes out again and adding comment to bug #54518.
6576         
6577         * process.c: removed warning.
6578
6579 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
6580
6581         * marshal.c (emit_struct_conv): Print an error message instead of
6582         asserting when a type does not have the StructLayout attribute.
6583
6584 2004-02-20  Martin Baulig  <martin@ximian.com>
6585
6586         * reflection.c (mono_type_get_object): Also use the cache for
6587         generic instances.
6588         (mono_reflection_bind_generic_parameters): Always compute
6589         `ginst->ifaces'.        
6590
6591 2004-02-20  Martin Baulig  <martin@ximian.com>
6592
6593         * class.h (MonoGenericMethod): Removed `klass'.
6594
6595         * class.c (mono_class_inflate_generic_method): Added `MonoClass
6596         *klass' argument.
6597
6598 2004-02-20  Martin Baulig  <martin@ximian.com>
6599
6600         * reflection.c (method_encode_methodspec): Actually use the
6601         uninflated signature for the memberref.
6602
6603 2004-02-20  Martin Baulig  <martin@ximian.com>
6604
6605         * class.h (MonoGenericMethod): Removed `declaring'.
6606
6607         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
6608         is NULL, compute it here.
6609
6610 2004-02-20  Martin Baulig  <martin@ximian.com>
6611
6612         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
6613
6614         * metadata.c (mono_metadata_generic_inst_hash): New method.
6615         (mono_metadata_generic_inst_equal): New method.
6616
6617         * reflection.c (mono_reflection_bind_generic_parameters): Use the
6618         `klass->image->generic_inst_cache' cache to avoid creating
6619         duplicate MonoGenericInst's.
6620
6621         * class.c (mono_class_inflate_generic_type): Use the cache.
6622
6623 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6624
6625         * object.c: fixed gc descriptor calculation for embedded valuetypes.
6626
6627 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6628
6629         * icall.c: added Socket.WSAIoctl icall.
6630
6631         * socket-io.[ch]: implemented
6632         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
6633
6634 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
6635
6636         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
6637
6638 2004-02-18  Urs C Muff  <umuff@quark.com>
6639
6640         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
6641         this work on PPC and other big-endian architectures.
6642
6643         * debug-mono-symfile.h: Prepended the names of all the `guint32'
6644         fields with an underscore to make sure they're only accessed by
6645         the read32() macro.
6646
6647 2004-02-18  Martin Baulig  <martin@ximian.com>
6648
6649         * icall.c: Put the klass->refclass changes back for methods and
6650         fields, but not for properties and events.  We're currently not
6651         distinguishing between DeclaringType and ReflectedType for
6652         properties and events, that's what caused the regressions.
6653
6654 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6655
6656         * object.c:
6657         (mono_async_result_new): the handle can be NULL.
6658
6659         * threadpool.c: Use an event instead of a semaphore, don't initialize
6660         it until needed. This saves quite a few semaphores from being created
6661         when using the threadpool.
6662
6663 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
6664
6665         * object.c (mono_string_is_interned_lookup): Fix interning of long
6666         strings. Fixes #54473.
6667
6668         * domain.c (ldstr_equal): Optimize if the two strings are equal.
6669
6670         * icall.c: Revert the klass->refclass changes since they introduce
6671         regressions (bug #54518).
6672
6673 2004-02-18  Martin Baulig  <martin@ximian.com>
6674
6675         * class.c (mono_class_init): If we're a generic instance and don't
6676         come from a TypeBuilder, inflate our members here.
6677         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
6678         (mono_class_create_generic): New public method.
6679         (mono_class_initialize_generic): Removed.
6680         (get_instantiation_name): Renamed to
6681         _mono_class_get_instantiation_name() and made it public.
6682
6683 2004-02-18  Martin Baulig  <martin@ximian.com>
6684
6685         * class.c (mono_class_inflate_generic_type): Clear the new
6686         instance's `nginst->klass' when inflating a generic instance.
6687         (mono_class_is_subclass_of): Added (basic) support for generic
6688         instances.
6689
6690 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
6691
6692         * appdomain.h, domain.c: use a MonoCodeManager instead of a
6693         MonoMempool to hold compiled native code.
6694
6695 2004-02-17  Martin Baulig  <martin@ximian.com>
6696
6697         * class.h (MonoDynamicGenericInst): Added `count_properties' and
6698         `properties'.
6699
6700         * reflection.c (mono_reflection_generic_inst_initialize): Added
6701         `MonoArray *properties' argument.
6702
6703         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
6704
6705 2004-02-17  Martin Baulig  <martin@ximian.com>
6706
6707         * icall.c (ves_icall_Type_GetFields): Renamed to
6708         ves_icall_Type_GetFields_internal() and added a
6709         `MonoReflectionType *rtype' argument; pass it to
6710         mono_field_get_object() to set the field's "reflected" type.
6711         (ves_icall_Type_GetConstructors): Likewise.
6712         (ves_icall_Type_GetEvents): Likewise.
6713         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
6714         argument; pass it to mono_method_get_object() to set the method's
6715         "reflected" type.       
6716
6717 2004-02-17  Martin Baulig  <martin@ximian.com>
6718
6719         * class.h (MonoDynamicGenericInst): New type.
6720         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
6721
6722         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
6723         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
6724         (ves_icall_MonoGenericInst_GetFields): New interncall.
6725
6726         * class.c (mono_class_from_generic): Don't call
6727         mono_class_initialize_generic() if this is a dynamic instance;
6728         ie. it's being created from a TypeBuilder.
6729         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
6730         `class->byval_arg.type'.
6731
6732         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
6733         to `inflate_method' and made static.
6734         (mono_reflection_inflate_field): Removed.
6735         (mono_reflection_generic_inst_initialize): New public method.
6736
6737         * reflection.h (MonoReflectionGenericInst): Removed `methods',
6738         `ctors' and `fields'; added `initialized'.
6739
6740 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
6741
6742         * debug-helpers.c (mono_method_full_name): Fix output for empty
6743         namespaces.
6744
6745 2004-02-12  Martin Baulig  <martin@ximian.com>
6746
6747         * class.h (MonoClassField): Added `MonoType *generic_type'.
6748
6749         * reflection.c (mono_image_get_fieldref_token): Added support for
6750         instantiated generic types.
6751         (field_encode_inflated_field): Removed.
6752         (mono_image_get_inflated_field_token): Removed.
6753         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
6754
6755         * reflection.h (MonoReflectionInflatedField): Removed.
6756
6757 2004-02-12  Martin Baulig  <martin@ximian.com>
6758
6759         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
6760         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
6761
6762         * reflection.c (mono_image_get_methodspec_token): Take a
6763         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
6764         (mono_image_create_token): Check whether we have a
6765         `method->signature->gen_method' and call
6766         mono_image_get_methodspec_token() if appropriate.
6767         (inflated_method_get_object): Removed.
6768         (mono_reflection_bind_generic_method_parameters): Return a
6769         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
6770         (mono_reflection_inflate_method_or_ctor): Likewise.
6771
6772         * reflection.h (MonoReflectionInflatedMethod): Removed.
6773
6774 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
6775
6776         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
6777         for custom valuetype marshalling.
6778
6779         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
6780
6781 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6782
6783         * icall.c: fixed WSAGetLastError_internal name.
6784
6785 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
6786
6787         * threads.c (mono_thread_attach): Allow this to be called multiple
6788         times for a thread.
6789         
6790         * threads.c (build_wait_tids): Do not wait for ourselves.
6791
6792         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
6793         appdomain list is empty.
6794
6795         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
6796         memory returned by mono_string_builder_to_utf16, since it points into
6797         managed memory. Thanks to Bernie Solomon for noticing this.
6798
6799         * icall.c: Add AppDomainSetup icalls.
6800
6801         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
6802
6803         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
6804         types.
6805
6806         * reflection.c (reflection_methodbuilder_to_mono_method): Save
6807         custom attributes to the method_aux struct. Also fix array indexes etc.
6808
6809         * loader.c (mono_method_get_param_names): Make dynamic case work again.
6810         
6811 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
6812
6813         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
6814         (both static and runtime) and reduce startup time.
6815
6816 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
6817
6818         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
6819         AsAny marshalling conversion instead of crashing.
6820
6821         * marshal.c: Fix warnings.
6822
6823 2004-02-09  Martin Baulig  <martin@ximian.com>
6824
6825         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
6826
6827         * reflection.h (MonoReflectionInflatedMethod): Removed the
6828         `declaring' field, it's now in the unmanaged MonoGenericMethod.
6829
6830         * reflection.c (method_encode_methodspec): Removed the `method'
6831         argument; we get it from `gmethod->declaring'.
6832         (inflated_method_get_object): Removed the `declaring' argument.
6833
6834 2004-02-09  Martin Baulig  <martin@ximian.com>
6835
6836         * class.h (MonoGenericMethod): New type.
6837         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
6838         `generic_method'.
6839
6840         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
6841         a `MonoGenericMethod *gen_method' one.
6842
6843         * class.c (mono_class_inflate_generic_type): Take an additional
6844         `MonoGenericMethod * argument.  This is only non-NULL if we're
6845         inflating types for a generic method.   
6846         (mono_class_inflate_generic_signature): Renamed to
6847         inflate_generic_signature() and made static; take a
6848         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
6849         (inflate_generic_header): Take a `MonoGenericMethod *' argument
6850         instead of a `MonoGenericInst *' one.
6851         (mono_class_inflate_generic_method): Likewise.
6852
6853         * reflection.c (encode_generic_method_sig): Take a
6854         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
6855         (method_encode_methodspec): Likewise.
6856         (inflated_method_get_object): Likewise. 
6857
6858         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
6859         field with a `MonoGenericMethod *gmethod' one.  
6860
6861 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
6862
6863         * class.h (mono_class_has_parent): add parens to expansion
6864         so you can ! this.
6865
6866 2004-02-08  Martin Baulig  <martin@ximian.com>
6867
6868         * image.h (MonoImage): Removed `generics_cache'.
6869
6870         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
6871         instead of a `MonoType *' argument; removed the `inflate_methods'
6872         argument.  Don't inflate methods here.
6873
6874         * loader.c (find_method): If it's a generic instance, call
6875         mono_class_init() on the `sclass->generic_inst->generic_type'.
6876
6877         * metadata.c (mono_type_size): Make this work on uninitialized
6878         generic instances; call it on the `ginst->generic_type's class.
6879
6880         * reflection.c (mono_reflection_bind_generic_parameters): Call
6881         mono_class_from_generic() to create the `ginst->klass'.
6882
6883 2004-02-08  Martin Baulig  <martin@ximian.com>
6884
6885         * class.h (MonoClass): Changed type of `generic_inst' from
6886         `MonoType *' to `MonoGenericInst *'.
6887
6888 2004-02-08  Martin Baulig  <martin@ximian.com>
6889
6890         * icall.c (ves_icall_Type_BindGenericParameters): Just call
6891         mono_type_get_object(), this is now creating a `MonoGenericInst'
6892         for MONO_TYPE_GENERICINST.
6893         (ves_icall_MonoGenericInst_GetParentType): Likewise.
6894         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
6895
6896         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
6897         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
6898         (inflated_method_get_object): Added `MonoClass *refclass' argument.
6899         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
6900         and reflected type.
6901
6902         * reflection.h (MonoReflectionInflatedMethod): Removed
6903         `declaring_type' and `reflected_type'.
6904
6905 2004-02-08  Martin Baulig  <martin@ximian.com>
6906
6907         * class.h (MonoGenericInst): Added `MonoType *parent' and
6908         `MonoType **ifaces'.
6909
6910         * reflection.h (MonoReflectionGenericInst): Removed `klass',
6911         `parent' and `interfaces'.
6912
6913         * reflection.c (mono_reflection_bind_generic_parameters): Take a
6914         `MonoType *' argument and return a `MonoType *'.
6915
6916         * icall.c
6917         (ves_icall_MonoGenericInst_GetParentType): New interncall.
6918         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
6919
6920 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
6921
6922         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
6923         valuetype marshalling.
6924
6925 2004-02-06  Martin Baulig  <martin@ximian.com>
6926
6927         * class.c
6928         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
6929         (my_mono_class_from_generic_parameter): Likewise.
6930
6931 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
6932
6933         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
6934         contents of the symbol files lazily.
6935
6936         * object.h (MonoThread): Add 'name' and 'name_len' fields.
6937
6938         * threads.h threads.c icall.c: New icalls for getting and setting the
6939         threads name.
6940
6941 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
6942
6943         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
6944         Raise an exception when the domain is not found.
6945
6946 2004-02-03  Martin Baulig  <martin@ximian.com>
6947
6948         * reflection.c (mono_image_get_methodspec_token): Use the
6949         uninflated signature; fixes gen-33.
6950
6951 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
6952
6953         * gc.c threads.c: Make the finalizer thread a normal managed thread so
6954         the finalizer code can use thread functionality.
6955
6956         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
6957         the finalizer thread.
6958
6959         * threads.c: Make some functions more robust.
6960
6961         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
6962
6963         * metadata.h: Add new marshalling conventions.
6964
6965         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
6966         stringbuilder marshalling. Fixes #53700.
6967
6968         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
6969
6970         * reflection.c (mono_image_get_type_info): Save declarative security
6971         info.
6972
6973         * reflection.c (mono_image_get_field_info): Handle uninitialized 
6974         unmanaged fields as well.
6975
6976         * appdomain.c: Bump corlib version.
6977
6978 2004-02-01  Martin Baulig  <martin@ximian.com>
6979
6980         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
6981         method type arguments.  
6982
6983 2004-01-30  Duncan Mak  <duncan@ximian.com>
6984
6985         * marshal.h: Add prototype for
6986         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
6987         and
6988         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
6989         fix the build.
6990
6991 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
6992
6993         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
6994         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
6995
6996 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
6997
6998         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6999         custom marshalling of valuetypes.
7000
7001         * marshal.c: Fix some warnings.
7002
7003 2004-01-29  Martin Baulig  <martin@ximian.com>
7004
7005         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
7006         for generic method parameters.
7007
7008         * reflection.c (method_encode_methodspec): Write the uninflated
7009         signature into the methodspec table.
7010         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
7011         is always the uninflated method.
7012         (reflection_methodbuilder_to_mono_method): Copy the generic
7013         parameters from the MethodBuilder into `header->gen_params'.
7014
7015 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7016
7017         * class.c (mono_class_from_generic_parameter): Fix warning.
7018
7019 2004-01-27  Martin Baulig  <martin@ximian.com>
7020
7021         * class.c (mono_class_from_generic_parameter): Don't create
7022         `klass->methods' here.  
7023
7024 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
7025
7026         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
7027         extension since it does not work with libraries named lib<FOO>.dll.so.
7028
7029 2004-01-25  Martin Baulig  <martin@ximian.com>
7030
7031         * class.c (mono_class_inflate_generic_type): Added support for
7032         MONO_TYPE_GENERICINST.
7033
7034         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
7035         inflate methods on open constructed types.      
7036
7037 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7038
7039         * object.c: fire ProcessExit event in the root AppDomain after running
7040         Main. Fixes bug #53299.
7041
7042 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
7043
7044         * socket-io.c: include the new socket-wrappers.h header.
7045         Use the wrappers instead of the unix socket functions to make the code
7046         more clear.
7047
7048 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
7049
7050         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
7051
7052         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7053         Fixes #22532.
7054
7055 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
7056
7057         * reflection.c (mono_image_create_pefile): Handle the case when the
7058         entry point is not a MethodBuilder.
7059
7060         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7061         field to ReflectionMethod since it is not allways a builder.
7062
7063         * reflection.c (type_get_fully_qualified_name): New helper function to
7064         return the fully qualified name of a type.
7065
7066         * reflection.c (encode_marshal_blob): Always emit the fully qualified
7067         type name for custom marshallers.
7068
7069         * reflection.c (mono_marshal_spec_from_builder): Ditto.
7070
7071         * class.c (mono_class_setup_vtable): If a parent class already 
7072         implements an interface, use the implementing methods from that class.
7073         Fixes #53148.
7074
7075 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7076
7077         * threadpool.c: just return instead of ExitThread to allow for thread
7078         clean up earlier.
7079
7080 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
7081
7082         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
7083         when closing resource modules.
7084
7085         * reflection.c (mono_image_create_pefile): Handle the case when the
7086         entry point is not a MethodBuilder.
7087
7088         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7089         field to ReflectionMethod since it is not allways a builder.
7090
7091 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7092
7093         * marshal.c (mono_marshal_get_managed_wrapper): 
7094         mono_marshal_alloc takes native int so CONV_I
7095         the arg for 64bits.
7096
7097 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
7098
7099         * reflection.c (fixup_cattrs): New function to fixup the methoddef
7100         tokens in the cattr table. Fixes #53108.
7101
7102 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7103
7104         * loader.c: don't trim ".dll" before looking up in the config file.
7105         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
7106
7107 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
7108
7109         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
7110         Return the module which contains the resource as well.
7111         (ves_icall_System_Reflection_Module_Close): New icall.
7112
7113         * appdomain.c: Bump corlib version number.
7114
7115         * image.c (mono_image_addref): New public function.
7116
7117         * assembly.c: Call mono_image_addref.
7118
7119         * reflection.c (mono_module_get_object): Increase reference count of 
7120         the image.
7121
7122         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7123         Fixes #22532.
7124
7125         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
7126         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
7127         proper exceptions on DllImport problems.
7128
7129 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
7130
7131         * class.c, metadata.c: eliminate CSIZE macro.
7132
7133 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
7134
7135         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
7136         * object.h: Added async_callback field in MonoAsyncResult.
7137         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
7138         * verify.c: Added async_callback in MonoAsyncResult layout.
7139
7140 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
7141
7142         * reflection.c (mono_reflection_get_custom_attrs): Add support
7143         for Modules.
7144
7145 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7146
7147         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
7148         marshalling.
7149         (mono_marshal_method_from_wrapper): Add null pointer check.
7150
7151 2004-01-16  Martin Baulig  <martin@ximian.com>
7152
7153         * debug-mono-symfile.h: Set version number to 36 and reflect
7154         latest symbol writer changes.
7155
7156 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7157
7158         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
7159         multi-dimensional arrays.
7160         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
7161         (mono_class_from_mono_type): Use bounded_array_class_get.
7162         
7163         * class.c (mono_bounded_array_class_get): New function which takes
7164         a 'bounded' bool argument to distinguish vectors from one dimensional
7165         arrays.
7166
7167         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
7168         bounded_array_class_get if the array has bounds.
7169
7170         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7171         Search modules loaded using AssemblyBuilder:AddModule as well.
7172
7173 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7174
7175         * appdomain.c: increased corlib version.
7176         * filewatcher.c: removed g_print.
7177         * icall.c:
7178         (get_property_info): only allocate what is actually requested.
7179         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
7180
7181 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7182
7183         * Makefile.am: added filewatcher.[ch]
7184         * filewatcher.[ch]: FileSystemWatcher runtime support.
7185         * icall.c: added new FSW icalls.
7186
7187 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
7188
7189         * string-icalls.c: fix stringbuilder regression as suggested by
7190         Iain McCoy <iain@mccoy.id.au>.
7191
7192 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
7193
7194         * process.c (process_read_stringtable_block): Recognize '007f' as
7195         a language neutral stringtable block.
7196
7197 2004-01-12  Patrik Torstensson
7198
7199         * object.h (MonoStringBuilder) : Changed layout to support our
7200         new stringbuilder class.
7201         * marshal.c: Change marshalling to support the new layout of 
7202         string builder.
7203         * appdomain.c: increased version number because new layout of
7204         string builder.
7205
7206 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
7207
7208         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
7209         assembly name as an string instead of an AssemblyName, since it is
7210         easier to extract info from it.
7211
7212         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
7213         the culture subdirectories too. Fixes #52231.
7214
7215 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7216
7217         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
7218         It takes 2 new parameters with an optional name for the method to look
7219         for and case ignoring info.
7220
7221         * threadpool.c: removed unused variable.
7222
7223 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7224
7225         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
7226         It takes 2 new parameters with an optional name for the property to look
7227         for and case ignoring info.
7228         Fixes bug #52753.
7229
7230 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
7231
7232         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
7233         Fix #52451.
7234
7235 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7236
7237         * appdomain.c:
7238         * assembly.c: escape the uri before passing it to g_filename_from_uri.
7239         Fixes bug #52630.
7240
7241 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
7242
7243         * reflection.c: Add support for more than one unmanaged resource.
7244
7245         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
7246         in field->def_value, as done in all other cases.
7247
7248         * reflection.c (mono_reflection_get_custom_attrs): Add support for
7249         TypeBuilders.
7250
7251         * reflection.c (mono_reflection_create_runtime_class): Remove 
7252         errorneous assignment to klass->element_class, since it is already
7253         done in mono_reflection_setup_internal_class.
7254
7255 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7256
7257         * gc.c: added missing LeaveCriticalSection.
7258         * icall.c: indented a couple of lines.
7259         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
7260         if we call EndInvoke inside a callback. Fixes bug #52601.
7261
7262 2004-01-07  Martin Baulig  <martin@ximian.com>
7263
7264         * mono-debug-debugger.h
7265         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
7266
7267 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
7268
7269         * appdomain.c: Use messages in NotImplementedException.
7270
7271         * exception.c (mono_get_exception_not_implemented): Now this takes
7272         a message argument.
7273
7274         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
7275         exception instead of g_asserting an aborting when something is not
7276         implemented.
7277
7278         Add some inline docs.
7279
7280 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
7281
7282         * reflection.h: Update after changes to object layout.
7283
7284         * reflection.c: Implement saving of unmanaged aka win32 resources.
7285
7286         * appdomain.c: Bump version number.
7287
7288         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
7289         Handle missing domains gracefully.
7290
7291 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
7292
7293         * file-io.c : On Windows, there are much more invalid_path_chars.
7294
7295 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
7296
7297         * class.h, object.c: prepare for GetType () speedup.
7298
7299 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
7300
7301         * profiler.c: workaround for --profile null reference exception on
7302           cygwin. Patch by Patrik Torstensson.
7303
7304 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
7305
7306         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
7307         make work for unaligned access.
7308
7309 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
7310
7311         * class.c: small cleanup (class->fields [i] -> field).
7312         * image.c: check address of metadata is valid.
7313
7314 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
7315
7316         * assembly.h assembly.c (mono_assembly_loaded): New public function to
7317         search the list of loaded assemblies.
7318
7319         * reflection.c (mono_reflection_type_from_name): Use 
7320         mono_assembly_loaded instead of mono_image_loaded.
7321
7322         * reflection.c: Fix warnings.
7323
7324 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
7325
7326         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
7327         is dynamic. This is needed since an assembly can contain both dynamic and
7328         non-dynamic images.
7329
7330         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
7331         assembly->dynamic.
7332
7333         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
7334
7335         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
7336         to store modules loaded using AddModule.
7337
7338         * reflection.c (mono_image_fill_file_table): Generalize this so it works
7339         on Modules.
7340
7341         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
7342
7343         * reflection.c (mono_image_fill_export_table_from_module): New function to
7344         fill out the EXPORTEDTYPES table from a module.
7345
7346         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
7347         into a separate function. Also handle loaded non-dynamic modules.
7348
7349         * reflection.c (mono_image_basic_init): Fix memory allocation.
7350
7351         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7352
7353         * assembly.c (mono_assembly_load_references): Make this public.
7354
7355 2003-12-19  Martin Baulig  <martin@ximian.com>
7356
7357         * class.c (mono_class_initialize_generic): Made this static, take
7358         a `MonoGenericInst *' instead of a `MonoClass *'.
7359         (mono_class_from_generic): Call mono_class_initialize_generic()
7360         unless we're already initialized or being called from
7361         do_mono_metadata_parse_generic_inst().
7362
7363         * class.h (MonoGenericInst): Added `initialized' and
7364         `init_pending' flags.
7365
7366         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
7367         `mono_class_init (gklass)' or mono_class_initialize_generic()
7368         here; set `generic_inst->init_pending' while parsing the
7369         `type_argv'.
7370
7371 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
7372
7373         * locales.c: include string.h for memxxx prototypes
7374
7375 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
7376
7377         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
7378         constructor when accessing literal fields.
7379
7380 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
7381
7382         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7383
7384         * reflection.c (assembly_add_resource_manifest): New function to fill
7385         the MANIFESTRESOURCE table.
7386
7387         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
7388
7389         * reflection.h: Update to changes in class layout.
7390
7391         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
7392         Reenable call to mono_runtime_is_shutting_down ().
7393
7394         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
7395         determine if the runtime is shutting down.
7396
7397 2003-12-16  Jackson Harper <jackson@ximian.com>
7398
7399         * icall.c: comment out call to mono_runtime_is_shutting_down to
7400         fix build.
7401         
7402 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
7403
7404         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
7405         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
7406
7407 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
7408
7409         * reflection.c: move definition of swap_with_size
7410         to before its first call
7411
7412 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
7413
7414         * appdomain.c (mono_runtime_is_shutting_down): New public function.
7415
7416         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
7417         icall.
7418
7419         * object.c: Fix warnings.
7420
7421         * icall.c (ves_icall_Type_Get...): Only consider inherited static
7422         members if FlattenHierarchy is set.
7423
7424         * reflection.c (mono_image_add_decl_security): New function to emit
7425         declarative security.
7426
7427         * reflection.h reflection.c: Add support for declarative security.
7428
7429         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7430         
7431 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
7432
7433         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7434         
7435         * appdomain.c verify.c: Moved corlib version checking into its own
7436         function in appdomain.c since it needs to create vtables etc.
7437
7438 2003-12-13  Patrik Torstensson <p@rxc.se>
7439
7440         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
7441         instead of unwrapped server.
7442
7443 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
7444
7445         * verify.c (check_corlib): Fix field index.
7446
7447 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
7448
7449         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
7450         GetGacPath icall.
7451
7452 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
7453
7454         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
7455         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
7456         cope with sizeof(size_t) != sizeof(guint32).
7457
7458 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7459
7460         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
7461         in case of failure.
7462
7463 2003-12-10  Mark Crichton <crichton@gimp.org>
7464
7465         * icall.c: removed the GetNonZeroBytes.  We now handle this case
7466         in managed code.
7467
7468         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
7469
7470 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
7471
7472         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
7473         marked as deleted.
7474
7475 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
7476
7477         * verify.c (check_corlib): Handle the case when the version field is 
7478         initialized by a static constructor.
7479
7480 2003-12-08  Patrik Torstensson  <p@rxc.se>
7481
7482     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
7483
7484 2003-12-08  Martin Baulig  <martin@ximian.com>
7485
7486         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
7487         a MonoReflectionGenericParameter, also take the parameter index
7488         and name as arguments.
7489         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
7490         (ves_icall_MonoGenericParam_initialize): New interncall.
7491         (ves_icall_Type_make_byref_type): New interncall.
7492
7493         * reflection.h (MonoReflectionGenericParam): Derive from
7494         MonoReflectionType, not just from MonoObject.  Added `refobj' and
7495         `index' fields.
7496
7497         * reflection.c (mono_reflection_define_generic_parameter): Create
7498         and return a new MonoReflectionGenericParam; don't initialize the
7499         constraints here.
7500         (mono_reflection_initialize_generic_parameter): New public method;
7501         initializes the constraints and creates the `param->pklass'.
7502
7503 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
7504
7505         * reflection.h reflection.c: Use the new fields 'num_types', 
7506         'num_fields' and 'num_methods' to track the number of types etc.
7507
7508         * verify.c (check_corlib): Check corlib version number.
7509
7510 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
7511
7512         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
7513         function works on all methods.
7514
7515 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
7516
7517         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
7518         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
7519         the custom_type_info flag of the transparent proxy.
7520         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
7521         objects that supports IRemotingTypeInfo.
7522         * object.h: Added custom_type_info field in transparent proxy.
7523
7524 2003-12-06  Martin Baulig  <martin@ximian.com>
7525
7526         * class.c (mono_class_create_from_generic): Removed.
7527         (mono_class_from_generic): Check `ginst->klass' before doing
7528         anything else.  This is important to fully support "recursive"
7529         generic types.
7530
7531         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
7532         empty `generic_inst->klass' before doing anything else.
7533
7534 2003-12-06  Dick Porter  <dick@ximian.com>
7535
7536         * verify.c: 
7537         * object.h:
7538         * icall.c:
7539         * locales.c: Use C structs to access class fields.  Don't do a
7540         conversion between MonoString and UChar because both are
7541         platform-endian UTF-16.  Compare now takes startindex and count
7542         parameters.  Add a char overload for IndexOf.  Speed up the
7543         invariant string IndexOf.
7544
7545 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
7546
7547         * Makefile.am (monosn_LDADD): Fix parallel build.
7548
7549 2003-12-04  Martin Baulig  <martin@ximian.com>
7550
7551         * icall.c
7552         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7553         (ves_icall_Type_make_array_type): New interncall.       
7554
7555 2003-12-04  Martin Baulig  <martin@ximian.com>
7556
7557         * locales.c: also change it in the !HAVE_ICU case.
7558
7559 2003-12-04  Dick Porter  <dick@ximian.com>
7560
7561         * icall.c:
7562         * locales.c: construct_compareinfo is now in CompareInfo, not
7563         CultureInfo.
7564
7565 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
7566
7567         * image.c (mono_image_load_file_for_image): Cache loaded images in the
7568         image->files array.
7569
7570         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
7571         table as well.
7572
7573         * assembly.c (mono_assembly_load_references): Only load references
7574         once.
7575
7576         * class.c (mono_class_from_name): Avoid linear search of the 
7577         EXPORTEDTYPE table.
7578
7579         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
7580
7581 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
7582
7583         * image.h (MonoImage): Add 'field_cache' field.
7584
7585         * loader.c (mono_field_from_token): Cache field lookups.
7586         
7587         * reflection.c (mono_module_get_object): Fix name property.
7588
7589         * icall.c (ves_icall_get_enum_info): Update after changes to 
7590         mono_metadata_get_constant_index ().
7591
7592         * icall.c: Get rid of get_type_info icall, use a separate icall for
7593         each type property to avoid needless memory allocations. Fixes #51514.
7594
7595         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
7596         to avoid needless binary searches.
7597
7598         * class.c (class_compute_field_layout): Move the initialization of
7599         field->def_value to mono_class_vtable ().
7600
7601         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
7602         non-corlib types.
7603
7604         * object.c (mono_object_allocate): Make it inline.
7605
7606         * object.c (mono_object_allocate_spec): Make it inline.
7607         
7608 2003-12-02  Dick Porter  <dick@ximian.com>
7609
7610         * locales.c (create_NumberFormat): NumberFormatInfo construction.
7611         Patch by Mohammad DAMT (mdamt@cdl2000.com).
7612
7613 2003-12-01  Dick Porter  <dick@ximian.com>
7614
7615         * threads.c: Fix signature and call in CreateMutex and
7616         CreateEvent.
7617
7618 2003-12-01  Dick Porter  <dick@ximian.com>
7619
7620         * icall.c: 
7621         * locales.c: Implement string compares and searching
7622
7623         * object.h: Add extra Thread field
7624
7625 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
7626
7627         * reflection.c (fixup_method): Add support for MonoCMethod.
7628
7629 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
7630
7631         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
7632
7633         * reflection.c (assembly_name_to_aname): Allow extra characters in
7634         assembly names. Fixes #51468.
7635
7636 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
7637
7638         * exception.c (mono_exception_from_name_domain): New helper function.
7639
7640         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
7641         exception object in the correct domain.
7642
7643         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
7644         formatting + make a copy a the input data.
7645
7646         * loader.c (mono_get_method_from_token): Methods which contain
7647         native code do not have entries in the ImplMap.
7648
7649         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
7650         Thanks to Gonzalo for spotting this.
7651         
7652         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
7653         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
7654
7655         * assembly.h (mono_assembly_load_from): Split the second part of 
7656         assembly loading into a new public function.
7657
7658         * exception.h (mono_get_exception_bad_image_format): New function.
7659
7660 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
7661
7662         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7663         Enumerate all modules inside a dynamic assembly. Fixes #51293.
7664         
7665         * icall.c: Add new icall for creating dynamic methods.
7666
7667         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
7668
7669         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
7670
7671         * reflection.c (mono_reflection_create_dynamic_method): New icall to
7672         create a dynamic method.
7673
7674         * reflection.c (resolve_object): New helper function.
7675
7676         * reflection.c: Generalize ReflectionMethodBuilder and the functions
7677         which manipulate it so they can also work on dynamic methods.
7678
7679         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
7680         creating the MonoReflectionMethodAux structure if it is not needed.
7681         
7682         * reflection.h verify.c: Update after changes to object layout.
7683
7684         * reflection.c (method_builder_encode_signature): Fix compilation on
7685         gcc 2.95.x.
7686
7687 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
7688
7689         * appdomain.h: Added support for context static fields. Added static_data
7690           field to MonoAppContext and renamed thread_static_fields to a more
7691           generic special_static_fields in MonoAppDomain, since it can now contain
7692           context static fields.
7693         * domain.c: Updated hashtable name.
7694         * object.c: Replaced field_is_thread_static() for a more generic
7695           field_is_special_static() which also checks for context static attribute.
7696           In mono_class_vtable(), added support for static context fields.
7697         * threads.c: Changed methods that manage thread static fields to more
7698           generic methods so they can be reused both for thread and context static
7699           data.
7700         * threads.h: Declared some new methods.
7701
7702 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
7703
7704         * reflection.h: Update after changes to the managed types.
7705
7706         * reflection.c (encode_custom_modifiers): New helper function.
7707
7708         * reflection.c (method_encode_signature): Emit custom modifiers.
7709
7710         * reflection.c (field_encode_signature): Emit custom modifiers.
7711
7712 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
7713
7714         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
7715
7716         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
7717         implementation.
7718
7719         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
7720         icall.
7721
7722         * object.c (mono_field_get_value_object): New function.
7723
7724         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
7725         specific.
7726
7727 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
7728
7729         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
7730         return a preallocated out-of-memory exception instance.
7731
7732         * object.c (out_of_memory): Use the new function.
7733
7734         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
7735         flag is before the custom modifiers. Fixes #49802.
7736
7737 2003-11-16  Martin Baulig  <martin@ximian.com>
7738
7739         * class.c (mono_class_is_open_constructed_type): Implemented the
7740         MONO_TYPE_GENERICINST case.
7741
7742 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
7743
7744         * assembly.c (mono_assembly_fill_assembly_name): New function to
7745         fill out the MonoAssemblyName structure.
7746         (mono_assembly_open): Use the new function.
7747
7748         * icall.c (fill_reflection_assembly_name): New helper function.
7749
7750         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
7751         new function.
7752
7753         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
7754
7755 2003-11-15  Martin Baulig  <martin@ximian.com>
7756
7757         * class.c (mono_class_is_open_constructed_type): New public
7758         function; checks whether a type is an open constructed type,
7759         ie. whether it still contains type parameters.
7760         (mono_class_inflate_generic_type): If we're a type parameter and
7761         the inflated type is also a MONO_TYPE_(M)VAR, return the original
7762         type.
7763
7764         * class.h (MonoGenericInst): Added `guint32 is_open'.
7765
7766         * loader.c (method_from_methodspec): Check whether we're an open
7767         or closed constructed type and set `ginst->is_open'.
7768
7769         * reflection.c (mono_reflection_bind_generic_parameters): Check
7770         whether we're an open or closed constructed type and set
7771         `ginst->is_open'.
7772         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
7773         from open constructed types.
7774
7775 2003-11-15  Martin Baulig  <martin@ximian.com>
7776
7777         * reflection.c (mono_reflection_bind_generic_parameters): If we're
7778         a generic instance (instead of a generic type declaration) with
7779         unbound generic parameters, bind them to our actual types.
7780
7781 2003-11-14  Martin Baulig  <martin@ximian.com>
7782
7783         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
7784
7785         * reflection.c (mono_reflection_bind_generic_parameters): If we're
7786         an interface type, populate `res->interfaces' with instantiated
7787         versions of all the interfaces we inherit.
7788
7789 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
7790
7791         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
7792         when MONO_PATH is set but doesn't contain the install dir.
7793
7794 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7795
7796         * icall.c:
7797         (ves_icall_Type_GetInterfaces): don't return an interface twice when
7798         it's also implemented in base classes. Fixes bug #50927.
7799
7800 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
7801
7802         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
7803         if this method is called from a finalizer. Fixes #50913.
7804
7805 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
7806
7807         * threads.c: Implement VolatileRead/VolatileWrite
7808
7809         * icall.c: Add new icalls for VolatileRead/VolatileWrite
7810
7811 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7812
7813         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
7814         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
7815         2.95.3.
7816
7817         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
7818         from Peter Ross (pro@missioncriticalit.com).
7819         
7820 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
7821
7822         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
7823
7824 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7825
7826         * assembly.c (mono_assembly_load_references): Disable check because it
7827         triggers on older corlibs which lots of people have.
7828
7829 2003-11-12  Jackson Harper  <jackson@ximian.com>
7830
7831         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
7832         load corlib.dll if mscorlib.dll is not found.
7833         * assembly.h: Remove corlib name define.
7834         * class.c:
7835         * domain.c:
7836         * image.c: Change corlib name to mscorlib.
7837         
7838 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7839
7840         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
7841
7842 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
7843
7844         * appdomain.h: Added loader_optimization here to sync with the C#
7845         code, and add disallow_binding_redirects field.
7846
7847 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
7848
7849         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
7850
7851         * reflection.c (mono_image_build_metadata): Fix crash on modules
7852         with no types.
7853
7854         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
7855
7856         * icall.c (ves_icall_get_method_info): Return callingConvention as
7857         well.
7858
7859         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
7860         namespaces from the EXPORTEDTYPE table as well.
7861
7862         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
7863         from all modules inside the assembly.
7864         
7865 2003-11-11  Martin Baulig  <martin@ximian.com>
7866
7867         * reflection.c (mono_reflection_bind_generic_parameters): Make
7868         this work for interfaces.
7869
7870 2003-11-11  Martin Baulig  <martin@ximian.com>
7871
7872         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
7873
7874 2003-11-11  Martin Baulig  <martin@ximian.com>
7875
7876         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
7877         "MonoInflatedMethod" and "MonoInflatedCtor".
7878
7879 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
7880
7881         * reflection.c (resolution_scope_from_image): Use the assembly table
7882         from the manifest module, since other modules don't have it.
7883
7884         * debug-helpers.c (mono_type_full_name): New helper function.
7885
7886         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
7887
7888         * image.c (mono_image_load_file_for_image): New public function which
7889         is a replacement for the load_file_for_image in class.c.
7890
7891         * assembly.c (mono_assembly_load_module): A wrapper for the function
7892         above which does assembly association and reference loading too.
7893
7894         * class.c (mono_class_from_name): Call mono_assembly_load_module.
7895
7896 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7897
7898         * appdomain.c: not all of the attributes for the full assembly name
7899         are required and the order doesn't matter. Fixes bug #50787.
7900
7901 2003-11-10  Dick Porter  <dick@ximian.com>
7902
7903         * locales.c: Use platform-endian UTF16
7904
7905 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
7906
7907         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
7908         
7909 2003-11-10  Martin Baulig  <martin@ximian.com>
7910
7911         * metadata.c
7912         (mono_metadata_load_generic_params): Make this actually work.
7913
7914         * reflection.c (mono_reflection_bind_generic_parameters): If our
7915         parent is a generic instance, pass all the `types' to it, no
7916         matter whether it has the same number of type parameters or not.
7917
7918 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
7919
7920         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
7921
7922         * assembly.c (mono_assembly_load_references): Move the image<->assembly
7923         assignment code to this function so it gets called recursively for all
7924         modules.
7925
7926         * image.c (load_modules): Remove the assembly assignment since it is
7927         now done by mono_assembly_load_references.
7928         
7929         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7930         Add 'module' argument.
7931         (mono_module_get_types): New helper function.
7932         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
7933
7934 2003-11-08  Martin Baulig  <martin@ximian.com>
7935
7936         * class.c (mono_class_inflate_generic_method): Interface method
7937         don't have a header.
7938
7939         * reflection.c (mono_image_get_methodspec_token): Take an
7940         additional `MonoGenericInst *' argument instead of reading it from
7941         the header; this is necessary to support interfaces.
7942         (mono_image_create_token): Pass the `MonoGenericInst *' from the
7943         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
7944         (inflated_method_get_object): Take an additional `MonoGenericInst *'
7945         argument.
7946
7947         * reflection.h (MonoReflectionInflatedMethod): Added
7948         `MonoGenericInst *ginst'.
7949
7950 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
7951
7952         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
7953
7954 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
7955
7956         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
7957
7958 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
7959
7960         * reflection.c 
7961         (reflection_methodbuilder_from_method_builder):
7962         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
7963         initialize a ReflectionMethodBuilder structure.
7964         (mono_image_get_methodbuilder_token):
7965         (mono_image_get_ctorbuilder_token): New functions to emit memberref
7966         tokens which point to types in another module inside the same assembly.
7967
7968         * reflection.c: Use the new helper functions.
7969         
7970         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
7971
7972         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
7973         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
7974
7975         * reflection.c (resolution_scope_from_image): Emit a moduleref if
7976         neccesary.
7977
7978         * reflection.c (mono_image_build_metadata): Emit metadata only for the
7979         current module. Emit the manifest only for the main module.
7980
7981         * reflection.c (mono_image_create_token): Add assertion when a 
7982         memberref needs to be created.
7983
7984         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
7985
7986         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
7987         larger buffer for the custom attribute blob. Fixes #50637.
7988         
7989 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7990
7991         * threadpool.c: notify listener on async processing handles after
7992         invoking the async callback. Thanks to Zoltan.
7993
7994 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
7995
7996         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
7997         avoid code duplication.
7998
7999         * reflection.h (MonoDynamicImage): New type which is currently unused,
8000         but will be used through the ref.emit code in place of 
8001         MonoDynamicAssembly.
8002
8003         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8004         object layout.
8005
8006         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
8007         a MonoDynamicImage instead of just a MonoImage.
8008         
8009         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
8010         icalls to ModuleBuilder but keep their semantics, so they will work
8011         with moduleb->assemblyb. This will change later.
8012         
8013 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8014
8015         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8016         object layout.
8017
8018         * reflection.c (mono_image_build_metadata): Avoid creation of a default
8019         main module, since it is now done by the managed code.
8020
8021 2003-11-03  Martin Baulig  <martin@ximian.com>
8022
8023         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
8024         `ginst->klass' here.
8025         (method_encode_methodspec): Don't use the `ginst->generic_method's
8026         klass if it's a generic instance, use `ginst->klass' in this case.
8027
8028 2003-11-03  Martin Baulig  <martin@ximian.com>
8029
8030         * reflection.c (mono_image_get_generic_method_param_info):
8031         Removed, use mono_image_get_generic_param_info() instead.
8032         (mono_image_get_type_info): Write the GenericParam table before
8033         the Method table.  This is neccessary because in the GenericParam
8034         table, type parameters of the class (ie. '!0' etc.) must come
8035         before the ones from its generic methods (ie. '!!0' etc).
8036
8037 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8038
8039         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
8040
8041 2003-11-02  Martin Baulig  <martin@ximian.com>
8042
8043         * reflection.c (create_generic_typespec): Take a
8044         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
8045         the generic parameters from it.
8046
8047 2003-11-02  Martin Baulig  <martin@ximian.com>
8048
8049         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
8050         instead of a `MonoClassField *' since we just need the type.
8051         (create_generic_typespec): New static function.  Creates a
8052         TypeSpec token for a generic type declaration.
8053         (mono_image_get_generic_field_token): New static function.
8054         (mono_image_create_token): If we're a FieldBuilder in a generic
8055         type declaration, call mono_image_get_generic_field_token() to get
8056         the token.
8057
8058 2003-11-02  Martin Baulig  <martin@ximian.com>
8059
8060         * reflection.h
8061         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
8062         `MonoReflectionGenericInst *declaring_type' and
8063         `MonoReflectionGenericInst *reflected_type' fields.
8064
8065         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
8066         `MonoReflectionGenericInst *declaring_type' and a
8067         `MonoReflectionGenericInst *reflected_type' argument instead of a
8068         single `MonoReflectionGenericInst *type' one.  Set
8069         `res->declaring_type' and `res->reflected_type' from them.
8070         (mono_reflection_inflate_field): Likewise.      
8071
8072 2003-11-02  Martin Baulig  <martin@ximian.com>
8073
8074         * class.c (mono_class_setup_vtable): Don't store generic methods
8075         in the vtable.  
8076
8077 2003-11-02  Martin Baulig  <martin@ximian.com>
8078
8079         * reflection.h (MonoReflectionGenericInst): Added
8080         `MonoReflectionType *declaring_type'.
8081
8082         * reflection.c (mono_reflection_bind_generic_parameters): Use
8083         `if (tb->parent)' instead of `klass->parent'.
8084
8085 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
8086
8087         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
8088         with an empty ASSEMBLY table.
8089
8090         * reflection.c (mono_image_build_metadata): Avoid using the same loop
8091         variable in the inner and outer loops.
8092
8093 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
8094
8095         * metadata.h (mono_metadata_make_token): Put parentheses around macro
8096         argument.
8097
8098         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
8099         
8100         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
8101         icalls. Instead, do everything in managed code. This is needed since
8102         it is hard to restore the original domain etc. in unmanaged code in the
8103         presence of undeniable exceptions.
8104
8105         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
8106         New icalls to push and pop appdomain refs.
8107
8108 2003-10-31  Martin Baulig  <martin@ximian.com>
8109
8110         * class.c (inflate_generic_type): Renamed to
8111         mono_class_inflate_generic_type() and made it public.
8112
8113         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
8114         New interncall.
8115
8116         * loader.c (mono_field_from_memberref): Also set the retklass for
8117         typespecs.
8118
8119         * fielder.c (mono_image_get_inflated_field_token): New static
8120         method; creates a metadata token for an inflated field.
8121         (mono_image_create_token, fixup_method): Added support for
8122         "MonoInflatedField".
8123         (fieldbuilder_to_mono_class_field): New static function.
8124         (mono_reflection_inflate_field): New public function.
8125
8126         * reflection.h
8127         (MonoReflectionGenericInst): Added `MonoArray *fields'.
8128         (MonoReflectionInflatedField): New typedef.     
8129
8130 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
8131
8132         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
8133         for Solaris and other platforms without s6_addr16
8134
8135 2003-10-30  Martin Baulig  <martin@ximian.com>
8136
8137         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
8138         argument instead of two.
8139         (mono_class_inflate_generic_signature): Likewise.
8140         (inflate_generic_header): Likewise.
8141         (mono_class_inflate_generic_method): Likewise.  In addition, if
8142         `ginst->klass' is set, it becomes the new `method->klass'.
8143
8144         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
8145         field.
8146
8147         * reflection.c (encode_generic_method_sig): Write a 0xa as the
8148         first byte. [FIXME]
8149         (method_encode_methodspec): If we have generic parameters, create
8150         a MethodSpec instead of a MethodRef.
8151         (fixup_method): Added support for "MonoInflatedMethod" and
8152         "MonoInflatedCtor".
8153         (mono_image_create_token): Added support for "MonoInflatedMethod"
8154         and "MonoInflatedCtor".
8155         (inflated_method_get_object): New static function; returns a
8156         managed "System.Reflection.MonoInflatedMethod" object.
8157         (mono_reflection_bind_generic_method_parameters): Return a
8158         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
8159         (mono_reflection_inflate_method_or_ctor): Likewise.
8160         (mono_image_get_generic_method_param_info): Initialize unused
8161         fields to zero.
8162         (mono_image_get_generic_param_info): Likewise.
8163
8164         * reflection.h (MonoReflectionInflatedMethod): New public
8165         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
8166         "S.R.MonoInflatedCtor" classes.
8167
8168         * loader.c (method_from_memberref): If we're a TypeSpec and it
8169         resolves to a generic instance, inflate the method.
8170
8171 2003-10-28  Dick Porter  <dick@ximian.com>
8172
8173         * object.c (mono_runtime_run_main): Convert command-line arguments
8174         into utf8, falling back to the user's locale encoding to do so.
8175
8176 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
8177
8178         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
8179         at this time.
8180
8181         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
8182
8183         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
8184         up icalls at method definition time. Partially fixes #33569.
8185
8186 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
8187
8188         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
8189         marshalling of arrays. Fixes #50116.
8190
8191         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
8192
8193         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
8194         points to a vtable in the dying appdomain.
8195
8196         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
8197         listeners into unmanaged code inside the lock.
8198
8199         * object.c (mono_class_vtable): Turn off typed allocation in non-root
8200         domains and add some comments.
8201
8202 2003-10-25  Martin Baulig  <martin@ximian.com>
8203
8204         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
8205
8206         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
8207
8208         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
8209         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
8210         currently parsing.  Create the generic class and store it in
8211         `generic_inst->klass' before parsing the type arguments.  This is
8212         required to support "recursive" definitions; see mcs/tests/gen-23.cs
8213         for an example.
8214         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
8215         to support recursive typespec entries.
8216
8217         * class.c (mono_class_setup_parent): If our parent is a generic
8218         instance, we may get called before it has its name set.
8219         (mono_class_from_generic): Splitted into
8220         mono_class_create_from_generic() and mono_class_initialize_generic().
8221
8222 2003-10-25  Martin Baulig  <martin@ximian.com>
8223
8224         * icall.c (ves_icall_Type_BindGenericParameters): Return a
8225         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
8226         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
8227         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
8228
8229         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
8230         (create_typespec): Likewise.
8231         (mono_reflection_bind_generic_parameters): Return a
8232         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
8233         (mono_reflection_inflate_method_or_ctor): New public function.
8234
8235         * reflection.h (MonoReflectionGenericInst): New typedef.        
8236
8237 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
8238
8239         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
8240         inside the domain lock. Fixes #49993.
8241         
8242         * object.c (mono_class_vtable): When typed allocation is used, 
8243         allocate vtables in the GC heap instead of in the mempool, since the
8244         vtables contain GC descriptors which are used by the collector even
8245         after the domain owning the mempool is unloaded.
8246
8247         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
8248
8249         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
8250         reflect what it does. Also invalidate mempools instead of freeing
8251         them if a define is set.
8252
8253         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
8254         of the appdomain.
8255         
8256         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
8257         hold the finalizable objects in this domain.
8258
8259         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
8260         appdomain.
8261
8262         * appdomain.c (mono_domain_set): New function to set the current
8263         appdomain, but only if it is not being unloaded.
8264
8265         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
8266         appdomain which is being unloaded.
8267         
8268         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
8269         unloading of the root appdomain.
8270
8271         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
8272         icall to execute a method in another appdomain. Intended as a 
8273         replacement for InternalSetDomain, which can confuse the code 
8274         generation in the JIT.
8275
8276         * appdomain.c (mono_domain_is_unloading): New function to determine
8277         whenever an appdomain is unloading.
8278
8279         * appdomain.c (mono_domain_unload): New function to correctly unload
8280         an appdomain.
8281
8282         * assembly.c (mono_assembly_load_references): Check that an assembly
8283         does not references itself.
8284
8285         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
8286         domain manually, it asks the finalizer thread to do it, then waits for
8287         the result. Also added a timeout.
8288
8289         * icall.c: Register the new icalls.
8290
8291         * threads.h threads.c: Export the mono_gc_stop_world and 
8292         mono_gc_start_world functions.
8293         
8294         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
8295         function to fill out the mempool with 0x2a.
8296
8297 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
8298
8299         * reflection.h (MonoReflectionMethodAux): New structure to store
8300         information which is rarely used, thus is not in the MonoMethod
8301         structure.
8302
8303         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
8304         store the aux info.
8305
8306         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
8307         and marshalling info into the aux structure.
8308
8309         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
8310         from the aux structure.
8311
8312         * loader.c (mono_method_get_param_names): Retrieve the param names from
8313         the aux structure.
8314         
8315 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
8316
8317         * exception.h exception.c: Add AppDomainUnloadedException && fix 
8318         warning.
8319
8320 2003-10-21  Dick Porter  <dick@ximian.com>
8321
8322         * socket-io.c
8323         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
8324         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
8325
8326 2003-10-21  Martin Baulig  <martin@ximian.com>
8327
8328         * reflection.c (mono_reflection_bind_generic_parameters):
8329         `klass->parent' is NULL for interfaces.
8330
8331 2003-10-21  Martin Baulig  <martin@ximian.com>
8332
8333         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8334
8335 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
8336
8337         * exception.c (mono_exception_from_name_msg): New helper function for
8338         creating exceptions and initializing their message field.
8339
8340         * exception.c: Simplify functions using the new helper.
8341
8342         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
8343         New function.
8344
8345         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
8346         mono_raise_exception, since otherwise gcc doesn't generate the function
8347         epilog for raise_exception, confusing the stack unwinding in the JIT.
8348         Fixes #45043.
8349
8350         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
8351         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
8352         Fixes #49499.
8353
8354 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8355
8356         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
8357         utf8.
8358
8359 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
8360
8361         * icall.c: Removed GetUninitializedObject method because
8362           AllocateUninitializedClassInstance does the same.
8363
8364 2003-10-18  Martin Baulig  <martin@ximian.com>
8365
8366         * class.c (inflate_generic_signature): Renamed to
8367         mono_class_inflate_generic_signature() and made it public.
8368         (my_mono_class_from_generic_parameter): New static function; if we
8369         don't already have the generic parameter's MonoClass, create a
8370         very simple one which is just used internally in the runtime and
8371         not passed back to managed code.
8372
8373         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
8374
8375         * metadata.h (MonoMethodSignature): Moved the
8376         `MonoGenericParam *gen_params' to the MonoMethodHeader.
8377         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
8378
8379         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
8380         ves_icall_MonoMethod_GetGenericArguments(); this is now an
8381         interncall on the MonoMethod class, not on MethodInfo.
8382         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
8383         calling mono_reflection_bind_generic_method_parameters() directly.
8384
8385         * loader.c (mono_method_get_signature): If this is a MethodSpec;
8386         return the already computed `method->signature'.
8387         (method_from_methodspec): New static function to load a method
8388         from a MethodSpec entry.
8389         (mono_get_method_from_token): Call the new method_from_methodspec()
8390         for MethodSpec tokens.  
8391         (mono_get_method_from_token): If we're a generic method, load the
8392         type parameters.
8393
8394         * reflection.c (mono_image_get_memberref_token): Allow
8395         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
8396         table.
8397         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
8398         (mono_image_create_token): First check whether it's a generic
8399         method (so we'd need to create a MethodSpec), then do the other
8400         two alternatives.
8401         (mono_reflection_bind_generic_method_parameters): Return a
8402         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
8403         called directly from the interncall.
8404
8405 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
8406
8407         * reflection.c (load_public_key): Move loading of the public key
8408         into managed code.
8409
8410         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
8411
8412         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
8413         fields.
8414
8415         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
8416         culture, hash_alg and public_key. Fixes #49555.
8417
8418 2003-10-17  Martin Baulig  <martin@ximian.com>
8419
8420         * class.h (MonoGenericInst): Moved this declaration here and added
8421         `MonoMethod *generic_method'.
8422
8423         * icall.c
8424         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
8425         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
8426
8427         * metadata.c (mono_metadata_type_equal): Two types of
8428         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
8429         index; ie. don't compare the address of the `MonoGenericParam'
8430         structure.
8431         (mono_metadata_load_generic_params): Removed the `MonoMethod
8432         *method' argument.
8433
8434         * metadata.h (MonoGenericInst): Moved declaration to class.h.
8435         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
8436
8437         * reflection.c (method_encode_signature): Encode the number of
8438         generic parameters.
8439         (encode_generic_method_sig): New static function.
8440         (method_encode_methodspec): New static function; creates an entry
8441         in the MethodSpec table for a generic method.
8442         (mono_image_get_methodspec_token): New static function.
8443         (mono_image_create_token): Call mono_image_get_methodspec_token()
8444         for generic methods.
8445         (mono_reflection_bind_generic_method_parameters): New public
8446         function.  Instantiates a generic method.
8447
8448 2003-10-16  Martin Baulig  <martin@ximian.com>
8449
8450         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
8451         *gen_params' here from MonoMethodHeader.
8452
8453         * metadata.c (mono_metadata_parse_method_signature): If we have
8454         generic parameters, initialize `method->gen_params' and then set
8455         the correct `type->data.generic_param' in all the parameters.
8456
8457 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
8458
8459         * threads.c (mono_threads_get_default_stacksize): New function to 
8460         return the default stacksize.
8461
8462         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
8463         termination of the finalizer thread, since the previous method had
8464         race conditions. Fixes #49628.
8465
8466         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
8467         as for the other managed threads.
8468
8469 2003-10-16  Martin Baulig  <martin@ximian.com>
8470
8471         * class.c (inflate_generic_signature): Copy `generic_param_count'
8472         and `gen_params'.
8473
8474         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
8475         New interncall.
8476
8477         * metadata.c (mono_metadata_parse_method_signature): Actually set
8478         the `method->generic_param_count' here.
8479         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
8480
8481 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
8482
8483         * object.h: Add a new field to TypedRef to simplify the implementation
8484         of the REFANY opcodes in the JIT.
8485
8486         * icall.c: Make use of the new field.
8487
8488         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
8489         dynamically.
8490
8491 2003-10-15  Martin Baulig  <martin@ximian.com>
8492
8493         * class.c (mono_class_from_gen_param): Renamed to
8494         mono_class_from_generic_parameter() and moved most of the
8495         functionality from mono_reflection_define_generic_parameter()
8496         here; ie. we create a "real" class here.
8497         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
8498         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
8499         previously been called.
8500
8501         * class.h (MonoGenericParam): Moved the declaration of this struct
8502         here from metadata.h and added `MonoMethod *method'.
8503
8504         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
8505         interncall.
8506
8507         * loader.c (mono_get_method_from_token): If we have any generic
8508         parameters, call mono_metadata_load_generic_params() to read them
8509         from the MONO_TABLE_GENERICPAR.
8510
8511         * metadata.c (mono_metadata_load_generic_params): Added
8512         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
8513
8514         * metadata.h (MonoMethodSignature): Replaced
8515         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
8516         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
8517
8518         * reflection.c (mono_reflection_define_generic_parameter): Moved
8519         most of the functionality into the new
8520         mono_class_from_generic_parameter(); set the `method' field if
8521         we're a method parameter.       
8522
8523 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
8524
8525         * marshal.c (emit_struct_conv): if native size is 0
8526         emit no code.
8527
8528 2003-10-14  Martin Baulig  <martin@ximian.com>
8529
8530         * icall.c: The generics API has changed in the spec since it was
8531         added to System.Type; these modifications make it match the spec
8532         again.
8533         (ves_icall_Type_GetGenericParameters): Renamed to
8534         `ves_icall_Type_GetGenericArguments'.
8535         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
8536         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
8537         `ves_icall_MonoType_get_HasGenericArguments'.
8538         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
8539         `ves_icall_MonoType_get_IsGenericParameter'.
8540         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
8541         this is no interncall anymore.
8542         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
8543         `ves_icall_TypeBuilder_get_IsGenericParameter'.
8544
8545 2003-10-14  Martin Baulig  <martin@ximian.com>
8546
8547         * reflection.c (mono_reflection_bind_generic_parameters): Also
8548         inflate generic methods if we're reading the class from IL.
8549
8550 2003-10-13  Martin Baulig  <martin@ximian.com>
8551
8552         * reflection.c (mono_reflection_define_generic_parameter): This
8553         method isn't called directly from the icall anymore; take a
8554         `MonoReflectionAssemblyBuilder *' so we can use this for type and
8555         method generic parameters.
8556         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
8557         (method_builder_encode_signature): Encode generic parameters.
8558         (mono_image_get_method_info): Write generic params to the
8559         MONO_TABLE_GENERICPARAM table.
8560
8561         * reflection.h (MonoReflectionMethodBuilder): Added
8562         `MonoArray *generic_params'.
8563
8564         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
8565
8566         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
8567         wrapper for mono_reflection_define_generic_parameter().
8568         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
8569
8570 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
8571
8572         * marshal.h: Add missing function to fix build.
8573
8574         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
8575         the SetLastError pinvoke attribute.
8576
8577         * marshal.c (mono_marshal_set_last_error): New helper function called
8578         by the generated code.
8579         
8580         * marshal.c (mono_mb_emit_branch): New helper function.
8581
8582         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
8583
8584         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8585         classes as parameters and return values of delegates. Fixes #29256. 
8586
8587 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
8588
8589         * locales.c: use gint32 in non HAVE_ICU case
8590
8591 2003-10-11  Martin Baulig  <martin@ximian.com>
8592
8593         * mono-debug.c (mono_debug_add_method): Added a workaround for
8594         bug #48591.
8595
8596 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
8597
8598         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
8599         delegates passed to native code must use the STDCALL calling 
8600         convention. Fixes #35987.
8601
8602 2003-10-10  Martin Baulig  <martin@ximian.com>
8603
8604         * class.c (inflate_generic_type): If we're inflating for a generic
8605         type instance (and not for a generic method), return
8606         MONO_TYPE_MVAR unchanged.
8607
8608 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8609
8610         * string-icalls.c: Join ignores null strings in the source array.
8611         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
8612         * threads.c: GetAvailableTheads is slightly more accurate.
8613
8614 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
8615
8616         * threads.h threads.c : add mono_threads_set_default_stacksize
8617         and pass default to CreateThread calls.
8618
8619 2003-10-09  Dick Porter  <dick@ximian.com>
8620
8621         * icall.c:
8622         * locales.h:
8623         * locales.c: Internal calls for constructing CultureInfo and
8624         related objects from libicu (if its available.)
8625
8626 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
8627
8628         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
8629
8630 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8631
8632         * threadpool.c: added an argument to async_invoke_thread that is the
8633         item to process, pass the MonoAsyncResult to the thread start function
8634         when creating a new thread. This way we don't need to acquire any lock
8635         when we're creating a new thread. Readded a semaphore for faster
8636         response times (instead of that Sleep i added).
8637
8638 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
8639
8640         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
8641         get daylight change dates better on Windows, fix handling
8642         of platforms without tm_gmtoff.
8643
8644 2003-10-06  Martin Baulig  <martin@ximian.com>
8645
8646         * class.c (inflate_generic_method): Renamed to
8647         mono_class_inflate_generic_method() and made public.
8648         (mono_class_init): Don't inflate the generic methods here.
8649         (mono_class_from_generic): Added `gboolean inflate_methods'
8650         argument.  Inflate the methods here.
8651
8652         * loader.c (mono_method_get_param_names): Ignore instances of
8653         generic types for the moment.
8654
8655         * reflection.c (fixup_method): Added support for inflated methods.
8656         (mono_image_create_token): Use mono_image_get_methodref_token()
8657         for inflated methods.
8658         (mono_custom_attrs_from_param): Ignore instances of generic types
8659         for the moment.
8660         (mono_reflection_bind_generic_parameters): New public function.
8661         Moved all the functionality from
8662         ves_icall_Type_BindGenericParameters() here and added support for
8663         dynamic types.
8664         (mono_reflection_define_generic_parameter): Initialize
8665         `klass->methods' here.
8666
8667         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
8668         functionality into mono_reflection_define_generic_parameter().
8669         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
8670         TypeBuilder, return that TypeBuilder.
8671
8672 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8673
8674         * appdomain.c: removed mono_delegate_semaphore.
8675
8676         * threadpool.c:
8677         (mono_thread_pool_add): moved hash table creation inside and the thread 
8678         creation outside of the critical region.
8679         (mono_thread_pool_finish): removed obsolete code.
8680         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
8681         continue or exit the thread depending on the queue.
8682
8683 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
8684
8685         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
8686         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
8687         handle more bool marshalling options
8688
8689 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
8690
8691         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
8692         arrays of structs. Also add a more descriptive error message when
8693         a structure member is marshalled as LPArray.
8694
8695 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
8696
8697         * marshal.c (mono_marshal_get_native_wrapper): Add support for
8698         marshalling arrays of complex types. Fixes #29098. Also remove an
8699         usused and incomplete function.
8700
8701 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
8702
8703         * gc.c: report heap_size - free_bytes as total memory allocated
8704         (bug#49362).
8705
8706 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
8707
8708         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
8709         fix timezone handling problems on Windows.
8710         
8711         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
8712         asserts when the year is outside the range handled by ms the functions.
8713
8714         * class.c (setup_interface_offsets): If the class is an interface,
8715         fill out its interface_offsets slot.
8716
8717 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8718
8719         * threadpool.c: mark threadpool threads as background.
8720
8721 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
8722
8723         * decimal.c - define DECINLINE to nothing if not using GCC
8724
8725 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
8726
8727         * assembly.c: More refcount fixes.
8728
8729 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8730
8731         * string-icalls.c: if we're not trimming, return the same string.
8732         When not splitting, don't create a new string.
8733
8734 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8735
8736         * image.c:
8737         (mono_image_open): increment the ref_count inside the critical section.
8738
8739 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
8740
8741         * image.c (mono_image_open): Fix reference counting bug.
8742
8743 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
8744
8745         * marshal.c (mono_marshal_type_size) struct alignment changed for 
8746         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
8747         64bits. Avoid leak in mono_marshal_get_native_wrapper when
8748         mono_lookup_pinvoke_call throws.        
8749
8750 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
8751
8752         * reflection.c (mono_reflection_parse_type): Fix #49114.
8753
8754         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
8755         temporary workaround for cygwin header problem.
8756
8757         * object.c (mono_object_isinst): Synchronize this with the code
8758         generated by the JIT for casts.
8759
8760 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
8761
8762         * reflection.c (encode_type): Fix #38332.
8763
8764 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
8765
8766         * marshal.c (mono_marshal_method_from_wrapper): New function to return
8767         the original method from the wrapper method.
8768
8769 2003-09-25  Martin Baulig  <martin@ximian.com>
8770
8771         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
8772         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
8773         (ves_icall_Type_get_IsGenericInstance): New interncall.
8774
8775 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
8776
8777         * object.c: fix cast warning in big endian code.
8778
8779 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
8780
8781         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
8782         
8783 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8784
8785         * assembly.c: don't call check_env from mono_assembly_load. It's
8786         already done once in mono_assemblies_init and may cause headaches when
8787         multiple threads are loading assemblies.
8788
8789 2003-09-19  Martin Baulig  <martin@ximian.com>
8790
8791         * reflection.c (mono_reflection_define_generic_parameter): Don't
8792         allocate `klass->methods', set `klass->flags' to
8793         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
8794
8795 2003-09-18  Martin Baulig  <martin@ximian.com>
8796
8797         * class.c (mono_class_init): Don't create `class->methods' if it's
8798         already initialized.
8799
8800         * metadata.c (mono_metadata_load_generic_params): Make this
8801         actually work.
8802
8803         * reflection.c (mono_reflection_define_generic_parameter): Set
8804         parent class and interfaces from the constraints.
8805
8806         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
8807         to keep this struct in sync with the declaration in TypeBuilder.cs.
8808
8809 2003-09-17  Martin Baulig  <martin@ximian.com>
8810
8811         * metadata.h (MonoType): Replaced the data's `int type_param'
8812         field with `MonoGenericParam *generic_param'.
8813         (MonoGenericParam): Added `MonoClass *klass'.
8814
8815         * class.c (mono_class_from_gen_param): Removed the
8816         `MonoImage *image' and `int type_num' arguments.
8817
8818         * metadata.c (mono_metadata_parse_generic_param): New static
8819         method; creates a MonoGenericParam which just contains the index.
8820         (do_mono_metadata_parse_type): Call
8821         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
8822         MONO_TYPE_MVAR.
8823
8824         * reflection.c (mono_image_typedef_or_ref): Generic type
8825         parameters may be in the same assembly, but never use a typedef
8826         for them.
8827         (mono_reflection_define_generic_parameter): We're now creating a
8828         "real" class for the type parameter; it's now safe to call
8829         mono_class_from_mono_type() on the class'es type, it'll do the
8830         right thing.
8831
8832 2003-09-16  Martin Baulig  <martin@ximian.com>
8833
8834         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
8835         `symfile->range_entry_size' and `symfile->class_entry_size' here;
8836         the `symfile' data structure must be fully initialized before it
8837         gets added to the table.
8838
8839 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
8840
8841         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
8842
8843         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
8844         class init trampolines.
8845
8846 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
8847
8848         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
8849         to the built-in profiler to turn off time and allocation profiling
8850         respectively.
8851
8852 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
8853
8854         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
8855         g_direct_equal.
8856
8857         * debug-helpers.c (mono_method_full_name): Print the wrapper type
8858         in human readable form.
8859
8860 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
8861
8862         * reflection.c icall.c: Fixed warnings.
8863
8864         * image.c (load_class_names): Use a temporary hash table to hold the
8865         namespaces in order to avoid doing many string comparisons.
8866
8867         * image.h: Fix typo.
8868
8869         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
8870         Pass NULL instead of g_direct_equal to the GHashTable constructor 
8871         since the NULL case is short-circuited inside g_hash_table_lookup, 
8872         leading to better performance.  
8873
8874         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
8875         obtain the first custom attribute for a given index. Depends on the
8876         CustomAttribute table being sorted by the parent field.
8877
8878         * reflection.c (mono_custom_attrs_from_index): Use the new function 
8879         for better performance.
8880
8881 2003-09-07  Martin Baulig  <martin@ximian.com>
8882
8883         * class.c (mono_class_init): If we're a generic instance, inflate
8884         all our methods instead of loading them from the image.
8885         (mono_class_from_generic): Set `class->methods = gklass->methods'.
8886
8887 2003-09-07  Martin Baulig  <martin@ximian.com>
8888
8889         * mono-debug-debugger.c: Added support for constructors.
8890
8891 2003-09-06  Martin Baulig  <martin@ximian.com>
8892
8893         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
8894         New interncall.
8895
8896         * reflection.c (mono_reflection_setup_generic_class): Call
8897         ensure_runtime_vtable() to create the vtable.
8898
8899 2003-09-05  Martin Baulig  <martin@ximian.com>
8900
8901         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
8902         MONO_TYPE_MVAR.
8903
8904 2003-09-04  Martin Baulig  <martin@ximian.com>
8905
8906         * reflection.c (mono_reflection_define_generic_parameter): Generic
8907         parameters start with zero.
8908
8909 2003-09-04  Martin Baulig  <martin@ximian.com>
8910
8911         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8912
8913         * reflection.h (MonoReflectionGenericParam): New typedef.
8914         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
8915         the generic parameters from the managed TypeBuilder.
8916
8917         * reflection.c (mono_reflection_define_generic_parameter): New function.
8918         (mono_reflection_create_runtime_class): Encode generic parameters.
8919         (mono_reflection_setup_generic_class): New function; this is
8920         called after adding adding all generic params to the TypeBuilder.
8921         (encode_type): Added MONO_TYPE_VAR.
8922
8923 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
8924
8925         * class.h class.c (mono_class_needs_cctor_run): Moved this method
8926         here from the JIT.
8927
8928         * assembly.h assembly.c: Moved the AOT loading code into an assembly
8929         load hook.
8930
8931 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
8932
8933         * reflection.h reflection.c class.h class.c: Delete duplicate 
8934         definition of mono_type_get_name () from reflection.c and export the
8935         one in class.c.
8936
8937         * class.c: Class loading fixes from Bernie Solomon 
8938         (bernard@ugsolutions.com).
8939
8940         * reflection.c: Endianness fixes from Bernie Solomon 
8941         (bernard@ugsolutions.com).
8942         
8943 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
8944
8945         * assembly.h assembly.c: Define a file format version for AOT
8946         libraries.
8947         
8948         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
8949
8950         * appdomain.h (MonoJitInfo): New field to determine whenever the
8951         code is domain neutral.
8952         
8953 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
8954
8955         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
8956
8957 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
8958
8959         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
8960         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
8961         Avoid caching the result since strings must be domain specific. Fixes
8962         #48050.
8963
8964 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
8965
8966         * marshal.c (mono_marshal_init): Make this callable multiple times
8967         since it is hard to find a correct place to call it.
8968
8969         * object.c (mono_runtime_class_init): Execute static constructors in
8970         the correct appdomain.
8971
8972         * image.c (build_guid_table): Handle the case when multiple images have
8973         the same GUID.
8974
8975 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8976
8977         * icall.c: added a couple of icalls for System.Web.
8978
8979 2003-08-28  Martin Baulig  <martin@ximian.com>
8980
8981         * icall.c (ves_icall_Type_BindGenericParameters): Use
8982         `klass->generic_inst' instead of `&klass->byval_arg' in the
8983         mono_type_get_object() call.  The returned type must be
8984         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
8985
8986 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
8987
8988         * NOTES: New file.
8989
8990         * object.c (mono_class_proxy_vtable): Make it thread safe.
8991
8992         * pedump.c: Fix warning.
8993
8994         * object.c appdomain.h: Get rid of metadata_section. 
8995         It is no longer needed and it was causing deadlocks with domain->lock.
8996
8997         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
8998
8999 2003-08-26  Martin Baulig  <martin@ximian.com>
9000
9001         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
9002
9003 2003-08-26  Martin Baulig  <martin@ximian.com>
9004
9005         * pedump.c (main): Call mono_metadata_init(),
9006         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
9007         and mono_loader_init().
9008
9009 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
9010
9011         * loader.h: Add missing include to fix build.
9012
9013         * image.h: mono_image_load_references is no more.
9014
9015         * assembly.c: Reworked assembly loading to make it really thread safe.
9016         After these changes, the assembly returned by mono_assembly_open is
9017         fully initialized, i.e. all its references assemblies are loaded.
9018
9019         * assembly.c (mono_image_load_references): Renamed to 
9020         mono_assembly_load_references, and made private, since clients no
9021         longer need to call it.
9022
9023         * class.c: Removed calls to mono_assembly_load_references, since it was
9024         a source of deadlocks.
9025
9026         * loader.h loader.c class.h class.c: Protect data structures using a 
9027         new lock, the loader lock.
9028
9029         * class.c (mono_class_setup_vtable): Create temporary hash tables and
9030         GPtrArrays only when needed.
9031
9032         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
9033         into empty structures by mcs. Fixes pinvoke7.cs.
9034         
9035         * domain.c (mono_init): Call a new initialization function.
9036
9037         * appdomain.c (mono_runtime_init): Call the new initializer function
9038         of the marshal module.
9039
9040         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
9041         inserted into empty structures by mcs. Fixes pinvoke7.cs.
9042
9043         * marshal.h marshal.c: Added locks around the wrapper caches to make
9044         this module thread safe.
9045
9046         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
9047         this argument. Fixes pinvoke1.exe.
9048
9049 2003-08-25  Lluis Sanchez <lluis@ximian.com>
9050
9051         * object.h: Added call_type field to MonoMethodMessage and the corresponding
9052         enumeration of values. Removed fields to store remote call output values in
9053         MonoAsyncResult. Not needed any more.
9054         * object.c: Initialize call_type and async_result fields in mono_message_init.
9055         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
9056         dispatching the message.
9057         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
9058         async call to finish. To do it use a message with EndInvoke call type.
9059
9060 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
9061
9062         * loader.h loader.c (mono_method_hash_marhal_info): New function which
9063         determines whenever a method has marshalling info.
9064
9065 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9066
9067         * assembly.c: fix the build on windows.
9068
9069 2003-08-22 Lluis Sanchez <lluis@ximian.com>
9070
9071         * object.cs: Fixed bug #47785.
9072
9073 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
9074
9075         * string-icalls.c (StringReplace): If their are no occurances of
9076         the old string found return a reference to the supplied
9077         string. This saves some memory and matches MS behavoir.
9078         
9079 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9080
9081         * socket-io.c: fixed compilation for systems that define AF_INET6
9082         and don't define SOL_IP/SOL_IPV6.
9083
9084 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
9085
9086         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
9087         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
9088
9089         * rawbuffer.c rawbuffer.h: Make this module thread safe.
9090
9091         * domain.c: Make this module thread safe.
9092
9093         * domain.c (mono_init): Call new initialization function.
9094
9095         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
9096         reference types too. Fixes #38812.
9097
9098         * image.c (mono_image_init): Fixed warnings.
9099
9100         * class.c (mono_class_from_typeref): Handle assembly load failure
9101         correctly.
9102
9103         * appdomain.c (add_assemblies_to_domain): Handle the case when
9104         the references of an assembly are not yet loaded.
9105
9106         * metadata.c image.c assembly.c: Moved initialization of global
9107         variables to a separate function called at startup since lazy 
9108         initialization of these variables is not thread safe.
9109         
9110         * image.c assembly.c: Made this module thread safe by adding locks in 
9111         the appropriate places.
9112
9113         * domain.c (mono_init): Call the new initialization functions of the
9114         three modules.
9115
9116 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
9117
9118         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
9119           make a direct call. It is proxy's work to make the call asynchronous.
9120           mono_delegate_end_invoke(): If the targe is a proxy, just collect
9121           the return values.
9122         * object.cs: mono_method_call_message_new(): read AsyncResult and
9123           state object from parameters list, if this info is requested.
9124         * object.h: Added fields to store remote call output values in
9125           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
9126
9127 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9128
9129         * object.h: add needed fields to MonoThread.
9130         * threads.c, threads.h: allow registering a function to cleanup data
9131         allocated per thread by the JIT.
9132
9133 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9134
9135         * loader.h: portability fix by Bernie Solomon
9136         * <bernard@ugsolutions.com>.
9137
9138 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
9139
9140         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
9141         return a MonoArray. This simplifies the code and also ensures that
9142         the cache allways contains an object reference as a value.
9143
9144         * icall.c (ves_icall_get_parameter_info): Simplified using the new
9145         function.
9146
9147 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9148
9149         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
9150         fixes a problem with byte ordering when getting the address family for
9151         a socket.
9152
9153 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
9154
9155         * .cvsignore: Added monosn.
9156
9157         * reflection.h reflection.c loader.c: Added support for parameter
9158         marshalling to dynamically created types. Fixes #47295.
9159
9160 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
9161
9162         * rand.c: remove useless warnings.
9163
9164 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9165
9166         * class.c: implemented ldtoken for methods and fieldrefs.
9167
9168 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9169
9170         * threadpool.c: when mono_async_invoke was called, no one took care of
9171         monitoring the queue. So if the method invoked took some time and we
9172         got new async invoke requests after 500 ms (the thread created waited
9173         that long in WaitForSingleObject), the new async invoke was not called
9174         until the previous one finished.
9175
9176         This is fixed now. Thanks to Totte for helping with it.
9177
9178 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9179
9180         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
9181
9182 2003-08-11  Martin Baulig  <martin@ximian.com>
9183
9184         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
9185
9186 2003-08-06  Martin Baulig  <martin@ximian.com>
9187
9188         * mono-debug-debugger.c: Added support for static fields,
9189         properties and methods.
9190
9191 2003-08-06  Martin Baulig  <martin@ximian.com>
9192
9193         * mono-debug-debugger.c: Don't store the MonoString's vtable to
9194         make this work for applications with multiple application domains.
9195
9196 2003-08-04  Martin Baulig  <martin@ximian.com>
9197
9198         * mono-debug-debugger.c: Completely reworked the type support; the
9199         most important thing is that we're now just using one single
9200         `MonoType' instance per type.
9201
9202 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
9203
9204         * mono-endian.h, mono-endian.c, icall.c: Added icall
9205         ves_icall_System_Double_AssertEndianity to assert double word endianity
9206         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
9207
9208 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9209
9210         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
9211         support, icalls and fixes.
9212
9213 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
9214
9215         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
9216         classes that are a punctuation character in .NET is not the same a
9217         g_unichar_ispunct.
9218
9219 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9220
9221         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
9222
9223 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
9224
9225         * icall.c: Add new MemCopy internalcall.
9226         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
9227         Simplified code; It is not necessary to handle all the cases here,
9228         as the C# code takes care of it.  Only handle the case of the name
9229         resource embedded into the assembly.
9230
9231         Changed signature to return the data pointer and the size of the
9232         data. 
9233
9234 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
9235
9236         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
9237         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
9238
9239 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
9240
9241         * socket-io.c: ignore EINTR error in select.
9242
9243 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
9244
9245         * class.h, class.c: removed unused subclasses field in MonoClass.
9246
9247 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
9248
9249         * icall.c: improve fix of get_base_definition(). If the parent class
9250           doesn't have the mehod, look at the parent of the parent.
9251         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
9252           to check if a parameter is an in or out parameter
9253           (PARAM_ATTRIBUTE_IN is not set by default).
9254           mono_method_return_message_restore(): Use mono_class_value_size to
9255           get the size of a value type. mono_type_stack_size (parameterType)
9256           does not return the correct value if parameterType is byRef.
9257           mono_load_remote_field(), mono_load_remote_field_new(),
9258           mono_store_remote_field(), mono_store_remote_field_new():
9259           raise exception if the remote call returns an exception.
9260
9261 2003-07-28  Martin Baulig  <martin@ximian.com>
9262
9263         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
9264         method.  This is a wrapper around mono_runtime_invoke() which
9265         boxes the instance object if neccessary.
9266
9267 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9268
9269         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
9270         metadata.h, row-indexes.h, verify.c: first cut of generics support.
9271
9272 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9273
9274         * icall.c: disable mcs bug workaround.
9275
9276 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
9277
9278         * object.c (mono_runtime_class_init): Take the metadata_section
9279         mutex before obtaining the domain mutex.
9280
9281         * appdomain.h: Added definition of metadata_section mutex here. 
9282
9283         * object.c: define metadata_mutex here.
9284
9285 2003-07-24  Ravi Pratap  <ravi@ximian.com>
9286
9287         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
9288         fixed.
9289
9290 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
9291
9292         * reflection.c: Fix bug #46669
9293
9294 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9295
9296         * exception.c:
9297         * exception.h:
9298         * icall.c:
9299         * object.h: fill in the type name for TypeLoadException.
9300
9301 2003-07-23  Ravi Pratap  <ravi@ximian.com>
9302
9303         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
9304         relationship between TypeBuilders while compiling corlib) and bug
9305         45993 (Array types returned from the runtime while compiling
9306         corlib were from the loaded corlib).
9307
9308 2003-07-22  Martin Baulig  <martin@ximian.com>
9309
9310         * mono-debug-debugger.c: Reworked the type support a bit more;
9311         distinguish between types and classes.
9312
9313 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
9314
9315         * icall.c: add IsArrayImpl icall.
9316
9317 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
9318
9319         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
9320         initializing real_size only once. Also fix bug #46602.
9321
9322 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
9323
9324         * object.c: Renamed mono_metadata_section to metadata_section.
9325
9326 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
9327
9328         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
9329           empty array if the type is an array. Fixed.
9330           ves_icall_MonoMethod_get_base_definition: if the base method
9331           is abstract, get the MethodInfo from the list of methods of
9332           the class.
9333         * reflection.c: ParameterInfo.PositionImpl should be zero-based
9334           and it was 1-based. Fixed in mono_param_get_objects.
9335
9336 2003-07-20  Martin Baulig  <martin@ximian.com>
9337
9338         * mono-debug.h: Set version number to 31.
9339         (mono_debug_init): Added `MonoDomain *' argument.
9340
9341         * mono-debug-debugger.c: Reworked the type support; explicitly
9342         tell the debugger about builtin types; pass the `klass' address to
9343         the debugger.
9344
9345 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
9346
9347         * image.c: Allow new metadata tables to be loaded without a
9348         warning. Also update the warning message to give the new constant value.
9349                 
9350 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
9351
9352         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
9353         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
9354         array type representation changes.
9355
9356 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9357
9358         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
9359         on Environment.Exit () call.
9360
9361 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9362
9363         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
9364         requires a matching corlib.
9365
9366 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
9367
9368         * Changelog: My editor decided to add a CR to each line. Sorry about that.
9369           Committed again without the CRs.
9370         
9371 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
9372
9373         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
9374           getting it from the "this" socket instance. Did not work
9375           if the socket is a subclass of Socket.
9376           Also fixed bug #35371.
9377
9378 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9379
9380         * metadata.c: fixed size for TypedByRef.
9381         * loader.c: when searching for a method, consider the vararg amrker.
9382         * unicode.c, decimal.c: constify some arrays.
9383
9384 2003-07-15  Dick Porter  <dick@ximian.com>
9385
9386         * socket-io.c: Fixed compilation for gcc < 3.2.
9387
9388         Fixed compilation for machines that don't have AF_INET6 (thanks to
9389         Bernie Solomon <bernard@ugsolutions.com> for that part.)
9390
9391         Fixed compile warnings.
9392         
9393         Fixed formatting and line endings.
9394
9395 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
9396
9397         * socket-io.h:
9398         * socket-io.c: Added IPv6 support.
9399
9400 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
9401
9402         * class.c (mono_class_is_assignable_from): New function to implement
9403         the is_assignable_from logic. Used by mono_object_isinst, 
9404         Type::IsAssignableFrom () and the interpreter.
9405
9406         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
9407         Object, even interfaces.
9408         
9409         * object.c (mono_object_isinst): Implement in terms of 
9410         is_assignable_from.
9411
9412         * icall.c (ves_icall_type_is_assignable_from): New icall.
9413
9414 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
9415
9416         * domain.c (foreach_domain): fix compiler warning.
9417
9418 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
9419
9420         * image.c (load_metadata_ptrs): use g_strndup because strndup is
9421         not available on all plattforms
9422
9423 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
9424
9425         * image.h image.c: Store the metadata version string in MonoImage.
9426         * icall.c: New icall to retrieve the image version.
9427         * reflection.c (create_dynamic_image): Fill in the image version field
9428         * reflection.c (build_compressed_metadata): Use the image version
9429         from the image structure.
9430
9431 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9432
9433         * appdomain.c: modified comment.
9434         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
9435         That will be its last iteration when mono_gc_cleanup is called from
9436         mono_runtime_cleanup and before the domain is unloaded.
9437
9438         Fixes bug #45962.
9439
9440 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
9441
9442         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
9443         attributes.
9444
9445 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9446
9447         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
9448         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
9449         Bernie Solomon <bernard@ugsolutions.com>.
9450
9451 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9452
9453         * object.c, object.h: provide mono_object_new_fast() for faster
9454         allocation in some special cases.
9455
9456 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
9457
9458         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
9459         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
9460
9461 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
9462
9463         * threadpool.c: fix leaks.
9464
9465 2003-07-01  Dick Porter  <dick@ximian.com>
9466
9467         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
9468         using MonoGHashTables.  Fixes threadpool bug posted to list.
9469
9470 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
9471
9472         * image.h, image.c: added support to load an assembly from a byte array.
9473         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
9474         assembly bundle support.
9475
9476 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
9477
9478         * threadpool.c (mono_thread_pool_add): keep a reference to the
9479         AsyncResult to prevent GC
9480
9481 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
9482
9483         * class.c: leak fix.
9484
9485 2003-06-25  Dick Porter  <dick@ximian.com>
9486
9487         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
9488         for the async object, the WaitHandle object will close the handle.
9489         Fixes bug 45321.
9490
9491 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9492
9493         * class.c: in mono_array_class_get (), lookup from the hash with the
9494         same type we insert: this works around a bug in
9495         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
9496         lluis. The real fix will have to wait for after the release.
9497
9498 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9499
9500         * icall.c: fix memory leak when getting type members.
9501
9502 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9503
9504         * reflection.c: added more pubtoken special cases.
9505
9506 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
9507
9508         * class.c: handle field offset correctly when class size
9509         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
9510
9511 2003-06-20  Martin Baulig  <martin@ximian.com>
9512
9513         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
9514         *image' field.
9515
9516 2003-06-20  Martin Baulig  <martin@ximian.com>
9517
9518         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
9519
9520 2003-06-20  Martin Baulig  <martin@ximian.com>
9521
9522         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
9523         just distinguish between variables in registers and variables at
9524         an offset relative to a register.
9525
9526 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9527
9528         * icall.c: #ifdef out latest changes until mcs is fixed.
9529
9530 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9531
9532         * icall.c: return members in metadata order.
9533
9534 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9535
9536         * icall.c: avoid infinite loop in GetTimeZoneData.
9537
9538 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
9539
9540         * icall.c: added Marshal.Prelink/All icalls.
9541
9542 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9543
9544         * object.c, object.h: fix warnings and do some overflow checking
9545         when creating arrays.
9546
9547 2003-06-17  Dick Porter  <dick@ximian.com>
9548
9549         * file-io.h:
9550         * file-io.c: File attributes need to be tweaked slightly when
9551         passed from the managed to the w32 world.
9552
9553 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9554         * profiler.h profiler-private.h profiler.c: Rework last patch
9555         based on suggestion by Paolo.
9556         
9557 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9558
9559         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
9560         instruction level coverage data collection.
9561         * profiler.h profiler.c (: Added new callback function which can be
9562         used by the profiler to limit which functions should have coverage
9563         instrumentation.
9564         * profiler.c (mono_profiler_load): Call g_module_build_path to
9565         generate the file name of the profiler library.
9566
9567 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9568
9569         * profiler.c, profiler.h, profiler-private.h: added basic block 
9570         coverage profiling API.
9571
9572 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
9573
9574         * reflection.c (mono_reflection_create_runtime_class): Add support
9575         for events in dynamically generated code.
9576
9577         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
9578         not allocated.
9579
9580 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9581
9582         * icall.c: when getting timezone info, return reasonable values if we
9583         can't get the actual data.
9584
9585 2003-06-14  Dick Porter  <dick@ximian.com>
9586
9587         * threads.c (start_wrapper): Remove the reference to the thread
9588         object in the TLS data, so the thread object can be finalized.
9589         This won't be reached if the thread threw an uncaught exception,
9590         so those thread handles will stay referenced :-( (This is due to
9591         missing support for scanning thread-specific data in the Boehm GC
9592         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
9593
9594 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
9595
9596         * reflection.c: ensure streams and tables are first allocated with
9597         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
9598
9599 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9600
9601         * icall.c: fixed GetElementType for byrefs (bug# 44792).
9602
9603 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
9604
9605         * reflection.c (mono_reflection_create_runtime_class): Add support for
9606         properties to dynamically created classes.
9607         * reflection.c: Fix a few places where non-MonoObjects were inserted
9608         into the tokens hashtable.
9609
9610 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9611
9612         * object.c: some support to handle out of memory exceptions.
9613
9614 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
9615
9616         * marshal.c (mono_marshal_get_native_wrapper): support reference
9617         return types
9618
9619 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9620
9621         * object.h, object.c: more portability stuff from Bernie Solomon.
9622         Unexport mono_object_allocate(). Added mono_object_unbox ().
9623         Set exitcode when an unhandled exception is thrown.
9624
9625 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
9626
9627         * marshal.c (mono_marshal_get_native_wrapper): use custom
9628         marshaler for return types.
9629
9630 2003-06-10  Dick Porter  <dick@ximian.com>
9631
9632         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
9633         ip_mreq is available
9634
9635 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
9636
9637         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
9638         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
9639         by Bernie Solomon <bernard@ugsolutions.com>.
9640
9641 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
9642
9643         * gc.c (mono_gc_init): Avoid error message on shutdown when
9644         GC_DONT_GC=1 is used.
9645
9646         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
9647         New icall to return the GUID of a module.
9648
9649 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9650
9651         * class.c: ensure instance size always includes the parent's size
9652         even whem class size is set explicitly (fixes bug#44294).
9653
9654 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9655
9656         * profiler.h, profiler.c: made the simple profiler thread-safe,
9657         get more accurate timing info. Allow the loading of an
9658         externally-developed profiler module.
9659
9660 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
9661
9662         * marshal.c (mono_marshal_get_native_wrapper): improved
9663         class/byref arguments.
9664         (mono_marshal_get_native_wrapper): better string marshaling support.
9665
9666 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
9667
9668         * class.c: ensure .pack and .size are handled correctly and
9669         simplified layout of static fields.
9670
9671 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
9672
9673         * appdomain.c
9674         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
9675
9676         * loader.c (mono_lookup_pinvoke_call): look for modules in the
9677         current directory (fix bug 44008)
9678
9679 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
9680
9681         * marshal.c (mono_marshal_get_native_wrapper): started support for
9682         custom marshalers.
9683         (mono_delegate_to_ftnptr): consider marshalling specifications
9684
9685 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
9686
9687         * reflection.c, reflection.h: emit custom marshal info.
9688
9689 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9690
9691         * object.c: free the GError.
9692         * icall.c: added CloseEvent_internal.
9693         * threads.[ch]:
9694         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
9695         call.
9696
9697 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
9698
9699         * loader.c (mono_method_get_signature): Add support for dynamic
9700         assemblies.
9701
9702 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
9703
9704         * reflection.c: fixed bug #43905.
9705
9706 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9707
9708         * class.c, domain.c, icall.c, metadata.h, object.h: support for
9709         handling TypedReference and ArgIterator.
9710         * loader.c, loader.h: added function to get signature at call site.
9711
9712 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9713
9714         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
9715         data readonly. Buglets and warning fixes. Some MethodSpec support.
9716
9717 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9718
9719         * class.h, class.c, object.c: remove relative numbering support.
9720
9721 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
9722
9723         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
9724         free the string, until we get a chance to fix Gtk#
9725
9726 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9727
9728         * marshal.c: revert last patch.
9729
9730 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
9731
9732         * icall.c: updates for new mono_class_vtable() not calling
9733         the type constructor anymore.
9734
9735 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
9736
9737         * object.h, object.c: separate vtable creation from type
9738         initialization. Make running the .cctor thread safe.
9739
9740 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
9741
9742         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
9743
9744 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
9745
9746         * loader.c (mono_get_method): consider calling convention
9747
9748 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
9749
9750         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
9751         to return the invisible global type for a module.
9752
9753         * reflection.c (mono_image_build_metadata): Emit global fields too.
9754
9755 2003-05-20  Peter Williams  <peterw@ximian.com>
9756
9757         * loader.c (mono_lookup_internal_call): Add a few newlines.
9758
9759 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
9760
9761         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
9762         literal strings.
9763
9764         * appdomain.c (set_domain_search_path): Recalculate search path when
9765         AppDomainSetup.PrivateBinPath changes.
9766
9767         * object.c (mono_class_compute_gc_descriptor): It turns out some
9768         parts of the class libs (like System.Thread) holds pointers to
9769         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
9770         to treat native int a pointer type here.
9771         
9772 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
9773
9774         * appdomain.h, domain.c: add hashtable for jump target resolution.
9775
9776 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
9777
9778         * reflection.h reflection.c icall.c: Added new icalls 
9779         GetManifestResourceInfoInternal, GetModulesInternal and support
9780         infrastructure.
9781
9782 2003-05-16  Dick Porter  <dick@ximian.com>
9783
9784         * icall.c:
9785         * file-io.h:
9786         * file-io.c: Implement System.IO.MonoIO::GetTempPath
9787
9788 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
9789
9790         * object.c: mono_store_remote_field: little fix to previous patch.
9791
9792 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9793
9794         * class.c: add constructors to array classes.
9795         * icall.c: special case array construction for InternalInvoke (),
9796
9797 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
9798
9799         * class.h class.c reflection.c object.c: Added support for field
9800         defaults in dynamically generated classes.
9801
9802 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
9803
9804         * reflection.c: properly encode charset for ddlimport.
9805
9806 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
9807
9808         * threads.c: allow compiling without GC.
9809
9810 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9811
9812         * appdomain.h, object.c, object.h, threads.c, threads.h: added
9813         handling of thread static data.
9814
9815 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9816
9817         * reflection.h, reflection.c: added mono_custom_attrs_free ().
9818
9819 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
9820
9821         * class.c (mono_array_class_get): always set the serializable flags
9822         (mono_array_class_get): always set the SEALED attribute for array types
9823
9824 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
9825
9826         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
9827         attributes (fix for bug 42021).
9828
9829 2003-05-12  Dick Porter  <dick@ximian.com>
9830
9831         * gc.c: Don't run finalizers when the finalizer thread is
9832         finishing up, because the default domain has already been
9833         destroyed.
9834
9835 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
9836
9837         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
9838         value is null, we should throw an exception.   This is slightly
9839         different than the other conventions used for the constructor.
9840
9841 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9842
9843         * socket-io.c: fixed windows build.
9844
9845 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9846
9847         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
9848
9849 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
9850
9851         * object.c (mono_string_new_wrapper): Compatibility fix for MS
9852         compilers.
9853
9854 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
9855
9856         * class.c (mono_class_layout_fields): Add experimental GC aware
9857         auto layout facility. Requires class library changes to work correctly.
9858
9859         (mono_class_setup_vtable): Avoid overriding explicit interface
9860         method implementations. Fixes iface3.exe test.
9861
9862         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
9863         object reference.
9864         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
9865         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
9866
9867         * metadata.h: Add new type classification macro which determines
9868         whenever the type holds an object reference.
9869
9870 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
9871
9872         * marshal.c (mono_marshal_get_native_wrapper): cleanups
9873
9874 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
9875
9876         * gc.c (finalizer_thread): Work around a GC bug.
9877
9878 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
9879
9880         * marshal.c (emit_struct_conv): allow unions
9881
9882         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
9883
9884 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
9885
9886         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
9887
9888 2003-05-06  Martin Baulig  <martin@ximian.com>
9889
9890         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
9891
9892 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9893
9894         * socket-io.c:
9895         (Select_internal): allow NULLs, don't create arrays if not needed.
9896         Coupled with Socket.cs changes.
9897
9898         * threadpool.c:
9899         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
9900         register a finalizer for it that will close the semaphore handle. This
9901         fixes the leak and make Lupus' test run with > 4080 loops.
9902
9903 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
9904
9905         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
9906         Jerome Laban (bug #42287)
9907
9908 2003-05-02  Martin Baulig  <martin@ximian.com>
9909
9910         * debug-mono-symfile.h
9911         (MonoSymbolFile): Moved declaration into mono-debug.h.
9912         (MonoDebugMethodJitInfo): Likewise.
9913         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
9914         argument.
9915         (_mono_debug_address_from_il_offset): Take a
9916         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
9917
9918         * mono-debug.h
9919         (MonoDebugDomainData): New struct.
9920         (mono_debug_get_domain_data): New function.
9921         (mono_debug_add_method): Take an additional `MonoDomain *'
9922         argument.
9923         (mono_debug_source_location_from_address): Likewise.
9924         (mono_debug_il_offset_from_address): Likewise.
9925         (mono_debug_address_from_il_offset): Likewise.
9926
9927 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
9928
9929         * reflection.c: one more check for null type in custom attrs.
9930
9931 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9932
9933         * reflection.c: avoid warning (comparison is always false due to limited
9934         range of data type).
9935
9936 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9937
9938         * icall.c: throw an exception in Type.GetField if the argument 'name'
9939         is NULL.
9940
9941 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
9942
9943         * reflection.c: fixed handling of enums in named arguments to custom
9944         attributes (bug #42123).
9945
9946 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
9947
9948         * reflection.c: use the right array element type and handle
9949         a null for a Type argument, too.
9950
9951 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
9952
9953         * reflection.c: handle arrays as arguments to custom attributes.
9954
9955 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
9956
9957         * reflection.c: handle a string value in a custom attr
9958         ctor that takes an object.
9959
9960 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
9961
9962         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
9963         (fix bug #42063)
9964
9965 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
9966
9967         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
9968
9969 2003-04-27  Martin Baulig  <martin@ximian.com>
9970
9971         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
9972         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
9973         MONO_DEBUGGER_EVENT_BREAKPOINT.
9974         (mono_breakpoint_trampoline_code): Removed.
9975         (mono_debugger_event_handler): The last argument is now a
9976         `guint32'.
9977         (mono_debugger_insert_breakpoint_full): Removed the
9978         `use_trampoline' argument.
9979         (mono_debugger_method_has_breakpoint): Likewise.
9980         (mono_debugger_trampoline_breakpoint_callback): Renamed to
9981         mono_debugger_breakpoint_callback(); take the method and
9982         breakpoint number as arguments.
9983
9984 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
9985
9986         * metadata.c: fix off by one when loading parameters attributes.
9987
9988 2003-04-24  Martin Baulig  <martin@ximian.com>
9989
9990         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
9991
9992 2003-04-24  Martin Baulig  <martin@ximian.com>
9993
9994         * mono-debug-debugger.c: Moved all code which interacts with the
9995         Mono Debugger here.
9996
9997         * debug-mono-symfile.c: This code now just deals with the symbol
9998         file itself, the debugger code is now in mono-debug-debugger.c.
9999
10000 2003-04-23  Martin Baulig  <martin@ximian.com>
10001
10002         * mono-debug.c (mono_debug_source_location_from_il_offset):
10003         New method; like mono_debug_source_location_from_address(), but
10004         takes an IL offset instead of a machine address.
10005
10006 2003-04-23  Martin Baulig  <martin@ximian.com>
10007
10008         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
10009         `line' field; this is now computed by the debugger.
10010
10011 2003-04-23  Martin Baulig  <martin@ximian.com>
10012
10013         * mono-debug.[ch]: New files.  This is the new debugging interface.
10014
10015         * mono-debug-debugger.[ch]: New files.  Moved all code which
10016         interacts with the Mono Debugger here.
10017
10018 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
10019
10020         * domain.c (mono_init): initialize mono_defaults.monitor_class
10021
10022 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
10023
10024         * reflection.c (method_encode_code): Add a spicy exception to help
10025         future compiler authors.
10026
10027 2003-04-21  Martin Baulig  <martin@ximian.com>
10028
10029         * icall.c
10030         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10031         Make this work with relative pathnames; g_filename_to_uri() needs
10032         an absolute filename.
10033
10034 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
10035
10036         * icall.c: Track name changes in Object and ValueType.
10037
10038 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
10039
10040         * metadata.c (mono_type_stack_size): size should be a multiple of
10041         sizeof (gpointer)
10042
10043 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10044
10045         * gc.c:
10046         (internal_domain_finalize): moved into mono_domain_finalize. No need
10047         to create another thread because the finalizers will be run in the
10048         finalizer thread.
10049         
10050         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
10051         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
10052         to be run (MS does this too).
10053
10054 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
10055
10056         * object.c (mono_class_compute_gc_descriptor): Update comment.
10057
10058         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
10059
10060         * image.h: Add synchronized wrapper cache.
10061
10062         * image.c (do_mono_image_open): Initialize cache.
10063
10064         * reflection.c (create_dynamic_mono_image): Initialize cache.
10065
10066 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10067
10068         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
10069         ves_icall_System_Buffer_ByteLengthInternal.
10070
10071 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10072
10073         * reflection.c: setup klass->nested_in earlier. Allow
10074         a dash in the assembly name.
10075
10076 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
10077
10078         * metadata.c (mono_type_to_unmanaged): dont access
10079         type->data.klass for MONO_TYPE_OBJECT
10080         (mono_type_to_unmanaged): consider System.Delegate class
10081
10082 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
10083
10084         * class.c: just setup supertypes in the proper place instead of
10085         initializing the full element class for arrays.
10086
10087 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
10088
10089         * class.c: ensure the element class of arrays is initialized.
10090         Setup the supertype info for array classes, too.
10091
10092 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
10093
10094         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
10095
10096 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10097
10098         * Makefile.am: re-added -m option when running cygpath. This way,
10099         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
10100         separator.
10101         * mono-config.c: same codepath for locating mono config file for WIN32
10102         and the rest.
10103         * assembly.c: if mono_assembly_setrootdir is called, don't override
10104         the value set.
10105
10106 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10107
10108         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
10109         MONO_ASSEMBLIES variable.
10110
10111 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
10112
10113         * icall.c: added Assembly::GetNamespaces() icall.
10114
10115 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10116
10117         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
10118
10119 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
10120
10121         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
10122         * object.c: fixed bug in the construction of vtable for proxies
10123
10124 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
10125
10126         * object.c (mono_array_new): Mark mono_array_new as an icall.
10127
10128 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10129
10130         * class.c: fixed test for public method when overriding interfaces.
10131         Closes bug #40970.
10132
10133 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
10134
10135         * appdomain.h, domain.c: added mono_domain_foreach() to
10136         be able to access the currently loaded appdomains.
10137         * object.c: make string interning work across sppdomains.
10138         Mark some functions for use as icalls.
10139
10140 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
10141
10142         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
10143
10144         * reflection.h reflection.c: Allocate long living data using 
10145         GC_MALLOC_ATOMIC so the collector does not need to scan it.
10146
10147         * reflection.c: Double the allocation size in streams instead of
10148         increasing it, to prevent unneccesary copying on large assemblies.
10149         
10150         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
10151         creation if the assembly does not have the Run flag set.
10152
10153 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
10154
10155         * class.h: avoid the C++ keywords in header files (Jerome Laban
10156         spotted and fixed this).
10157
10158 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10159
10160         * object.c:
10161         (mono_unhandled_exception): fill in the arguments for the
10162         UnhandledException event. Only trigger that event for the default
10163         domain (as MS does).
10164
10165 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
10166
10167         * object.c: Improve typed allocation stuff based on suggestions from
10168         Paolo. Also turn it on if the GC library supports it.
10169
10170 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10171
10172         * object.c object.h class.h: Added experimental typed allocation
10173         facility using the interfaces in gc_gcj.h.
10174
10175         * os/gc_wrapper.h: Added new include files.
10176         
10177 2003-04-03  Martin Baulig  <martin@ximian.com>
10178
10179         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
10180         which is not yet enabled by default.
10181
10182         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
10183         functions.
10184         (mono_gc_lock, mono_gc_unlock): New static functions.
10185
10186         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
10187         functions; stop/start the world for the garbage collector.  This
10188         is using the windows API; we need to complete the SuspendThread()/
10189         ResumeThread() implementation in the io-layer to make this work on Unix.
10190         (mono_gc_push_all_stacks): New public function; tells the garbage
10191         collector about the stack pointers from all managed threads.
10192
10193 2003-04-03  Martin Baulig  <martin@ximian.com>
10194
10195         * object.h (MonoThread): Added `gpointer stack_ptr'.
10196
10197         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
10198
10199 2003-04-03  Martin Baulig  <martin@ximian.com>
10200
10201         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
10202
10203 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10204
10205         * reflection.c (typebuilder_setup_fields): Initialize field.first and
10206         field.last.
10207
10208 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
10209
10210         * loader.c (mono_lookup_internal_call): Report the corlib that is
10211         out of sync.
10212
10213 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
10214
10215         * icall.c (ves_icall_type_GetTypeCode): fixed check for
10216         System.DBNull (it's class not valuetype).
10217
10218 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
10219
10220         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
10221         if the array method was already assigned a token (fixes bug#40646).
10222
10223 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
10224
10225         * reflection.c (mono_reflection_get_type): Attempt type resolve even
10226         if no assembly is given.
10227
10228 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
10229
10230         * metadata.h: Added the new tables.
10231
10232         * row-indexes.h: Added definitions for new tables.
10233
10234         * metadata.c: Add schemas for new tables, and add support for
10235         computing the sizes of them.
10236
10237         * class.c: Update for handling the new type cases.
10238
10239 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
10240
10241         * metadata.h (MONO_TYPE_IS_VOID): new macro
10242
10243 2003-03-31  Martin Baulig  <martin@ximian.com>
10244
10245         * threads.h (MonoThreadCallbacks): Added `thread_created'.
10246
10247         * threads.c (mono_thread_new_init): Call `thread_created' in the
10248         mono_thread_callbacks.
10249
10250 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
10251
10252         * loader.h: added marshalbyrefobject_class to mono_defaults
10253         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
10254         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
10255           generation of output parameters.
10256           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
10257         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
10258           contextbound and the target object belongs to the context of the caller.
10259         * object.h: added context and unwrapped_server variables in MonoRealProxy.
10260         * object.c: Implemented support for interfaces and abstract classes
10261           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
10262           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
10263
10264 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
10265
10266         * class.h class.c (mono_class_is_subclass_of): New function.
10267         
10268         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
10269         routines for most common case (calls from ArrayList::ToArray).
10270
10271         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
10272         routine so programs which call Environment::Exit() can be profiled.
10273
10274         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
10275         Added MONO_ARCH_SAVE_REGS.
10276
10277         * icall.c (ves_icall_type_is_subtype_of): Use new function.
10278
10279 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
10280
10281         * blob.h: Add a couple of new MonoType types definitions.
10282
10283         * tabledefs.h: Add a couple of new call convs.
10284
10285 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
10286
10287         * reflection.h (MonoReflectionDynamicAssembly): track changes in
10288         the layout of the class.
10289
10290         * reflection.c (alloc_table): double the size on overflow to avoid
10291         unnecessary copying.
10292
10293         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
10294         avoid filling out metadata tables and blobs. Also set mb->ilgen to
10295         null so it can be garbage collected.
10296         
10297 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
10298
10299         * reflection.c (mono_reflection_get_type): Return the resolved type
10300         only if it is in the assembly we searched.
10301
10302         * reflection.c (ensure_runtime_vtable): Initialize method slots.
10303
10304         * class.c (mono_class_setup_vtable): Set the slot of the overriding
10305         method.
10306
10307 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10308
10309         * appdomain.c:
10310         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
10311         the right one is 'file:///blah', but MS allows it.
10312         * assembly.c:
10313         (mono_assembly_open): allow 'file://blah'
10314
10315         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
10316
10317 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
10318
10319         * socket-io.c: fixes bug #40310.
10320
10321 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
10322
10323         * reflection.c (mono_reflection_parse_type): handle deeply nested
10324         types correctly.
10325
10326         * reflection.c (mono_image_create_token): Use unique token values
10327         since they will be put into a hash table.
10328
10329         * class.c (mono_class_setup_vtable): If a method occurs in more than
10330         one place in the vtable, and it gets overriden, then change the
10331         other occurances too.
10332
10333         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
10334         object as return type.
10335
10336 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10337
10338         * icall.c: Deleted "ToString" implementation for double and float
10339         because they are full implemented in managed code.
10340
10341 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10342
10343         * reflection.c, reflection.h: implemented and exported functions
10344         to retrieve info about custom attributes.
10345
10346 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10347
10348         * appdomain.c: moved Uri handling to assembly.c
10349         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
10350         work when using a file Uri in *nix and windows.
10351
10352         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
10353         GetReferencedAssemblies.
10354
10355 2003-03-18  Dick Porter  <dick@ximian.com>
10356
10357         * icall.c: Rename a couple of internal calls
10358
10359         * threads.c: Set the thread state to Stopped when a thread exits.
10360         Fixes bug 39377.
10361
10362 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
10363
10364         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
10365         New icall.
10366
10367         * object.c (mono_class_vtable): fix warning.
10368
10369 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
10370
10371         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
10372
10373         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
10374         memory.
10375         (method_encode_clauses): Create exception info structures in the right
10376         order.
10377         (mono_reflection_setup_internal_class): Initialize supertypes field.
10378
10379         * class.c object.c: Handle interfaces which implement other interfaces 
10380         correctly.
10381
10382         * class.h class.c: Move the supertypes array initialization code into 
10383         a separate function so it can be used for dynamic types too. Also call
10384         it earlier, in mono_class_init(), since it can be used before the
10385         type is initialized.
10386
10387 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10388
10389         * Makefile.am:
10390         * assembly.c:
10391         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
10392
10393         * appdomain.c:
10394         * appdomain.h:
10395         * marshal.c:
10396         * object.c: remove warnings.
10397
10398 2003-03-13  Martin Baulig  <martin@ximian.com>
10399
10400         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
10401         (MonoDebugLexicalBlockEntry): New types.
10402
10403         * debug-mono-symfile.c
10404         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
10405
10406 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10407
10408         * process.c: ret can be any non-zero value accroding to MS doc.
10409
10410 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
10411
10412         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
10413         fixing a warning for a miss-used prototype, would have cause
10414         random memory corruption.
10415
10416 2003-03-07  Martin Baulig  <martin@ximian.com>
10417
10418         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
10419         getting really annoying ....
10420
10421 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
10422
10423         * reflection.c (fixup_method): added support for array methods.
10424
10425 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
10426
10427         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
10428         (pointed out by Michael Adams).
10429
10430 2003-03-04  Dick Porter  <dick@ximian.com>
10431
10432         * icall.c: Temporarily reverted the Double and Single ToString()
10433         change, because it broke nunit.
10434
10435 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
10436
10437         * object.h, threads.h: make include files compatible with C++
10438         (patch by Jerome Laban <jlaban@wanadoo.fr>).
10439
10440 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10441
10442         * icall.c: Erased ToString helper functions for Double and Single.
10443         Now, that implementations ar all in managed code (Double and Single
10444         Formatters).
10445
10446 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
10447
10448         * appdomain.c: Added method for initializing the default context of
10449         a domain. Added internal call for getting the default context.
10450         * appdomain.h: Added context variable in MonoDomain struct.
10451         * domain.c: mono_domain_set also sets the default context of the domain
10452         * icall.c: Mapped internal method InternalGetDefaultContext.
10453         * object.c: mono_object_get_virtual_method returns always a remoting
10454         wrapper if the object is a transparent proxy.
10455         mono_runtime_invoke_array: when creating an object by calling the
10456         constructor, if the created object is a proxy, then the constructor should
10457         be called using the a remoting wrapper.
10458
10459 2003-03-03  Dick Porter  <dick@ximian.com>
10460
10461         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
10462         variable so it compiles on solaris.  Problem spotted by
10463         Christopher Taylor <ct@cs.clemson.edu>
10464
10465 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10466
10467         * appdomain.c:
10468         (get_info_from_assembly_name): don't leak value.
10469
10470         * icall.c:
10471         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
10472         result.
10473
10474 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
10475
10476         * assembly.c: export mono_image_load_references ().
10477         * class.c: handle function pointers. mono_class_from_name() now
10478         supports nested type names directly.
10479
10480 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
10481
10482         * reflection.h reflection.c: Encode already created dynamic methods 
10483         and fields correctly as a DEF instead of a REF.
10484
10485         * reflection.c: Get rid of the force_ref argument to 
10486         mono_image_typedef_or_ref since it was wrong in the first place.
10487
10488         * string-icalls.c: add error checking to string constructors according
10489         to the MSDN docs.
10490
10491         * reflection.c: Emit types in the order their TypeBuilders were 
10492         created. Previously, a new table index was assigned to each type before
10493         the tables were emitted. This was wrong because the signature blob
10494         might already refer to a type by its original table index.
10495
10496 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
10497
10498         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
10499         change.
10500         
10501 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10502
10503         * Makefile.am: make assemblies dir have \ instead of / on windows.
10504
10505 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
10506
10507         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
10508         iterate over the NESTEDCLASS table using a linear search since the
10509         table is not guaranteed to be sorted by the secondary key.
10510
10511         * class.c (mono_class_create_from_typedef): fixed up call to
10512         mono_metadata_nesting_typedef.
10513         
10514 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
10515
10516         * marshal.c (mono_string_to_byvalstr): clear the memory as
10517         suggested by Jerome Laban <jlaban@wanadoo.fr>
10518
10519 2003-02-26  Dick Porter  <dick@ximian.com>
10520
10521         * process.c: Cope with padding in .rsrc blocks
10522
10523 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
10524
10525         * metadata.h: reverted the filter_len change, it breaks reflection
10526         
10527 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
10528
10529         * metadata.h: added a new field to store the filter_len
10530         
10531
10532 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
10533
10534         * reflection.c: handle custom attributes for types and members
10535         created with Reflection.Emit (bug#38422).
10536
10537 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
10538
10539         * reflection.c: define RTSpecialName automatically for constructors for
10540         compatibility with MS.NET.
10541
10542         * reflection.c (mono_reflection_create_runtime_class): initialize
10543         nested_in field of dynamically created classes.
10544
10545 2003-02-22  Martin Baulig  <martin@ximian.com>
10546
10547         * debug-mono-symfile.h: Incremented version number.
10548
10549 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
10550
10551         * object.h icall.c process.c: fix warnings.
10552
10553 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
10554
10555         * appdomain.h appdomain.c:
10556         (mono_domain_try_type_resolve): split the 
10557         name_or_tb argument into a name and a tb argument.
10558         (mono_domain_has_type_resolve): new function to check whenever the
10559         application has registered a TypeResolve event handler.
10560         
10561         * icall.c reflection.h reflection.c: move the type resolve logic into
10562         mono_reflection_get_type () so it will be invoked when 
10563         Assembly::GetType () is called.
10564
10565         * reflection.c:
10566         (mono_reflection_get_type): renamed to get_type_internal.
10567         (mono_reflection_get_type): fixed type name generation so it works 
10568         for nested types too.
10569         (mono_reflection_get_type): call has_type_resolve () to avoid the 
10570         costly type name generation if there is no resolve event handler.
10571
10572 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10573
10574         * class.c, image.c: load exported types from file references.
10575
10576 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
10577
10578         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
10579           used to cache the managed methods used to create proxies and make 
10580           remote invocation of methods.
10581         * class.h: Added in MonoVTable a flag to indicate that a class needs 
10582           to be remotely created.
10583         * object.c: Modified the method mono_class_vtable(). It now initializes 
10584           the remote flag of the vtable. Modified mono_object_new_specific(), 
10585           so now it checks the remote flag.
10586         * icall.c: Added a couple of internal methods, one for enabling instance 
10587           creation interception for a type, and one for creating objects bypassing
10588           the remote check.
10589
10590 2003-02-18  Martin Baulig  <martin@ximian.com>
10591
10592         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
10593         New interncall to get a method's metadata token.
10594
10595         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
10596         New interncall for the debugger.
10597
10598 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
10599
10600         * class.c (mono_class_setup_vtable): allocate supertype array
10601
10602 2003-02-18  Martin Baulig  <martin@ximian.com>
10603
10604         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
10605
10606 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10607
10608         * reflection.c:
10609         (assembly_name_to_aname): jump over unknown properties (i've found
10610         something like: 'type, assembly, version=xxx, custom=null, public...',
10611         so now will ignore custom=null and still get the rest of the values).
10612
10613 2003-02-17  Dick Porter  <dick@ximian.com>
10614
10615         * threads.c: Have Thread.Start() wait for a semaphore to signal
10616         that the thread has set up all its local data.  This fixes bug
10617         34323, where Abort() raced the new thread's TLS data.
10618
10619         Also removes the handle_store() call from start_wrapper, because
10620         threads are now always created suspended and there is no longer a
10621         race between the parent and child threads to store the info.
10622
10623 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
10624
10625         * image.c: explain the #- heap issue in a message, hopefully
10626         avoiding FAQs on mono-list.
10627
10628 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10629
10630         * icall.c:
10631         (GetEntryAssembly): if the domain has not invoked
10632         AppDomain.ExecuteAssembly yet, return the assembly of the default
10633         AppDomain.
10634
10635 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
10636
10637         * class.c (mono_ldtoken): make it work in dynamic assemblies.
10638
10639 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
10640
10641         * metadata.c, reflection.c: simple speedup to type hash
10642         and equals code.
10643
10644 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
10645
10646         * image.c, image.h, class.c, assembly.c: move module loading
10647         to MonoImage. When loading metadata, consider alignemnet from
10648         the start of metadata, not from the metadata address in memory.
10649
10650 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
10651
10652         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
10653         AssemblyBuilder objects. Factored out custom attribute creation into
10654         a separate function.
10655         (create_custom_attr): new function to create custom attributes.
10656
10657 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
10658
10659         * Makefile.am: Got tired of typing the full pathname to pedump.
10660         Until there is another option, am installing this.
10661
10662 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
10663
10664         * class.c (class_compute_field_layout): always set field->parent 
10665         (mono_ldtoken): use mono_defaults.fieldhandle_class;
10666
10667 2003-02-11  Dick Porter  <dick@ximian.com>
10668
10669         * threads-types.h:
10670         * monitor.c: Rewrote Monitor, making lock much faster and
10671         Pulse/Wait work as specified.  Also uses much fewer handles, and only
10672         creates them as needed.
10673
10674         * exception.c: Added SynchronizationLockException
10675
10676         * threads.c: Deleted old Monitor implementation.  The new one is
10677         in a new file.
10678
10679 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
10680
10681         * class.c: handled TypedReference type code. Set the correct size for
10682         class data. Setup interface_offsets for interface classes, too.
10683
10684 2003-02-09  Martin Baulig  <martin@ximian.com>
10685
10686         * debug-mono-symfile.h: Reflect latest symbol writer changes.
10687
10688 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
10689
10690         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
10691         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
10692         * object.c: fixed mono_object_get_virtual_method () for interfaces.
10693         * verify.c: check for code that runs after the end of the method.
10694
10695 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10696
10697         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
10698         "System.Math::Round2".
10699         * sysmath.h: Added Floor, Round and Round2 definitions.
10700         * sysmath.c: Modified certain functions that were not 100% compliant
10701         with MS.NET (math precision) and added the implementation of Floor,
10702         Round and Round2.
10703
10704 2003-02-07  Martin Baulig  <martin@ximian.com>
10705
10706         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
10707
10708 2003-02-07  Martin Baulig  <martin@ximian.com>
10709
10710         * debug-mono-symfile.c: Reflected latest symwriter changes.
10711         (mono_debug_create_mono_symbol_file): Removed.
10712         (mono_debug_open_mono_symbol_file): Take an argument which
10713         specifies whether to create a dynamic symbol file.
10714
10715 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
10716
10717         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
10718
10719 2003-02-05  Martin Baulig  <martin@ximian.com>
10720
10721         * reflection.c (mono_image_build_metadata): Make this public,
10722         protect it against being called multiple times, don't create
10723         resources and don't build the compressed metadata here.
10724         (mono_image_create_pefile): Do this here.
10725
10726         * icall.c
10727         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
10728
10729 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10730
10731         * socket-io.c: fixed bug #36322.
10732
10733 2003-02-06  Piers Haken <piersh@friskit.com>
10734
10735         * appdomain.[ch]:
10736         * class.h:
10737         * debug-mono-symfile.c:
10738         * icall.c:
10739         * loader.c:
10740         * mono-config.c:
10741         * monosn.c:
10742         * reflection.c:
10743         * socket-io.c: warning cleanups
10744
10745 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
10746
10747         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
10748         function. works like remoting invoke, but does a check for the Proxy first.
10749
10750 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
10751
10752         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
10753
10754 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
10755
10756         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
10757         array of pointers.
10758         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
10759         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
10760
10761         * object.c (mono_store_remote_field_new): used by the new jit
10762         instead of mono_store_remote_field
10763         (mono_load_remote_field_new): used by the new jit
10764         instead of mono_load_remote_field
10765
10766 2003-02-05  Patrik Torstensson
10767
10768         * appdomain.c: changed unload to take the domain id instead
10769         of domain
10770         
10771         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
10772
10773
10774 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10775
10776         * appdomain.c: don't look for assemblies in ApplicationBase if
10777         PrivateBinPathProbe is set.
10778
10779 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10780
10781         * object.c: make the first argument in main_args contain the absolute
10782         path to the assembly. Fixes bug #37511.
10783
10784 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10785
10786         * icall.c: get correct UTC offset for countries not using daylight
10787         time saving. Fixes bug #30030.
10788
10789 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10790
10791         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
10792         and 1 are the family).
10793
10794 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
10795
10796         * icall.c (ves_icall_InternalExecute): removed wrong assertion
10797
10798         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
10799
10800 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
10801
10802         * reflection.c: added support for SignatureHelper tokens, which is
10803         needed by the Calli opcode.
10804
10805         * reflection.h: track changes to SignatureHelper class.
10806
10807         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
10808
10809 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10810
10811         * appdomain.c: fixed loading assemblies from PrivateBinPath.
10812
10813 2003-02-03  Patrik Torstensson
10814         * appdomain.[c|h], domain.c : 
10815          - Added support for getting a domain via domain id
10816          - Support for setting and getting domain from System.AppDomain 
10817            (used in cross appdomain channel)
10818          - Added support for get/set for a MonoAppContext on a thread 
10819            (Context class in System.Runtime.Remoting.Contexts),
10820          - Removed hack in Get/SetData and ExecuteAssembly.
10821         
10822         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
10823         the managed world to get control when a proxy is created.
10824
10825         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
10826         
10827 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
10828
10829         * icall.c
10830         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10831         Populate the codebase field as well.
10832
10833 2003-02-02  Martin Baulig  <martin@ximian.com>
10834
10835         * debug-mono-symfile.c
10836         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
10837         (mono_debug_symfile_add_method): Allow interncalls.
10838
10839 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10840
10841         * icall.c: throw parse exception if strtod fails or the string is empty.
10842
10843 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
10844
10845         * marshal.c: handle object type separately from defined
10846         class types.
10847
10848 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
10849
10850         * marshal.c: handle NATIVE_LPSTR for strings when it's
10851         explicitly specified.
10852
10853 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
10854
10855         * reflection.c, reflection.h, icall.c: setup the reflection
10856         handle cache for ModuleBuilders and AssemblyBuilders.
10857
10858 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
10859
10860         * reflection.c (reflection_methodbuilder_to_mono_method): set
10861         pinvoke flag
10862
10863 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10864
10865         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
10866
10867 2003-01-29  Dick Porter  <dick@ximian.com>
10868
10869         * threads.c: No need for the fake_thread kludge now that Thread
10870         doesn't run a class constructor
10871         
10872 2003-01-29  Dick Porter  <dick@ximian.com>
10873
10874         * threads.c: Use g_direct_hash instead of the rather bogus
10875         g_int_hash
10876
10877 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
10878
10879         * marshal.c (mono_marshal_get_native_wrapper): add check for null
10880         (fix pinvoke12.exe)
10881         (mono_marshal_get_struct_to_ptr): generate valid IL code
10882         (mono_marshal_get_ptr_to_struct): generate valid IL code
10883         (*): correctly set sig->pinvoke, we need to memdup the signature
10884         to do that
10885
10886 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10887
10888         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
10889         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
10890
10891 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
10892
10893         * profiler.c: provide more callers information.
10894
10895 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
10896
10897         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
10898
10899         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
10900
10901         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
10902
10903 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
10904
10905         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
10906         exception instead of going into an infinite loop on dates which it 
10907         can't yet handle.
10908
10909         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
10910         out-of-range exception if needed.
10911
10912         * class.c (mono_class_setup_vtable): allow a virtual method to provide
10913         an implementation for an interface method and to override an inherited
10914         method at the same time. 
10915         Imagine a scenario when a virtual method is used to override a
10916         virtual abstract method in a parent class, and this same method 
10917         provides an implementation for an method inherited from an interface. 
10918         In this case, the interface resolution code will set im->slot, which 
10919         means that the virtual method override pass will skip this method 
10920         which means a pointer to the abstract method inherited from the parent
10921         will remain in the vtable of this non-abstract class.
10922
10923         * class.c: (mono_class_setup_vtable): continue search for a real 
10924         method if only an abstract method is found.     
10925
10926 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
10927
10928         * reflection.c: add size to encoding for ByValStr and ByValArray
10929         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
10930
10931 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
10932
10933         * class.c (mono_class_setup_vtable): pass the override info as an
10934         argument.
10935
10936         * class.c (mono_class_setup_vtable): set the slot of overriding methods
10937         correctly.
10938         
10939         * reflection.c (ensure_runtime_vtable); add support for method 
10940         overrides.
10941         
10942 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
10943
10944         * reflection.c (resolution_scope_from_image): Hack to work to work with
10945         dynamic assemblies.
10946
10947         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
10948         added a 'force_ref' argument to force this function to allways return 
10949         a TypeRef. This is needed by mono_image_get_memberref_token ().
10950         
10951 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
10952
10953         * reflection.c (mono_image_get_type_info): interfaces really don't have
10954         a parent.
10955
10956         * reflection.c (mono_image_basic_init): fill out missing fields of
10957         image structure.
10958
10959         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
10960         dynamic assemblies. This is required so dynamic assemblies show up in
10961         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
10962         Type::GetType() etc. This is consistent with MS behaviour.
10963
10964         * image.c image.h reflection.c: add newly created classes to the name 
10965         cache so mono_class_get () will find them.      
10966
10967 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
10968
10969         First part of changes to get IKVM.NET running under mono.
10970         
10971         * appdomain.h, appdomain.c: added new function 
10972         mono_domain_try_type_resolve() which will emit TypeResolve events. 
10973         This function will call AppDomain::DoTypeResolve to do the actual work.
10974
10975         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
10976         moved existing code dealing with dynamic tokens to a new function 
10977         called mono_reflection_lookup_dynamic_token (). This function will 
10978         raise TypeResolve events when appropriate. Since reflection.c is not 
10979         part of libmetadata, a new hook function called 
10980         mono_lookup_dynamic_token() is added to class.c which will call this.
10981
10982         * assembly.h assembly.c: make the invoke_load_hook function public,
10983         so it can be called for dynamic assemblies.
10984
10985         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
10986
10987         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
10988         type isn't found.
10989
10990         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
10991         MonoGHashTable, since it contains pointers to objects which the GC 
10992         needs to track.
10993
10994         * assembly.c (search_loaded): remove unused variable.
10995         
10996 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
10997
10998         * object.c: fixed issue exposed by gcc-generated IL programs
10999         that use RVA data for pointers.
11000
11001 2003-01-25  Martin Baulig  <martin@ximian.com>
11002
11003         * threads.c (start_wrapper): Moved the initialization of
11004         `start_func' above the mono_new_thread_init() call to which we
11005         pass it as argument.
11006
11007 2003-01-24  Martin Baulig  <martin@ximian.com>
11008
11009         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
11010         the MonoThread pointer.
11011
11012 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
11013
11014         * icall.c: Rename `PowImpl' to Pow.
11015
11016 2003-01-23  Dick Porter  <dick@ximian.com>
11017
11018         * threads.c (start_wrapper): Create a Thread object if needed, so
11019         the Main() thread can do the class initialisation in a subthread
11020         that has been set up to allow managed code execution.
11021
11022         Pass the thread ID instead of the MonoThread pointer to the thread
11023         start and attach callbacks.  This change is required, because the
11024         jit thread start callback must be called _before_ the Thread
11025         object can be created.
11026         
11027         (mono_thread_init): Removed much object creation code that is no
11028         longer needed.  No managed code is called from here now.
11029
11030         * object.c (mono_runtime_exec_managed_code): Create a subthread
11031         for Main, and call back to the runtime to use it.
11032         Set the exit code when Main exits.
11033
11034         * gc.c: Make sure domain finalisation happens in a subthread.
11035         Re-enable threaded GC, fixing bug 31333 (again).
11036
11037         * environment.c: System.Environment internall calls (so far just
11038         ExitCode is here, the others are still in icall.c)
11039
11040         * appdomain.c (mono_runtime_cleanup): All threads running managed
11041         code should have finished before mono_runtime_cleanup() is
11042         reached, so no need to clean up threads.
11043
11044 2003-01-22  Martin Baulig  <martin@ximian.com>
11045
11046         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
11047         `gpointer func' arguments.      
11048         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
11049         but added `MonoThread *thread' argument.
11050         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
11051
11052         * threads.c (mono_new_thread_init): Added `gpointer func' argument
11053         and pass it to the mono_thread_start_cb callback.
11054         (mono_install_thread_callbacks): New public function to install a
11055         set of callbacks which are set by the debugger.
11056         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
11057
11058 2003-01-22  Martin Baulig  <martin@ximian.com>
11059
11060         * Makefile.am: Install debug-mono-symfile.h.
11061
11062 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
11063
11064         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
11065
11066 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
11067
11068         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
11069         * class.c (mono_ptr_class_get): correctly set access levels of pointers
11070         (mono_array_class_get): correctly set access levels of arrays
11071
11072 2003-01-20      Patrik Torstensson
11073         * image.h (MonoAssemblyName): changed major, minor, build, revision
11074         from signed to unsigned.
11075
11076 2003-01-20  sean kasun <skasun@azstarnet.com>
11077
11078         * reflection.c (load_cattr_value): Now this handles
11079         MONO_TYPE_SZARRAY.  Fixes bug #35629
11080
11081 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
11082
11083         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
11084         integer value
11085
11086 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11087
11088         * decimal.c: fixed bug #26056.
11089
11090 2003-01-17  Martin Baulig  <martin@ximian.com>
11091
11092         * gc.c: Raise an ExecutionEngineException instead of using g_error().
11093
11094 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11095
11096         * exception.[ch]:
11097         (mono_get_exception_type_initialization): new function.
11098
11099         * object.c: throw a TypeInitializationException when an exception is
11100         thrown invoking the class constructor.
11101
11102 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11103
11104         * reflection.c: fixed attribute reading.
11105
11106 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11107
11108         * icall.c:
11109         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
11110         provided, look for the type in the calling assembly and then in
11111         mscorlib; if the assembly name is provided, only try that one.
11112
11113 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
11114
11115         * object.c: register the vtable before there is a chance it's
11116         queried again recursively.
11117
11118 2003-01-13  Duncan Mak  <duncan@ximian.com>
11119
11120         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
11121         gc-internal.h. 
11122         
11123 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
11124
11125         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
11126
11127 2003-01-11  Martin Baulig  <martin@ximian.com>
11128
11129         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
11130         this to 20 for the release.
11131
11132 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
11133
11134         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
11135
11136         * loader.c (mono_method_get_marshal_info): bug fix
11137
11138         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
11139         structures with explicit layout
11140
11141 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11142
11143         * profiler.c: made the output more readable (and sorted). 
11144         Added caller information for the allocation profiler.
11145
11146 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
11147
11148         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
11149
11150 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11151
11152         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
11153         to get value types.
11154         
11155 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
11156
11157         * object.c, profiler.h, profiler.c, profiler-private.h:
11158         Added object allocation profiler.
11159
11160 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
11161
11162         * reflection.h, reflection.c: handle global methods.
11163         Compress blob entries.
11164
11165 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
11166
11167         * marshal.c: fix compilation.
11168
11169 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
11170
11171         * loader.c (mono_method_get_marshal_info): impl.
11172
11173         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
11174
11175 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11176
11177         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
11178         for reference types.
11179
11180 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
11181
11182         * loader.c: fixed off by one error in loaded parameter names.
11183
11184 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
11185
11186         * marshal.c (mono_marshal_get_icall_wrapper): like
11187         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
11188         instead of a MonoMethod.
11189
11190 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11191
11192         * decimal.c: fixed bug #36537.
11193
11194 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
11195
11196         * marshal.c: throw a missing method exception if a
11197         P/Invoke method is not found.
11198
11199 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11200
11201         * icall.c: allow a null this for constructors.
11202
11203 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
11204
11205         * icall.c: raise the proper exceptions if the arguments to the
11206         internal Invoke are incorrect.
11207
11208 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
11209
11210         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
11211
11212 2003-01-03  Martin Baulig  <martin@ximian.com>
11213
11214         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11215
11216 2002-12-31  Martin Baulig  <martin@ximian.com>
11217
11218         * debug-mono-symfile.c: Completely rewrote the type section.
11219         Instead of using individual malloc()ed fields, we use one big
11220         continuous memory area and offsets into this area.
11221         See the comments in the source code for details.
11222
11223 2002-12-30  Martin Baulig  <martin@ximian.com>
11224
11225         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
11226
11227 2002-12-30  Martin Baulig  <martin@ximian.com>
11228
11229         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
11230         line number table in this data blob instead of using an external
11231         pointer.
11232
11233 2002-12-28  Martin Baulig  <martin@ximian.com>
11234
11235         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11236
11237 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
11238
11239         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
11240         as a boxed return type.
11241
11242 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
11243
11244         * appdomain.c
11245         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
11246         g_build_filename to properly get separators on the filename created.
11247
11248         * object.h: Small change, introduce MonoMarshalByRefObject to
11249         track the layout of that structure in the C# universe as we make
11250         changes there.
11251
11252 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
11253
11254         * object.c: removed assert to allow static fields on interfaces.
11255         * loader.c: a TypeSpec may be used for any type, not just arrays.
11256
11257 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11258
11259         * class.c, class.h: added mono_class_array_element_size ().
11260         Ignore static methods in interfaces.
11261
11262 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11263
11264         * threads.c: fixed the build under cygwin.
11265
11266 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
11267
11268         * reflection.c: handle nullref constants. Allocate keys for
11269         reflection handles with the GC.
11270
11271 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11272
11273         * threads.c, threads.h: added mono_thread_get_abort_signal()
11274         to get a suitable signal for thread abort.
11275
11276 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11277
11278         * metadata.c: fix handling of ExportedType table.
11279
11280 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11281
11282         * icall.c: added WriteWindowsDebugString internal call.
11283
11284 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11285
11286         * reflection.h: added fields to match C# implementation.
11287
11288 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11289
11290         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
11291
11292 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
11293
11294         * gc.h, gc-internal.h: Rename header for GC internal calls to
11295         gc-internal.h from gc.h as to not clash with Boehm GC having its
11296         header installed as <gc.h> in outside include paths.
11297         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
11298         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
11299
11300 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11301
11302         * icall.c: assign minor, build and revision in FillName.
11303
11304 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
11305
11306         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
11307         Added support for running code generated by Reflection.Emit.
11308
11309 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11310
11311         * appdomain.c: check for NULL argument in LoadFrom.
11312
11313 2002-12-10  Dick Porter  <dick@ximian.com>
11314
11315         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
11316
11317 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11318
11319         * appdomain.c: fix buglet when building exe file name.  Handle full
11320         assembly name (needed after latest changes to AssemblyName).
11321         * image.c:
11322         (mono_image_close): free some hashtables.
11323
11324 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
11325
11326         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
11327         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
11328         on some systems (redhat 7.3) 
11329
11330 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
11331
11332         * threads.c: delete the critical section of a sync block,
11333         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
11334
11335 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
11336
11337         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
11338
11339 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11340
11341         * appdomain.[ch]: handle the assembly preload event to try loading the
11342         assemblies using the paths we have in the current domain.
11343
11344         * assembly.[ch]: created an assembly preload hook that is called to try
11345         loading the assembly by other means that the ones provided here.
11346
11347         * domain.c: initialize the domain search path.
11348
11349         From now on, assemblies (TODO: except corlib and System) are loaded
11350         according to these rules when using mono_assembly_load ():
11351
11352                 1. It tries to load the assembly from the ApplicationBase
11353                 of the current domain appending .dll and .exe (TODO: have to
11354                 try loading from name/name.dll and name/name.exe).
11355
11356                 2. It tries the search path specified in PrivateBinPath for the
11357                 current domain (if any).
11358
11359                 3. Previous behavior.
11360
11361 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
11362
11363         * icall.c: implemented GetInterfaceMap() related icall.
11364         * domain.c, loader.h: load MethodInfo in mono_defaults.
11365
11366 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11367
11368         * gc.c: disable the finalizer thread for now, untill all the issues
11369         with it are resolved.
11370
11371 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11372
11373         * string-icalls.c: handle embedded nulls in string ctor when the
11374         length is specified.
11375
11376 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11377
11378         * class.c: look for explicit interface implementation in parent
11379         classes, too.
11380
11381 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
11382
11383         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
11384
11385 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
11386
11387         * gc.c: protect handles with a critical section.
11388
11389 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11390
11391         * icall.c:
11392         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
11393         parameters. If no assembly specified, try getting the type from all
11394         the assemblies in the current domain, else, load the assembly and get
11395         the type from it.
11396
11397 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11398
11399         * marshal.c: applied patch from Aleksey Demakov that fixes
11400         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
11401
11402 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11403
11404         * icall.c: fixed get_location.
11405
11406 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
11407
11408         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
11409         declarations to make it work with older gcc. 
11410
11411         * loader.c (mono_get_method): set signature->pinvoke for native calls
11412
11413 2002-11-20  Dick Porter  <dick@ximian.com>
11414
11415         * threads.c (mono_thread_init): Set the main thread's handle
11416
11417 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11418
11419         * gc.c: allow compilation without GC support. Changed to match the
11420         mono coding style.
11421
11422 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11423
11424         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
11425
11426 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
11427
11428         * reflection.c: set a public key token on the core assemblies.
11429
11430 2002-11-18  Dick Porter  <dick@ximian.com>
11431
11432         * threads.c: Split out some thread initialisation so that other
11433         files can set the start callback function.
11434
11435         * gc.c: Run finalisers in a separate thread, to avoid stack
11436         overflow.  Fixes bug 31333.
11437
11438         * appdomain.c: Set up GC finalisation thread.
11439
11440         * reflection.c: 
11441         * object.c: 
11442         * domain.c: Use gc.h macros for GC_malloc
11443         
11444 2002-11-15  Dick Porter  <dick@ximian.com>
11445
11446         * threadpool.c: 
11447         * threads.c:
11448         * appdomain.c: Removed mono_runtime_init_with_attach(),
11449         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
11450         merging the extra parameter with the existing function.  Removed
11451         unneeded code in mono_thread_attach().
11452
11453 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
11454
11455         * image.c (mono_image_loaded_by_guid): a method to get loaded
11456         images by guid. 
11457         (load_metadata_ptrs): we store the guid as string.
11458
11459 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
11460
11461         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
11462
11463         * metadata.c (mono_guid_to_string): imported method form Zoltan
11464         Varga (slightly modified)
11465
11466         * assembly.c (mono_assembly_open): load precompiled code
11467
11468         * loader.h (MonoMethod): we store the method token for use in the
11469         aot compiler. 
11470
11471 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11472
11473         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
11474         the hook function called when an assembly is loaded.
11475         
11476         * domain.c: Modified file.
11477         (mono_domain_assembly_load): removed hash table insertion of assemblies.
11478
11479         Fixes bug #33196.
11480
11481 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
11482
11483         * reflection.c: Map PEFileKind to the value expected by the WinNT
11484         image loader. 
11485
11486 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11487
11488         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
11489         Read until the buffer is filled completely.
11490
11491 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11492
11493         * icall.c: implemented MonoType.InternalGetEvent ().
11494
11495 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11496
11497         * appdomain.c: implemented InitAppDomainSetup. Delayed
11498         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
11499         the entry_assembly.
11500
11501         * assembly.c: base_dir is now an absolute path ending with
11502         G_DIR_SEPARATOR.
11503
11504         * icall.c: modified get_location according to the above changes.
11505
11506         * object.c: init AppDomain.SetupInformation for the default domain after
11507         we have the entry assembly.
11508
11509         * domain.c: when unloading a domain, setup = NULL.
11510
11511 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
11512
11513         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
11514
11515 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
11516
11517         * object.h, object.c: introduced mono_object_get_virtual_method ()
11518         to lookup the method invoked on an object when a callvirt is done on
11519         a method.
11520         * icall.c: make MethodInfo::Invoke() always do a virtual call.
11521
11522 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11523
11524         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
11525         current domain when loaded an assembly and failed to load it.
11526
11527         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
11528
11529 2002-10-31  Dick Porter  <dick@ximian.com>
11530
11531         * icall.c: 
11532         * file-io.h: 
11533         * file-io.c: Return the error status in a parameter, as the
11534         GetLastError() value has long since been blown away if we try and
11535         look it up in a subsequent internal call invocation.  Delete the
11536         GetLastError() internal call, because it's useless.
11537
11538 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
11539
11540         * class.[ch]: added cast_class to fix bug 29517
11541
11542 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
11543
11544         * marshal.c: create valid IL code in the filter clause:
11545         the new JIT is less forgiving:-)
11546
11547 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11548
11549         * icall.c: removed get_property internal call.
11550
11551 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
11552
11553         * appdomain.h domain.c: Added an ID to appdomains.
11554         
11555         * threads.c threads.h icall.c: Implement icall
11556         Thread:GetDomainID(), and remove unused icall 
11557         CurrentThreadDomain_internal.
11558
11559 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11560
11561         * icall.c: Don't recurse through the base types in GetConstructor.
11562         Fixes bug #32063. 
11563
11564 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
11565
11566         * mempool.h, mempool.c: added mono_mempool_empty() and
11567         mono_mempool_stats().
11568
11569 2002-10-23  Dick Porter  <dick@ximian.com>
11570
11571         * file-io.c: 
11572         * file-io.h: 
11573         * icall.c: Added MonoIO.GetFileType internal call
11574
11575 2002-10-17  Dick Porter  <dick@ximian.com>
11576
11577         * appdomain.c (mono_runtime_cleanup): Don't signal the async
11578         delegate semaphore before waiting for all threads to finish,
11579         because new threads can also call async delegates.  Fixes bug
11580         32004.
11581
11582         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
11583         of 3 seconds, in case another async job is queued.  (This part is
11584         needed because the bug fix reintroduced the 3s exit lag.)  This
11585         makes the mono_runtime_shutdown flag superfluous.
11586
11587 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11588
11589         * reflection.c: include ehader size in method section headers.
11590         Really check for suplicated modules entries.
11591
11592 2002-10-17  Martin Baulig  <martin@gnome.org>
11593
11594         * debug-mono-symfile.c: Added back support for locals.
11595
11596 2002-10-14  Martin Baulig  <martin@gnome.org>
11597
11598         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
11599         MONO_TYPE_VOID.
11600
11601 2002-10-14  Martin Baulig  <martin@gnome.org>
11602
11603         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
11604         mono_class_get() instead of looking in the class cache. 
11605
11606 2002-10-13  Martin Baulig  <martin@gnome.org>
11607
11608         * debug-mono-symfile.c: Set version number to 28, include the
11609         signature in method names.
11610
11611 2002-10-13  Martin Baulig  <martin@gnome.org>
11612
11613         * debug-mono-symfile.h: Set version number to 27.
11614
11615 2002-10-11  Martin Baulig  <martin@gnome.org>
11616
11617         * gc.c: Don't register/unregister NULL pointers as disappearing links.
11618
11619 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11620
11621         * metadata.c, metadata.h: added helper function to allocate signatures.
11622
11623 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11624
11625         * icall.c: added internal call to get the location of machine.config.
11626
11627 2002-10-08  Martin Baulig  <martin@gnome.org>
11628
11629         * debug-mono-symfile.c: Ignore classes with a pending init for the
11630         moment.
11631
11632 2002-10-03  Dick Porter  <dick@ximian.com>
11633
11634         * threads.c: Freebsd pthread_t is a pointer
11635
11636 2002-10-03  Dick Porter  <dick@ximian.com>
11637
11638         * socket-io.c: Implemented GetHostName_internal
11639
11640 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11641
11642         * mono-config.c:
11643         (mono_config_parse_file): don't leak the text.
11644
11645 2002-10-02  Martin Baulig  <martin@gnome.org>
11646
11647         * debug-mono-symfile.c: Added support for methods.
11648
11649 2002-10-01  Martin Baulig  <martin@gnome.org>
11650
11651         * debug-mono-symfile.c: Don't emit methods and line numbers for
11652         the dynamic symbol file, just write the type table.  We can easily
11653         have an external helper program which creates a symbol file for an
11654         IL file.        
11655
11656 2002-10-01  Dick Porter  <dick@ximian.com>
11657
11658         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
11659         Only add the handle to the cleanup array when we're about to
11660         launch the thread.  Bug 31425 deadlocked when the test was run on
11661         mono under w32.
11662
11663 2002-10-01  Martin Baulig  <martin@gnome.org>
11664
11665         * debug-mono-symfile.c: Added support for properties.
11666
11667 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11668
11669         * reflection.c: unaligned store fix from Mark Crichton
11670         <crichton@gimp.org>.
11671
11672 2002-09-27  Martin Baulig  <martin@gnome.org>
11673
11674         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
11675         New interncall.
11676
11677 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11678
11679         * assembly.h, assembly.c: use a sane API to hook into the assembly
11680         loading process instead of a useless special-purpouse hack
11681         (ngen needs a hook, too, for example).
11682
11683 2002-09-27  Dick Porter  <dick@ximian.com>
11684
11685         * threads.c (mono_thread_init): Call GetCurrentProcess() so
11686         io-layer can set up some process handle info.  Not needed on w32,
11687         but doesn't hurt either.
11688
11689         * process.c: Pass the program name in the second parameter to
11690         CreateProcess, so the path is searched.  Include the working
11691         directory. Implemented process name, process enumeration, and some
11692         process detail internal calls.
11693         
11694         * icall.c: Added internal calls for process lookup, and some
11695         process details
11696
11697 2002-09-26  Martin Baulig  <martin@gnome.org>
11698
11699         * assembly.c (mono_install_open_assembly_hook): New global
11700         function to install a function to be invoked each time a new
11701         assembly is loaded.
11702         (mono_assembly_open): Run this callback function if set.
11703
11704         * debug-mono-symfile.c: Put back line numbers for the dynamic
11705         symbol file and also record the .il file as source file.  This
11706         allows us to install the temporary symbol file as `file.dbg' just
11707         like a compiler-generated one.
11708
11709 2002-09-26  Nick Zigarovich <nick@chemlab.org>
11710
11711         * Corrected typo in gc.c (BOHEM vs BOEHM).
11712
11713 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11714
11715         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
11716         GetProperties. Also avoid calling g_slist_length in GetProperties and
11717         GetMethods.
11718
11719 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11720
11721         * reflection.c: avoid unaligned stores (bug spotted by
11722         Mark Crichton  <crichton@gimp.org>).
11723
11724 2002-09-25  Martin Baulig  <martin@gnome.org>
11725
11726         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
11727         instead of guint64 for addresses and added prologue/epilogue info.
11728
11729 2002-09-25  Martin Baulig  <martin@gnome.org>
11730
11731         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
11732         store line number info.  For the dynamic symbol file, we only need
11733         to provide the JIT generated dynamic line number info for the dynamic
11734         symbol file.
11735
11736 2002-09-25  Martin Baulig  <martin@gnome.org>
11737
11738         * debug-mono-symfile.h: Incremented version number.
11739
11740 2002-09-24  Martin Baulig  <martin@gnome.org>
11741
11742         * class.c (mono_debugger_class_init_func): New global function
11743         pointer variable.
11744         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
11745         call it.
11746
11747         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
11748         function.  This is called via the mono_debugger_class_init_func
11749         hook to add all types to the dynamic type table.
11750         (ves_icall_MonoDebugger_GetType): New interncall to get a class
11751         from its metadata token.
11752
11753         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
11754         New interncall for the debugger.
11755
11756 2002-09-24  Nick Drochak <ndrochak@gol.com>
11757
11758         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
11759         before using it in case it is null.
11760         
11761 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11762
11763         * metadata.c: allow custom modifiers in local var signatures
11764         (bug spotted by Zoltan Varga).
11765
11766 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11767
11768         * class.c: deal with the <Module> class that may have a NULL vtable.
11769         Eliminate warnings.
11770
11771 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11772
11773         * image.c, image.h: more strong name helpers.
11774         * monosn.c: more work: convert pem keys to cryptoapi format.
11775
11776 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11777
11778         * string-icalls.c: speedup IndexOf.
11779
11780 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11781
11782         * icall.c: updates from Zoltan.2.Varga@nokia.com.
11783
11784 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
11785
11786         * icall.c: cleanup: use mono_object_domain ().
11787
11788 2002-09-23  Martin Baulig  <martin@gnome.org>
11789
11790         * debug-mono-symfile.c: Improved type support.
11791
11792 2002-09-22  Martin Baulig  <martin@gnome.org>
11793
11794         * debug-mono-symfile.c: Added support for reference types and strings.
11795
11796 2002-09-22  Martin Baulig  <martin@gnome.org>
11797
11798         * debug-mono-symfile.c: Started to work on the type table.
11799
11800 2002-09-21  Martin Baulig  <martin@gnome.org>
11801
11802         * debug-mono-symfile.c: Largely reworked the symbol table format.
11803         The symbol table is now incrementally updated each time a new
11804         method is added.  We're now also using our own magic and version
11805         so that you don't need to recompile all your classes if the
11806         dynamic table changes.
11807         (mono_debug_update_mono_symbol_file): Removed.
11808         (mono_debug_symfile_add_method): New function to add a method.
11809
11810 2002-09-21  Martin Baulig  <martin@gnome.org>
11811
11812         * icall.c
11813         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
11814         New interncall.
11815
11816         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
11817         New interncall to get a method from its metadata token.
11818
11819 2002-09-21  Martin Baulig  <martin@gnome.org>
11820
11821         * debug-mono-symfile.c: Create type table.
11822
11823 2002-09-20  Martin Baulig  <martin@gnome.org>
11824
11825         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
11826
11827 2002-09-20  Martin Baulig  <martin@gnome.org>
11828
11829         * debug-mono-symfile.c: Provide information about params and locals.
11830
11831 2002-09-20  Martin Baulig  <martin@gnome.org>
11832
11833         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
11834         New interncall.
11835
11836         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
11837         interncall to get a method from its metadata token.
11838
11839 2002-09-20  Martin Baulig  <martin@gnome.org>
11840
11841         * debug-mono-symfile.c: Added a few checks for method->header
11842         being non-NULL.  This should never happen, but for the moment
11843         let's use a g_warning() rather than a g_assert().
11844
11845 2002-09-19  Mark Crichton  <crichton@gimp.org>
11846
11847         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
11848         even if support for it isn't present.  Added an #ifdef to fix this.
11849
11850         * socket-io.c: Added checks back for Solaris support.
11851
11852 2002-09-19  Martin Baulig  <martin@gnome.org>
11853
11854         * debug-mono-symfile.c (read_string, write_string): Reflect latest
11855         changes in the symbol file format.
11856
11857 2002-09-18  Martin Baulig  <martin@gnome.org>
11858
11859         * debug-mono-symfile.c: Set version number to 21.
11860
11861 2002-09-18  Dick Porter  <dick@ximian.com>
11862
11863         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
11864         on netbsd.  Fixes bug 30051.
11865
11866 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11867
11868         * reflection.c:
11869         (set_version_from_string): little fix.
11870
11871 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11872
11873         * monosn.c, Makefile.am: added strong name utility.
11874         * reflection.h, reflection.c: implemented delayed signing,
11875         locale, version and hash id assembly attributes.
11876
11877 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11878
11879         * loader.c, metadata.c: load param attributes in signatures.
11880
11881 2002-09-16  Martin Baulig  <martin@gnome.org>
11882
11883         * debug-mono-symfile.c: Added string table with all method names.
11884
11885 2002-09-14  Martin Baulig  <martin@gnome.org>
11886
11887         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
11888         fast method lookup.
11889
11890 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11891
11892         * reflection.c: record the public key token of referenced assemblies.
11893
11894 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11895
11896         * image.c, image.h: added functions to get the strong name and the
11897         public key of an assembly.
11898         * pedump.c: use them.
11899
11900 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
11901
11902         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
11903
11904 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
11905
11906         * marshal.c (mono_marshal_get_managed_wrapper): Added
11907         MONO_TYPE_BOOLEAN 
11908
11909 2002-09-11  Martin Baulig  <martin@gnome.org>
11910
11911         * gc.c: Call GC_unregister_disappearing_link() on all links when
11912         finalizing them, this is necessary to aviod a crash in boehm's
11913         finalize handler.
11914
11915 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11916
11917         * gc.c: handle GetTarget for finalized objects spotted and fixed by
11918         nick@chemlab.org.
11919
11920 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
11921
11922         * icall.c: implemented MonoType::Module.
11923         * reflection.c, reflection.h: mono_module_get_object () from
11924         Tomi Pakarinen <tomi.pakarinen@welho.com>.
11925
11926 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11927
11928         * icall.c: ignore overridden methods in GetMethods ().
11929         Fix for FieldInfo::SetValue().
11930         * object.c: handle float/double in runtime invoke.
11931
11932 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11933
11934         * object.c: allow a constructor to be called again on an object.
11935
11936 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11937
11938         * class.h, class.c: move field layout code to it's own function and
11939         export it. Get an interface id earlier. Move fields in MonoClass
11940         so they are more cache friendly and align the bitfields.
11941         * loader.c: temporary handle get_param_names() for a runtime method.
11942         * reflection.c, reflection.h: more code to handle runtime creation of
11943         types.
11944
11945 2002-09-09  Martin Baulig  <martin@gnome.org>
11946
11947         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
11948         signature with the pinvoke field being set for the actual call.
11949
11950 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11951
11952         * icall.c: removed some unused icalls. Start of map of glib charsets
11953         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
11954
11955 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11956
11957         * debug-helpers.c: break infinite loop (found and fixed by
11958         Holger Arnold <harnold@gmx.de>).
11959
11960 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11961
11962         * icall.c: target may be null in create_delegate.
11963
11964 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11965
11966         * marshal.c: handle a boolean return type.
11967
11968 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11969
11970         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
11971
11972 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11973
11974         * gc.c: fix weakreferences.
11975
11976 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
11977
11978         * icall.c: added icall to get default codepage.
11979
11980 2002-09-03  Dick Porter  <dick@ximian.com>
11981
11982         * threads.h: 
11983         * threads.c: Use MonoThread instead of MonoObject where
11984         apropriate.
11985
11986         Store running thread objects in a hash table, so that we have all
11987         the info to hand when waiting for them to finish
11988         (means we don't need OpenThread() any more, so mingw builds should
11989         be fully functional again.)
11990
11991         * verify.c:
11992         * object.h: Added thread ID to MonoThread
11993
11994 2002-09-03  Martin Baulig  <martin@gnome.org>
11995
11996         * icall.c (System.Reflection.Assembly::get_location): New interncall.
11997
11998 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11999
12000         * icall.c: fixed leak in get_temp_path. Thanks lupus.
12001
12002 2002-09-03  Martin Baulig  <martin@gnome.org>
12003
12004         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
12005         argument to store the end address of the disassembled instruction.
12006
12007         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
12008         here from debug-symfile.h.
12009         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
12010         JIT into this struct.
12011         (MonoSymbolFile): Added `char *image_file' field.
12012         (MonoDebugGetMethodFunc): Removed.
12013         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
12014         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
12015         (mono_debug_find_method): New method.
12016
12017         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
12018         create a full symbol file.
12019         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
12020         and static symbol files.
12021         (mono_debug_find_method): The symbol file keeps an internal method hash,
12022         call this to get a MonoDebugMethodInfo from a MonoMethod.
12023
12024         * debug-symfile.[ch]: Removed.
12025
12026 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
12027
12028         * image.c (do_mono_image_open): Remove linker version check.
12029
12030 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
12031
12032         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
12033         wrappers for instance methods.
12034         
12035 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12036
12037         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
12038
12039 2002-08-28  Dick Porter  <dick@ximian.com>
12040
12041         * Makefile.am: Export HOST_CC for w32 builds
12042
12043 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12044
12045         * file-io.c process.c: MonoString are null terminated, no
12046         need for mono_string_to_utf16() anymore.
12047
12048 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12049
12050         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
12051
12052 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
12053
12054         * icall.c, reflection.h: speedup System.MonoType.
12055
12056 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
12057
12058         * reflection.c: allow null as the value of a string argument in
12059         custom attributes constructors.
12060
12061 2002-08-27  Martin Baulig  <martin@gnome.org>
12062
12063         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
12064         `trampoline_address' field.
12065
12066 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
12067
12068         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
12069         check (fixes bug #29486) 
12070
12071 2002-08-27  Martin Baulig  <martin@gnome.org>
12072
12073         * debug-mono-symfile.c: Changed the file format in a way that allows us
12074         open it read-only and to use a specially malloced area for all the
12075         dynamic data.  We can now also generate a symbol file on-the-fly if we're
12076         debugging IL code and there is no MCS generated symbol file for it.
12077
12078 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
12079
12080         * object.c: added a define for a good string and array
12081         creation speedup (not enabled by default because we need to deal with
12082         the synch stuff).
12083
12084 2002-08-26  Martin Baulig  <martin@gnome.org>
12085
12086         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
12087         function to create a dynamic symbol file.  This is used by the
12088         debugger to create a symbol file for IL code on-the-fly.
12089
12090 2002-08-26  Martin Baulig  <martin@gnome.org>
12091
12092         * loader.c (mono_lookup_pinvoke_call): Include the error message
12093         from g_module_error() in the error message.
12094
12095 2002-08-24  Martin Baulig  <martin@gnome.org>
12096
12097         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
12098         function to update the symbol file.  The symbol file is mmap()ed
12099         writable, but private.  This allows us to install the symbol file
12100         together with the assembly.
12101
12102 2002-08-24  Martin Baulig  <martin@gnome.org>
12103
12104         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
12105         but they can read the new symbol file format which mcs is now creating.
12106
12107         * debug-symfile.c (mono_debug_find_source_location): Moved to
12108         debug-mono-symfile.c; this is now operating on the new symbol file.
12109
12110 2002-08-23  Martin Baulig  <martin@gnome.org>
12111
12112         * debug-helpers.c (mono_method_desc_from_method): New function to get
12113         a MonoMethodDesc from a MonoMethod.
12114
12115 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12116
12117         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
12118         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
12119
12120 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
12121
12122         * string-icalls.[ch]: make helper methods static.
12123
12124 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12125
12126         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
12127         types to it and to SetValueInternal.
12128
12129         * object.c: Moved handle_enum label to its proper place. This was the
12130         f... bug! ;-)
12131
12132         This time i compiled mcs and gtk-sharp and they both work.
12133
12134 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12135
12136         * icall.c: reverted partially my previous patch until 
12137         object.c:set_value handles enums correcly.
12138
12139 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12140
12141         * icall.c:
12142         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
12143         (ves_icall_System_Environment_get_MachineName): removed warning when
12144         compiling under cygwin.
12145
12146 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12147
12148         * object.c: fixed field_get_value() for reference types.
12149
12150 2002-08-22  Dick Porter  <dick@ximian.com>
12151
12152         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
12153         Don't free a buffer while it's still needed.  Patch from Jonathan
12154         Liger <Jonathan.liger@wanadoo.fr>
12155
12156 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
12157
12158         * icall.c (ves_icall_System_Environment_get_Platform): Add new
12159         internal call.
12160
12161 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
12162
12163         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
12164         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
12165
12166         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
12167         we call unmanaged code which throws exceptions.
12168
12169 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12170
12171         * appdomain.h: added per-domain entry_assembly.
12172         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
12173         arguments.
12174         * icall.c: Assembly::GetEntryAssembly icall.
12175         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
12176         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
12177
12178 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12179
12180         * appdomain.h, gc.c: added mono_domain_finalize ().
12181
12182 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12183
12184         * object.c:
12185         (mono_print_unhandled_exception): changed g_warning by g_printerr
12186         because g_log has a 1024 characters limit (yeah, i got a big stack
12187         trace). Don't print exception name, that should be in ToString 
12188         returned string.
12189
12190 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12191
12192         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
12193         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
12194
12195 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12196
12197         * object.c:
12198         (mono_print_unhandled_exception): after previous commit, i realized
12199         that MS calls ToString on the exception. I changed this function to
12200         do that. This way we get stack_trace for free.
12201
12202 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12203
12204         * object.c:
12205         (mono_print_unhandled_exception): invoke Message property instead of
12206         getting 'message' field from Exception. Don't allocate memory for
12207         'trace' and 'message' if not needed.
12208
12209 2002-08-18  Dick Porter  <dick@ximian.com>
12210
12211         * unicode.c: Fix asserts to match Encoder.cs checks
12212
12213 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12214
12215         * marshal.c: fix unaligned store issue and a few wrong
12216         opcode argument types.
12217
12218 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12219
12220         * icall.c: added GetUninitializedObjectInternal internal call.
12221
12222 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
12223
12224         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
12225         to the right domain.
12226
12227 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
12228
12229         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
12230
12231         * class.c (class_compute_field_layout): set blittable to false for Strings
12232
12233         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
12234
12235 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12236
12237         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
12238         first chunk of code to create types at runtime. Code to
12239         handle ReflectedType/DeclaringType. Make reflection handles
12240         domain specific.
12241
12242 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
12243
12244         * class.c: set correct name in arrays.
12245
12246 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
12247
12248         * appdomain.c (mono_domain_transfer_object): make it work with
12249         valuetypes. bug fixes.
12250
12251 2002-08-12  Dick Porter  <dick@ximian.com>
12252
12253         * object.h: Rename some parameters to avoid c++ keywords (Patch
12254         from Joseph Wenninger <kde@jowenn.at>)
12255
12256 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
12257
12258         * icall.c: added icall to implement Assembly.GetFile*.
12259
12260 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12261
12262         * reflection.h, reflection.c: code to embed managed resources.
12263
12264 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12265
12266         * class.c: move all the type size stuff into
12267         class_compute_field_layout().
12268
12269 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12270
12271         * class.c: ensure enums have always the correct instance size.
12272         * unicode.c: remove wrong assert.
12273
12274 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12275
12276         * assembly.c: fix mem corruption issue.
12277         * image.h, image.c: added mono_image_get_resource () to access
12278         managed resources.
12279         * icall.c: implemented Assembly.EntryPoint property and some
12280         Managed Resources related internalcalls.
12281
12282
12283 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12284
12285         * image.c, image.h: impemented mono_image_get_entry_point ().
12286         * appdomain.c: use mono_image_get_entry_point.
12287
12288 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12289
12290         * reflection.c: support the object type argument when loading
12291         custom attributes.
12292
12293 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
12294
12295         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
12296         String as return type.
12297
12298 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
12299
12300         * reflection.c: fix encoding of named args for custom attrs to match
12301         the ms implementation. Read them back when instantiating custom
12302         attributes.
12303
12304 2002-08-02  Radek Doulik  <rodo@ximian.com>
12305
12306         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
12307         by Dietmar as quick fix
12308         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
12309         16 as stack size, used on more places as quick fix before Dietmar
12310         will fix it properly
12311
12312 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12313
12314         * object.h, object.c: added accessors for fields and properties.
12315
12316 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12317
12318         * class.c, class.h: made mono_class_get_field_from_name ()
12319         loop on parent types.
12320         Added mono_class_get_property_from_name ().
12321
12322 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12323
12324         * class.c, class.h: move the code to setup the type vtable in its own
12325         function so that it can be reused also for types created at runtime.
12326         Eliminate the "class" identifier from the header file.
12327         * reflection.c: setup the vtable for enums so that we can create
12328         objects for use in SetConstant ().
12329
12330 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
12331
12332         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
12333         instead of the delegate itself as this pointer (bug #28383)
12334
12335 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
12336
12337         * marshal.c (mono_marshal_get_managed_wrapper): added return type
12338         conversions.
12339
12340 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12341
12342         * loader.c: don't set the pinvoke bit on icalls.
12343
12344 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
12345
12346         * debug-helpers.c (mono_method_full_name): only print a number to
12347         indicate wrapper type (so that the output is more readable in traces).
12348
12349 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
12350
12351         * class.c (mono_class_init): include method override patch from Paolo
12352
12353 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
12354
12355         * icall.c: fixed GetTypeCode().
12356
12357 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
12358
12359         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
12360         use real delegate invoke function to make it work with multicast
12361         delegates (fix bug# 28291).
12362
12363 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12364
12365         * object.c: load constant strings.
12366
12367 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12368
12369         * reflection.c: no magic numbers.
12370         * tabledefs.h: security action enum.
12371
12372 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12373
12374         * assembly.c: fix possible memory corruption.
12375
12376 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12377
12378         * reflection.h, reflection.c: added support for linking resources.
12379         * verify.c: check we have an updated corlib.
12380
12381 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
12382
12383         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
12384         string arrays.
12385         (mono_marshal_string_array): null terminate unmanaged string arrays.
12386         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
12387
12388 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12389
12390         * icall.c: Type.GetType () can now return also types from the
12391         calling assembly.
12392
12393 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12394
12395         * loader.h, loader.c: stack walking support.
12396         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
12397         GetCallingAssembly.
12398
12399 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
12400
12401         * marshal.c: added optimisations for blittable types 
12402
12403         * class.c (mono_array_class_get): do not set blittable attribute on arrays
12404         (mono_class_setup_mono_type): set blittable attribute for single
12405         and double.
12406
12407         * marshal.c (mono_string_utf8_to_builder): impl.
12408         (mono_string_builder_to_utf8): impl.
12409         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
12410
12411 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
12412
12413         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
12414         (mono_marshal_get_managed_wrapper): impl. byref types
12415
12416 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12417
12418         * icall.c:
12419         (search_method): don't display debug message. 
12420
12421 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
12422
12423         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
12424
12425 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12426
12427         * appdomain.c: set the missing filename when throwing exception.
12428
12429 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
12430
12431         * metadata.c (mono_type_size): code cleanup
12432         (mono_type_stack_size): removed some test code
12433
12434 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
12435
12436         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
12437         mono_get_exception_file_not_found now.
12438
12439         * exception.c (mono_exception_from_name_two_strings): New version
12440         that will call a constructor with two string arguments. 
12441         (mono_get_exception_file_not_found): New helper routine, used to
12442         report file-not-found errors.
12443
12444 2002-07-20  Dick Porter  <dick@ximian.com>
12445
12446         * process.h:
12447         * process.c: Pass file handles to CreateProcess
12448         
12449         * icall.c:
12450         * file-io.h:
12451         * file-io.c: Implemented CreatePipe
12452
12453 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
12454
12455         * metadata.c (mono_get_param_info): set alignment for value types
12456
12457 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12458
12459         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
12460         Constify mono_domain_assembly_open().
12461         * loader.c: handle null namespace in icalls.
12462
12463 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
12464
12465         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
12466         (emit_str_to_ptr_conv): marshal object as structs
12467
12468         * metadata.c (mono_type_to_unmanaged): marshal object as structs
12469
12470         * marshal.c (mono_marshal_get_runtime_invoke): support value types
12471
12472 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
12473
12474         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
12475         (mono_marshal_get_native_wrapper): we an now return value types
12476
12477 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12478
12479         * verify.c: more checks implemented.
12480
12481 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
12482
12483         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
12484         (fix bug #27695)
12485         (mono_marshal_get_native_wrapper): allow byref arguments
12486         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
12487         impl. PtrToStringXXX methods
12488         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
12489         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
12490         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
12491         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
12492         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
12493
12494 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12495
12496         * reflection.c: fix buglet in parsing an assembly name.
12497
12498 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
12499
12500         * marshal.c (emit_ptr_to_str_conv): first impl.
12501
12502 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12503
12504         * object.c, class.h: cache the vtable in the class as suggested by
12505         vargaz@freemail.hu (Zoltan Varga).
12506
12507 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12508
12509         * class.h, loader.c: added mono_field_from_token().
12510         * verify.c: first cut of type checking code.
12511
12512 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
12513
12514         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
12515
12516 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
12517
12518         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
12519         (fix bug #27782)
12520         (mono_marshal_get_remoting_invoke): impl.
12521         (mono_delegate_begin_invoke): impl.
12522         (mono_mb_emit_save_args): impl.
12523         (mono_delegate_end_invoke): impl.
12524         (mono_marshal_get_delegate_begin_invoke):
12525         (mono_marshal_get_delegate_end_invoke):
12526         (mono_marshal_get_delegate_invoke): generate a special name for
12527         those methods (including the signature) and associate them whith
12528         the delegate class. 
12529
12530 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
12531
12532         * reflection.[ch]: 
12533         (mono_reflection_type_from_name): now it has a MonoImage parameter
12534         which is used as the default image to search the type in. If the image
12535         is NULL or getting the type from it fails, it defaults to corlib.
12536
12537         * icall.c: changed 1 call to mono_reflection_type_from_name to match
12538         new parameter.
12539
12540 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12541
12542         * reflection.c: update the parameter table index.
12543
12544 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12545
12546         * domain.c: don't include the mark byte in the string hash.
12547
12548 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12549
12550         * icall.cs: icall for Type.GetTypeCode ().
12551         * verify: a couple of fixes and disabled local initialization checks.
12552
12553 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
12554
12555         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
12556
12557         * debug-helpers.c (mono_method_full_name): print the type of the
12558         runtime wrapper
12559
12560         * metadata.c (mono_signature_hash): a hash function for signatures
12561         (mono_signature_hash): better hash algorithm
12562
12563         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
12564
12565         * debug-helpers.c (mono_method_full_name): this can now generate
12566         method names with signatures
12567
12568         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
12569         method dont have this pointers.
12570
12571 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
12572
12573         * reflection.c: fixup typebuilder tokens.
12574         * image.c: fix buglet.
12575         * marshal.h: remove whitespace.
12576         * metadata.h, metadata.c: reinstate code that was removed.
12577         * verify.c: handle catch directives and fix another couple of bugs.
12578
12579 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
12580
12581         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
12582         (mono_marshal_get_native_wrapper): make it comp. with the old code
12583         (mono_marshal_get_native_wrapper): support boolean
12584         (mono_marshal_get_managed_wrapper): support more types
12585
12586 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
12587
12588         * class.c (class_compute_field_layout): compute class->blittable attribute.
12589
12590 2002-07-09  Dick Porter  <dick@ximian.com>
12591
12592         * threads.c: Make the thread cleaning up cope with threads that
12593         call ExitThread()
12594
12595 2002-07-08  Radek Doulik  <rodo@ximian.com>
12596
12597         * reflection.c (method_encode_code): use non-translated values to
12598         compute finally_start, this fixes exception handling on ppc, yay!
12599
12600         * decimal.h (struct signscale): fix endianess
12601
12602 2002-07-07  Radek Doulik  <rodo@ximian.com>
12603
12604         * reflection.c: swap box_val and not val
12605
12606 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
12607
12608         * reflection.c, reflection.h: handle full assembly info in type name.
12609         Handle Type arguments when loading custom attributes.
12610         * icall.c: updated to use new mono_reflection_type_from_name () method.
12611
12612 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12613
12614         * loader.c:
12615         (method_from_memberref): also print assembly name when method not found.
12616
12617 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12618
12619         * icall.c:
12620         (ves_icall_TypeGetProperties): fixed bug #27473. 
12621
12622 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12623
12624         * reflection.c: display image name and token when cannot find the
12625         .ctor for an attribute.
12626
12627 2002-07-05  Martin Baulig  <martin@gnome.org>
12628
12629         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12630
12631 2002-07-04  Dick Porter  <dick@ximian.com>
12632
12633         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
12634         compile on mingw.  This will cause mingw builds to not wait for
12635         subthreads to terminate after the main thread does.  I've lodged a
12636         bug with the mingw developers for them to wrap OpenThread().
12637
12638 2002-07-03  Dick Porter  <dick@ximian.com>
12639
12640         * threads.c: Store thread IDs instead of handles, because
12641         GetCurrentThread() returns a pseudohandle and therefore stores
12642         useless values.  mono_thread_cleanup() continues checking the
12643         array of threads until it is empty, to cope with subthreads
12644         spawning new threads after the main thread has finished.
12645
12646         * profiler.h:
12647         * profiler.c:
12648         * profiler-private.h: Pass the thread ID to thread profiler
12649         functions, instead of a handle
12650
12651 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12652
12653         * verify.c: fixes to make it more usable.
12654         * pedump.c: added --verify code to verify IL code in an assembly.
12655
12656 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12657
12658         * reflection.c: turn errors into warnings to allow compiling corlib.
12659
12660 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12661
12662         * reflection.c: add special cases to compile corlib.
12663
12664 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12665
12666         * reflection.c: handle properties with only a set method.
12667
12668 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12669
12670         * opcodes.h: add enum with opcodes in opval order.
12671
12672 2002-07-01  Dick Porter  <dick@ximian.com>
12673         
12674         * object.h:
12675         * object.c (mono_runtime_run_main): Removed unneeded argument
12676
12677 2002-06-28  Martin Baulig  <martin@gnome.org>
12678
12679         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12680
12681 2002-06-27  Dick Porter  <dick@ximian.com>
12682
12683         * threads.c: Store the handle in both the parent thread and in the
12684         subthread, to minimise the time between starting a new thread and
12685         storing its ID.
12686
12687 2002-06-26  Dick Porter  <dick@ximian.com>
12688
12689         * appdomain.c (mono_runtime_cleanup): Close the socket library
12690         after all the threads have finished, not before
12691
12692 2002-06-26  Martin Baulig  <martin@gnome.org>
12693
12694         * debug-symfile.c (mono_debug_find_source_location): Added
12695         `guint32 *line_number' argument.  If it's not NULL, store the line number
12696         there and return the file name without the line number.
12697
12698 2002-06-25  Dick Porter  <dick@ximian.com>
12699
12700         * icall.c:
12701         * process.h:
12702         * process.c: Process forking and other support functions
12703
12704 2002-06-25  Dick Porter  <dick@ximian.com>
12705
12706         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
12707         things dont happen when the image is closed.
12708         (mono_image_lookup_resource): Walk the resource section looking
12709         for a particular entry
12710
12711         * cil-coff.h: PE resource section decoding
12712
12713 2002-06-25  Dick Porter  <dick@ximian.com>
12714         
12715         * assembly.h:
12716         * assembly.c: 
12717         (mono_assembly_foreach): Accessor functions to walk the list of
12718         loaded assemblies
12719         (mono_assembly_set_main):
12720         (mono_assembly_get_main): Process methods need to know which
12721         assembly is the "main" one
12722
12723         * object.c (mono_runtime_run_main): Record the main assembly
12724
12725         * debug-helpers.c: Fix typo
12726
12727 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
12728
12729         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
12730         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
12731
12732 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12733
12734         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
12735
12736 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
12737
12738         * image.c (do_mono_image_open): Initialize reference count,
12739         otherwise we leak the MonoImage.
12740
12741 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12742
12743         * reflection.c: small tweak to handle self-hosting.
12744
12745 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12746
12747         * reflection.c: fix type name parse code.
12748
12749 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12750
12751         * reflection.c: break out of the loop.
12752         * image.c: special case corlib.
12753
12754 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12755
12756         * reflection.c: add all the custom attrs at the end to ensure the
12757         ctors have been properly initialized when the attributes are defined
12758         in the current assembly.
12759
12760 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12761
12762         * reflection.c: handle correctly multiple-nested types.
12763
12764 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
12765
12766         * row-indexes.h: fix typos.
12767         * reflection.c: adjust for typos and fix method_def_or_ref
12768         encoding in MethodImpl table.
12769
12770 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12771
12772         * reflection.c: fix entry point patching (thanks Serge!).
12773
12774 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
12775
12776         * verify.c: add check for System.Exception
12777
12778 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12779
12780         * image.c, class.c: minifix for code just c&p'ed.
12781         * reflection.c: warning fix.
12782         * object.h, loader.h, domain.c: load also StringBuilder.
12783
12784 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12785
12786         * marshal.h, marshal.c: some support code to handle complex marshaling.
12787
12788 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12789
12790         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
12791         Better signatures with vtable error dump.
12792
12793 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
12794
12795         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
12796
12797 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
12798
12799         * icall.c (ves_icall_Type_GetField): impl.
12800
12801 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12802
12803         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
12804         to retrieve a marshal description blob for a field or param.
12805
12806 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12807
12808         * reflection.h, reflection.c: change order of nested type emission
12809         to avoid table corruption. The NestedTypes table is sorted.
12810         * icall.c: change order of GetConstructor results to workaround mcs bug.
12811
12812 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12813
12814         * reflection.h, reflection.c: handle field and param marshal
12815         information.
12816
12817 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12818
12819         * icall.c, marshal.c marshal.h: more Marshal class implementation.
12820
12821 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12822
12823         * reflection.c: fix call convention.
12824
12825 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12826
12827         * reflection.h, reflection.c: mono_image_get_memberref_token()
12828         takes a type instead of a class, now. Added
12829         mono_image_get_array_token() to create tokens for the special
12830         multi-dim array methods.
12831
12832 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12833
12834         * assembly.c: handle modules (no assembly table). Split
12835         loading references in its own function.
12836         * class.c: handle moduleref resolution scope.
12837         * image.c, image.h: cache module name in image.
12838
12839 2002-06-07  Martin Baulig  <martin@gnome.org>
12840
12841         * reflection.c (mono_image_get_type_info): Only add a class layout entry
12842         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
12843
12844 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12845
12846         * icall.c: more signature fixes that used uint instead of int.
12847
12848 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12849
12850         * reflection.c: fixed signature of field refs.
12851
12852 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12853
12854         * class.c, reflection.c: handle typerefs of nested types
12855         (both on read and when writing files).
12856
12857 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12858
12859         * icall.c: fix method signatures that tried to workaround the previous
12860         typo, d'oh!
12861
12862 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12863
12864         * debug-helpers.c: fix typo.
12865
12866 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12867
12868         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
12869         rewrote the PE/COFF writing code (our programs are understood by the
12870         ms runtime, now).
12871
12872 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12873
12874         * gc.c, gc.h, icall.c: weakreference support.
12875
12876 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12877
12878         * Makefile.am, mono-config.c: use $(sysconfdir).
12879
12880 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12881
12882         * icall.c: changed default precision of Double.ToString() to 15.
12883         Fixed memory leak. Unified with Single.ToString.
12884
12885 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
12886
12887         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
12888
12889 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12890
12891         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
12892         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
12893         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
12894         and myself.
12895
12896 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12897
12898         * debug-symfile.c, sysmath.c: yet more compilation fixes.
12899
12900 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12901
12902         * reflection.c, socket-io.c: more compilation fixes.
12903
12904 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12905
12906         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
12907         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
12908         unicode.c: warning and compiler compatibility fixes.
12909
12910 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
12911
12912         * class.h, metadata.c: fixed warnings/compilation errors.
12913
12914 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12915
12916         * Makefile.am, mono-config.c, mono-config.h: configuration file
12917         support routines.
12918         * loader.c, loader.h: make Dll mapping configurable at runtime in the
12919         config file. Export methods to insert and lookup mappings.
12920
12921 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12922
12923         * reflection.c: handle types and boxed objects in custom attr
12924         constructors.
12925
12926 2002-05-30  Martin Baulig  <martin@gnome.org>
12927
12928         * debug-symfile.c
12929         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
12930
12931 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
12932
12933         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
12934         to lookup the implmap row for a P/Invoke method.
12935         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
12936         P/Invoke method from the runtime on an as needed basis.
12937
12938 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
12939
12940         * metadata.c (mono_metadata_parse_signature): impl.
12941
12942 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12943
12944         * class.c: handle .pack directive.
12945
12946 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12947
12948         * object.c: initialize static fields with RVA data.
12949
12950 2002-05-25  Martin Baulig  <martin@gnome.org>
12951
12952         * debug-symfile.c
12953         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
12954
12955 2002-05-24  Martin Baulig  <martin@gnome.org>
12956
12957         * debug-symfile.c
12958         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
12959         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
12960         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
12961
12962 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
12963
12964         * object.c: special case string ctros in invoke.
12965         * gc.c: silly whitespace changes.
12966
12967 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
12968
12969         * threadpool.[ch]: impl. a threadpool that can
12970         be used by mint and mono.
12971
12972 2002-05-22  Martin Baulig  <martin@gnome.org>
12973
12974         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
12975         The first argument is now a `MonoReflectionModuleBuilder *', the return
12976         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
12977         `methods' field to get the method builder.  The `token' argument is the
12978         unfixed token.
12979
12980         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
12981         invalid characters instead of g_assert_not_reached()ing.  This seems
12982         to be the behaviour of mscorlib.
12983
12984 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
12985
12986         * object.c (mono_runtime_invoke_array): applied patch from Rachel
12987         Hestilow to fix bug #25104
12988
12989 2002-05-21  Martin Baulig  <martin@gnome.org>
12990
12991         * debug-symfile.c (mono_debug_find_source_location): New function.
12992         Looks up an IL offset in the line number table and returns the source
12993         location as a string.
12994
12995 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12996
12997         * icall.c:
12998         (mono_double_ToStringImpl): changed %f by %g until we have something
12999         better.
13000
13001 2002-05-21  Nick Drochak  <ndrochak@gol.com>
13002
13003         * icall.c : Use different name for Math.Pow's icall.  Needed to check
13004         parameters first in C#.
13005
13006 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13007
13008         * icall.c, reflection.h: added icall to get info about an event.
13009
13010 2002-05-20  Radek Doulik  <rodo@ximian.com>
13011
13012         * object.c (mono_value_box): don't use memcpy for boxing on BIG
13013         endian
13014         (mono_value_box): don't use memcpy for small sizes on
13015         architectures with unaligned access
13016
13017 2002-05-20  Martin Baulig  <martin@gnome.org>
13018
13019         * reflection.c (mono_reflection_setup_internal_class): Don't crash
13020         if `tb->parent == NULL'.
13021         (mono_reflection_create_internal_class): New function.  This is
13022         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
13023         for enum types.
13024
13025         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
13026         New interncall.
13027
13028 2002-05-19  Martin Baulig  <martin@gnome.org>
13029
13030         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
13031         argument to get the length, don't default to the array length.
13032
13033 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
13034
13035         * assembly.c (mono_assembly_setrootdir): New function used to
13036         override the MONO_ASSEMBLIES directory.
13037
13038 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13039
13040         * icall.c: ValueType_GetHashCode() initialize local var.
13041
13042 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13043
13044         * reflection.c: sort custom attributes table.
13045
13046 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13047
13048         * reflection.c: support named args in custom attributes (write support).
13049
13050 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
13051
13052         * reflection.c: fix finally position calculation.
13053
13054 2002-05-15  Radek Doulik  <rodo@ximian.com>
13055
13056         * reflection.c: fixed endianess at many places
13057
13058         * icall.c (ves_icall_InitializeArray): comment out debug msg
13059
13060 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
13061
13062         * object.c (mono_unhandled_exception): new function to handle
13063         unhandled exceptions.
13064         (mono_unhandled_exception): call the UnhandledException event.
13065         (mono_runtime_delegate_invoke): impl.
13066
13067 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
13068
13069         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
13070         returns the RVA, not the direct pointer to the data. Handle the case
13071         when the class size is fixed.
13072
13073 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
13074
13075         * reflection.c: fix some endianess issues.
13076
13077 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
13078
13079         * object.c (mono_runtime_invoke): is now able to catch exceptions.
13080
13081         * threads.c (mono_thread_init): added a callback which is invoked
13082         at thread start.
13083
13084 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13085         
13086         * icall.c: make GetHashCode return non-negative values.
13087
13088 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13089
13090         * object.c, icall.c, gc.c: revert to address-based hashcode.
13091
13092 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
13093
13094         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
13095
13096 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13097
13098         * icall.c, class.c: special case <Module>.
13099
13100 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
13101
13102         * icall.c: fix bug in GetNow().
13103
13104 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
13105
13106         * object.c (mono_runtime_class_init): make sure that we call all
13107         static class constructors.
13108
13109 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13110
13111         * reflection.c: sort methodsemantics table.
13112
13113 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
13114
13115         * reflection.h, reflection.c: honour init locals setting.
13116
13117 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
13118
13119         * icall.c: copied Double ToStringImpl for Single ToStringImpl
13120
13121 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13122
13123         * reflection.c: support ContructorBuilders in attribute blob creation.
13124
13125 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13126
13127         * reflection.c: some changes to build a binary that can be run
13128         directly in windows.
13129
13130 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13131
13132         * loader.c: print a big message when an icall can't be found.
13133
13134 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13135
13136         * string-icalls.c: fix bug 24248.
13137
13138 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
13139
13140         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
13141         icall.c, reflection.h: separate assembly loading by pathname and by
13142         assembly name. Use the MONO_PATH env var to search for assemblies.
13143
13144 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13145
13146         * assembly.c, image.h: add some support for assemblies
13147         with multiple modules.
13148         * class.c, class.h: export mono_class_from_typeref().
13149         * loader.c: remove duplicated code and use mono_class_from_typeref(),
13150         instead.
13151
13152 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13153
13154         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
13155         documentation says (the ECMA one is correct).
13156
13157 2002-05-02  Dick Porter  <dick@ximian.com>
13158
13159         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
13160         Don't name the synchronisation mutex.
13161
13162 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
13163
13164         * rand.c
13165         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
13166         Make the prototypes match.
13167         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
13168         Same.
13169
13170         * icall.c
13171         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
13172         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
13173         all systems have tm.tm_zone, so use strftime() with %Z to print
13174         the timezone abreviation into a temp string.
13175
13176         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
13177         rather than mono_array_addr() on a MonoString on Big Endian
13178         machines.
13179
13180 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
13181
13182         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
13183         fix bug 24041
13184
13185 2002-04-30  Dick Porter  <dick@ximian.com>
13186
13187         * socket-io.c: Cope with SOCKET being an integer rather than a
13188         pointer now.
13189
13190         * threads.c: Added Thread_free_internal, to deal with thread
13191         handle cleanup.  Moved calls to handle_store() and handle_remove()
13192         to start_wrapper(), so each can only be called once.  Allocate
13193         synchronisation blocks with GC_malloc(), and use GC finalisation
13194         to close the handles.
13195
13196         * icall.c: added System.Threading.Thread::Thread_free_internal
13197
13198 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13199
13200         * icall.c: support Environment.Exit, CommandLineArgs().
13201
13202 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13203
13204         * object.c, object.h: added mono_runtime_run_main () and
13205         mono_runtime_get_main_args () for use in System.Environment.
13206
13207 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13208
13209         * gc.c: fix thinko, enable actual finalization since the jit is now
13210         fixed.
13211
13212 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13213
13214         * gc.c, object.c: take into account that an object may be offset wrt the address
13215         returned by GC_malloc().
13216
13217 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
13218
13219         * image.c: handle files without entries in the assembly table (modules).
13220
13221 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
13222
13223         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
13224         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
13225         allowed to be null when it's System.Object class setup.
13226
13227 2002-04-27  Martin Baulig  <martin@gnome.org>
13228
13229         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
13230         if `tb->parent == NULL' rather than crashing.
13231
13232 2002-04-28  Nick Drochak  <ndrochak@gol.com>
13233
13234         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
13235         calling acos() where asin() should have been called.
13236
13237 2002-04-26  Martin Baulig  <martin@gnome.org>
13238
13239         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
13240         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
13241         there's a subdirectory called `System', but we don't want to read that
13242         subdirectory as an assembly.
13243
13244 2002-04-25  Martin Baulig  <martin@gnome.org>
13245
13246         * debug-symfile.c: Reflect latest MonoString changes.
13247
13248 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13249
13250         * rand.c, rand.h: instance method icalls need to have an explicit
13251         this pointer as first argument in the C implementation.
13252
13253 2002-04-25  Nick Drochak <ndrochak@gol.com>
13254
13255         * icall.c: Fix typo in map for GetNonZeroBytes
13256
13257 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13258
13259         * string-icalls.c : String does now passes unit tests without any 
13260         errors, the following changes has been made:
13261         
13262         Implemented replace methods.
13263         Renaming of methods to (try) follow the standard.
13264         Fixed compare ordinal
13265         Made all memory allocated directly to function instead of via icall function.
13266         Small performance fix in is_in_array function
13267                         
13268  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
13269
13270         c (mono_string_Internal_ctor_charp_int_int):
13271         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
13272         sindex < 0, throw ArgumentOutOfRangeException instead of
13273         ArgumentNullException.
13274
13275         Added new check for length == 0, however
13276         I need to make it return String.Empty from the C code.
13277         
13278         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
13279         that calculate the length for us here.
13280         
13281         (mono_string_Internal_ctor_sbytep_int_int): Replaced
13282         mono_string_new_utf16 with mono_string_new, since value is utf8.
13283
13284 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13285
13286         * object.c: register the object for finalization if needed.
13287         Allocate one more char in the string for the terminating 0 char.
13288
13289 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13290
13291         * class.c, class.h, image.c: check if a type implemenst a destructor.
13292         Use the proper key for array class lookups.
13293         * icall.c: register the icalls in the System.GC class.
13294         * gc.c, gc.h: GC-related functions and icalls.
13295
13296 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13297
13298         * icall.c:
13299         * socket-io.c:
13300         * unicode.c: free some strings gotten from mono_string_to_utf8 and
13301         changed a couple of free () by g_free ().
13302
13303         * decimal.c: one-liner in the comments for decimal2string ().
13304
13305 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13306
13307         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
13308
13309 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13310
13311         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
13312         * object.c (mono_runtime_invoke_array) : handle null in params
13313
13314 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13315
13316         * string-icalls.c: fixed bug in split (one off bug)
13317
13318 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13319
13320         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
13321         * icalls.c: added String::Equals as internal method
13322
13323 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13324
13325         * threads.c: fixed bug in the double interlocked functions
13326
13327 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
13328
13329         * threads.c: implemented all of the new interlocked icalls.
13330         * string-icalls.c: fix a bug in insert.
13331         * icalls.c: added the icalls for interlocked, removed old string functions.
13332         
13333 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13334
13335         * loader.c: fix off-by-one error when reading argument names.
13336
13337 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13338
13339         * profiler.c: win32 counter implementation (untested).
13340         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
13341         (the latter needs testing and more complete impl. from win32 folks).
13342
13343 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
13344
13345         * object.c: mono_array_new_full workaround mono_array_class_get
13346         problem.
13347
13348 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13349
13350         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
13351         * object.h (mono_string_chars): Changed casting type.
13352
13353 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13354
13355         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
13356                            method signatures to use gunichar2 instead of gint16.
13357
13358 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
13359
13360         * object.h, object.c: domain-specific versions of mono_object_new and
13361         mono_array_new.
13362
13363 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
13364
13365         * object.c: changed String layout
13366
13367         * string-icalls.c (mono_string_Internal_ctor_chara): added
13368         internal string constructors.
13369
13370 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
13371
13372         * threads.c: pass 'this' to the thread start routine.
13373
13374 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13375
13376         * string-icalls.c: fix IndexOf and LastIndexOf. Now
13377         InternalCompareStr don't call twice mono_string_cmp_char for the last
13378         character. Improved performance in mono_string_cmp_char.
13379
13380 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13381
13382         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
13383         code into its own library: libmonoruntime.
13384
13385 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
13386
13387         * object.h, object.c: changed array format so that szarrays do not
13388         require a bounds structure.
13389         * icall.c, appdomain.c: support for new szarray format.
13390
13391 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13392
13393         * metadata.c: compare also the retuns type when comparing signatures:
13394         we didn't do this as an optimization since really overloaded methods
13395         must differ also in the arguments, but this doesn't work with
13396         low-level IL code (or when using explicit conversion operators: see
13397         bug#23498 for an example).
13398
13399 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13400
13401         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
13402
13403 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
13404
13405         * icall.c: make MonoType::GetElementType its own icall.
13406
13407 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13408
13409         * icall.c: remove MonoMethod_get_Name().
13410         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
13411         object.
13412
13413 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13414
13415         * string-icalls.c: optimized a few methods.
13416
13417 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13418
13419         * icall.c: added all new string internal calls
13420         * string-icalls.c: added, new string internal call implementation.
13421         * object.c: added mono_string_new_size for allocating a string a size
13422
13423 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
13424
13425         * object.c (mono_object_isinst): use the same code as in the
13426         optimized x86 version.
13427
13428 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13429
13430         * profiler.c: TSC-based timer code (faster and more accurate).
13431         Not hooked up in configure, yet (set USE_X86TSC to 1).
13432
13433 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
13434
13435         * profiler.c, profiler.h: track time spent compiling methods.
13436         * threads.c: track thread creation/destruction.
13437
13438 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
13439
13440         * profiler.c, profiler.h, profiler-private.h: profiling interface
13441         and sample implementation. Moved here so that it can be used also by
13442         the jit.
13443
13444 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
13445
13446         * reflection.c, reflection.h: keep types and other handles separate in
13447         the hash tables for referred tokens. Add guid for modules.
13448
13449 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13450
13451         * assembly.c: fix bugs found with valgrind.
13452         * metadata.h, metadata.c: added mono_metadata_guid_heap().
13453
13454 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
13455
13456         * threads: added icall support for getting current domain for
13457                    the thread.
13458  
13459 2002-04-13  Martin Baulig  <martin@gnome.org>
13460
13461         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
13462         (MonoDebugVarInfo): Added `index' field for register based addresses.
13463         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
13464         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
13465         `MonoDebugVarInfo *params' and `guint32 this_offset' with
13466         `MonoDebugVarInfo *this_var'.
13467
13468         * debug-symfile.c (relocate_variable): New static function to write
13469         a location description for a local variable or method parameter.
13470
13471 2002-04-12  Martin Baulig  <martin@gnome.org>
13472
13473         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
13474         stack offset and begin/end scope address of a local variable.
13475         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
13476         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
13477         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
13478
13479         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
13480         Added new relocation types for start/end scope of a local variable.
13481
13482 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13483
13484         * object.h: add mono_object_domain() macro.
13485         * reflection.c: handle typespecs.
13486         * icall.c: MonoMethod::get_Name() implementation.
13487
13488 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13489
13490         * icall.c: String::GetHashCode() icall implementation.
13491
13492 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13493
13494         * icall.c: String::IndexOfAny icall.
13495         * object.c, object.h: make array->max_length more useful.
13496         Intrduced mono_object_class() and mono_string_length() macros.
13497
13498 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13499
13500         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
13501         instead of g_unichar_isdigit.
13502
13503 2002-04-11  Nick Drochak  <ndrochak@gol.com>
13504
13505         * icall.c: Implement a simple Double.ToString().
13506
13507 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13508
13509         * appdomain.h: only io-layer.h is supposed to be included.
13510         * icall.c: explicitly import environ. Fix warning.
13511
13512 2002-04-10  Nick Drochak  <ndrochak@gol.com>
13513
13514         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
13515                 return true even if it's not Daylight Savings time.
13516                 Only return false for the case where the function isn't
13517                 implemented for a plaform (read Windows).
13518
13519 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13520
13521         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
13522         data with a mutex.
13523
13524 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
13525
13526         * mempool.c (mono_mempool_alloc): only use g_malloc when
13527         absolutely necessary.
13528
13529 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
13530
13531         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
13532
13533         * class.c (mono_class_vtable): use domain mempool to allocate vtable
13534         (mono_class_proxy_vtable): use domain mempool
13535
13536 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13537
13538         * appdomain.h, appdomain.c: split initialization that requires the
13539         execution engine support into mono_runtime_init().
13540
13541 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
13542
13543         * class.c (mono_class_init): don't include vtable inside MonoClass
13544         to save some memory, gather some statistics.
13545         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
13546
13547 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13548
13549         * icall.c: internalcall implementation for ValueType.Equals().
13550
13551 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
13552
13553         * object.c (mono_message_init): moved 
13554         (mono_runtime_exec_main): new arch. independent impl.
13555         (mono_runtime_invoke_array): new method - like
13556         mono_runtime_invoke, but you can pass an array of objects.
13557         (mono_remoting_invoke): new arch. independent impl.
13558         (mono_message_invoke): new arch. independent impl.
13559         (mono_runtime_class_init): new arch. independent impl.
13560         (mono_runtime_object_init): new arch. independent impl.
13561
13562 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13563
13564         * metadata.c, object.c, reflection.c: documented the exported
13565         functions.
13566
13567 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
13568
13569         * icall.c: simpler code to pass the assembly builder data to corlib.
13570         Implement GetNestedTypes() internalcall.
13571
13572 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13573
13574         * class.c: warn if a type can't be loaded.
13575
13576 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
13577
13578         * image.h: typedef MonoImageOpenStatus
13579         * types.h: removed unused file
13580         
13581 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
13582
13583         * icall.c: Enum_ToObject accepts enum value arguments.
13584
13585 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13586
13587         * class.c: move initialization of properties, events and nested
13588         classes, so that they happen for interfaces, too.
13589
13590 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13591
13592         * icall.c: cleanup some ugly casts in Array_SetValue*.
13593
13594 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13595
13596         * icall.c: the values array fro enums is of the correct type, now.
13597         Implement (correctly) getFullName instead of assQualifiedName for
13598         MonoType.
13599         * reflection.h, reflection.c: added mono_type_get_name ().
13600
13601 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13602
13603         * assembly.c, image.h: for each MonoImage, record from wich assembly
13604         it was loaded.
13605         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
13606         Make Type.Assembly work.
13607
13608 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
13609
13610         * debug-symfile.h: use char* instead of gpointer to avoid
13611         unnecessary casts.
13612
13613         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
13614
13615         * icall.c (ves_icall_InternalExecute): impl. FielSetter
13616         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
13617
13618 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
13619
13620         * icall.c (mono_message_init): impl. (code cleanup)
13621         (ves_icall_InternalExecute): impl. FieldGetter
13622
13623         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
13624         defined we call all (non-static)methods through the vtable. 
13625
13626 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
13627
13628         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
13629         finalizer even though the memory is still referenced (and the chunk of
13630         memory is not freed).
13631
13632 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
13633
13634         * assembly.c: fix brokeness.
13635
13636 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
13637
13638         * class.c: kill some warnings. Check explicit interface method
13639         implementation also without considering the namespace.
13640         Load also literal strings in static class data.
13641
13642 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
13643
13644         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
13645         (default_assembly_name_resolver): Make the resolver take the
13646         "base" directory where the assembly was originally defined, so we
13647         can load DLLs that are in the same directory as the assembly that
13648         is being referenced.
13649
13650 2002-03-28  Dick Porter  <dick@ximian.com>
13651
13652         * file-io.h: 
13653         * file-io.c:
13654         * socket-io.c: 
13655         * unicode.h: 
13656         * unicode.c: Warning cleanups
13657
13658 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
13659
13660         * object.h, reflection.h: use the correct type instead of MonoObject.
13661
13662 2002-03-28  Martin Baulig  <martin@gnome.org>
13663
13664         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
13665         (mono_debug_update_symbol_file): Initialize classes if necessary.
13666
13667 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
13668
13669         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
13670         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
13671
13672 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
13673
13674         * assembly.h: fix function prototype.
13675         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
13676         * mono-endian.h: use const cast.
13677
13678 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
13679
13680         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
13681
13682 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
13683
13684         * loader.c: don't assert when a typeref can't be loaded, give
13685         a chance to the runtime to trow an exception instead.
13686         * loader.h: fix warning.
13687
13688 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
13689
13690         * class.c (mono_class_proxy_vtable): added proxy support
13691
13692 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
13693
13694         * icall.c: removed last of PAL calls, added System.Environment
13695         * file-io.h, file-io.c: MonoIO implementation
13696         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
13697
13698 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
13699
13700         * appdomain.c: do not use the byte marker in ldstr table lookup.
13701         * debug-helpers.c: allow two ':' to separate class and method name.
13702         * object.c: allocate arrays bounds with the GC, too.
13703         * verify: add a few more checks.
13704
13705 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
13706
13707         * reflection.c: output also literal strings. Allocate parameter data
13708         with GC_malloc() (thanks, Martin, for catching this!).
13709
13710 2002-03-26  Martin Baulig  <martin@gnome.org>
13711
13712         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
13713         include the `this' offset in the `param_offsets'.
13714
13715 2002-03-25  Martin Baulig  <martin@gnome.org>
13716
13717         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
13718         mono_debug_get_class() function to get the classes. Added new
13719         relocation types for arrays and strings.
13720         (mono_debug_get_class): New static function to search in all
13721         referenced assemblies for a metadata token.
13722
13723         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
13724
13725 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
13726
13727         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
13728         hold gc-allocated objects. Make the string heap a stream like the
13729         others. Removed duplicated code when writing stream info.
13730         Added asserts to catch possible buffer overflows. Set the sorted map
13731         for tables that need sorting. Added some documentation.
13732
13733 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
13734
13735         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
13736         for interned strings and vtables.
13737
13738 2002-03-24  Martin Baulig  <martin@gnome.org>
13739
13740         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
13741         it in the array since it was created with g_slist_prepend().
13742
13743 2002-03-24  Martin Baulig  <martin@gnome.org>
13744
13745         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
13746         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
13747         (mono_debug_method_from_token): Renamed to
13748         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
13749         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
13750
13751         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
13752         relocation types.
13753
13754         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
13755
13756 2002-03-24  Martin Baulig  <martin@gnome.org>
13757
13758         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
13759         (mono_debug_method_from_token): New func.
13760
13761         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
13762         New interncall, calls mono_debug_local_type_from_signature().
13763         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
13764         calls mono_debug_method_from_token().
13765
13766 2002-03-23  Martin Baulig  <martin@gnome.org>
13767
13768         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
13769         specifies the number of bytes to be converted, not the array size.
13770         Return the number of chars, not the number of bytes.
13771         (ves_icall_iconv_get_chars): The `byteCount' argument
13772         specifies the number of bytes to be converted, not the array size.
13773
13774 2002-03-23  Martin Baulig  <martin@gnome.org>
13775
13776         * reflection.h (MonoReflectionSigHelper): New type.
13777
13778         * reflection.c (mono_reflection_sighelper_get_signature_local),
13779         (mono_reflection_sighelper_get_signature_local): New functions.
13780
13781         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
13782         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
13783         interncalls.
13784
13785 2002-03-23  Martin Baulig  <martin@gnome.org>
13786
13787         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
13788         is_writeable is set.
13789         (mono_raw_buffer_update): New function to write the modified map
13790         back to disk.
13791
13792         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
13793
13794         * debug-symfile.c (mono_debug_update_symbol_file): Call
13795         mono_raw_buffer_update() when done writing.
13796
13797 2002-03-23  Martin Baulig  <martin@gnome.org>
13798
13799         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
13800
13801         * debug-symfile.c: Added support for arguments and local variables.
13802
13803 2002-03-23  Dick Porter  <dick@ximian.com>
13804
13805         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
13806         protected by ifdefs, hence breaking the w32 build.
13807
13808 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
13809
13810         * object.c: implement is_interned() the right way.
13811
13812 2002-03-21  Martin Baulig  <martin@gnome.org>
13813
13814         * debug-symfile.[ch]: New files to handle debugging information
13815         files. There's also support to dynamically update these symbol
13816         files to include machine dependent information.
13817
13818 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
13819
13820         * threads.c (mono_thread_create): new function to create thread
13821         from C
13822
13823 2002-03-20  Martin Baulig  <martin@gnome.org>
13824
13825         * icall.c (ves_icall_InternalInvoke): Create a new object if the
13826         method is a constructor.
13827         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
13828         points to ves_icall_InternalInvoke().
13829
13830 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
13831
13832         * file-io.c: Flush shouldn't throw exceptions.
13833
13834 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
13835
13836         * file-io.c: FileStream flush support; FileSetLength now
13837         restores file pointer.
13838
13839 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
13840
13841         * class.c: set image for pointer classes.
13842
13843 2002/03/19  Nick Drochak <ndrochak@gol.com>
13844
13845         * sysmath.c: Forgot one.
13846
13847 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
13848
13849         * sysmath.c: Avoid redefining existing names.
13850
13851 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
13852
13853         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
13854         handled by runtime as icall rather than dllimport from libm.so
13855         * file-io.c, file-io.h: fixed handle argument type.
13856
13857 2002-03-18  Dick Porter  <dick@ximian.com>
13858
13859         * reflection.c (mono_image_get_type_info): rename interface to
13860         iface, because of "#define interface struct" on windows.
13861
13862 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
13863
13864         * class.c, class.h: rename and export mono_ptr_class_get().
13865         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
13866         * reflection.c, reflection.h, icall.c: better/saner type name
13867         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
13868         method signatures.
13869
13870 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
13871
13872         * class.c (mono_class_init): removed hardcoded GHC_SLOT
13873
13874         * icall.c (ves_icall_InternalInvoke): impl.
13875
13876 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
13877
13878         * reflection.c: output the interface map table, too.
13879
13880 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
13881
13882         * class.c (class_compute_field_layout): separate computation of 
13883         static field layout
13884
13885 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
13886
13887         * icall.c: added System.Buffer support.
13888         * file-io.c: moved file icalls from PAL to FileStream.
13889
13890 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
13891
13892         * icall.c (ves_icall_System_Object_GetHashCode): impl.
13893
13894 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
13895
13896         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
13897
13898 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
13899
13900         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
13901
13902 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
13903
13904         * debug-helpers.{c,h}: moved here from monograph some useful functions
13905         to locate a method by name/signature in a class or image. Included
13906         also a small and flexible IL disassembler.
13907
13908 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
13909
13910         * reflection.c: fixup tokens in methods with small header size, too.
13911
13912 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
13913
13914         * object.c (mono_string_to_utf8): remove assert(!error), instead
13915         print a warning. 
13916
13917 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
13918
13919         * icall.c: update to the new mono_Array_class_get interface.
13920
13921 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
13922
13923         * appdomain.c, object.c: Boehm-GC enable.
13924         * icall.c: make get_data_chunk() support split data requests.
13925         Ensure a class is initialized in more cases. Return only the first
13926         property found in GetProperties() or the compiler gets confused. 
13927         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
13928         * reflection.h, reflection.c: add fixup mechanism for field and method
13929         tokens. Initialize assembly->typeref in a single place. Output
13930         properties after events. Support custom attributes for events, too.
13931         Typo fix for paramter custom attrs.
13932
13933 2002-03-07  Martin Baulig  <martin@gnome.org>
13934
13935         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
13936
13937 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
13938
13939         * class.c (mono_array_class_get): fix. for multi. dim. arrays
13940
13941 2002-03-06  Martin Baulig  <martin@gnome.org>
13942
13943         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
13944         non-zero lower bounds. See testcases #F10-#F13.
13945
13946 2002-03-05  Martin Baulig  <martin@gnome.org>
13947
13948         * exception.c (mono_get_exception_argument_out_of_range): New exception.
13949
13950         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
13951         ves_icall_System_Array_GetValue(), only calculate the absolute array position
13952         here.
13953         (ves_icall_System_Array_SetValue): Likewise.
13954         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
13955         as argument and does the actual work. This function is used when copying a
13956         multi-dimensional array.
13957         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
13958         now do all the widening conversions of value types.
13959         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
13960
13961 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
13962
13963         * class.c: remove some magic numbers and use the smbolic names,
13964         instead. Added init_events() to load event info at class init time.
13965         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
13966         and mono_metadata_methods_from_event().
13967         * reflection.h, reflection.c: added support for writing out the evnets
13968         related information.
13969
13970 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
13971
13972         * reflection.h, icall.c: use a different method (GetInterfaces)
13973         to gather interface info and add isbyref, isprimitive and
13974         ispointer to the ves_icall_get_type_info() return value.
13975
13976 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
13977
13978         * class.h: stared adding support for events.
13979         * icall.c: split find_members implementation. Added debug icall to get
13980         the address of an object.
13981         * reflection.c: handle TypeBuilders in mono_type_get_object().
13982
13983 2002-03-01  Martin Baulig  <martin@gnome.org>
13984
13985         * icall.c (ves_icall_System_Array_GetLength): This must throw an
13986         ArgumentOutOfRangeException(), not an ArgumentException().
13987         (ves_icall_System_Array_GetLowerBound): Likewise.
13988         (ves_icall_System_Array_GetValue): Improved argument checking.
13989         (ves_icall_System_Array_SetValue): Improved argument checking.
13990
13991 2002-03-01  Martin Baulig  <martin@gnome.org>
13992
13993         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
13994         called with invalid arguments rather than just dying with g_assert().
13995         (ves_icall_System_Array_SetValue): Likewise.
13996         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
13997         raise a NotImplementedException instead.
13998         (ves_icall_System_Array_GetLength): Added argument checking.
13999         (ves_icall_System_Array_GetLowerBound): Added argument checking.
14000
14001 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
14002
14003         * object.h (mono_assert): new macros mono_assert and
14004         mono_assert_not_reached
14005
14006 2002-02-28  Martin Baulig  <martin@gnome.org>
14007
14008         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
14009         and "System::String::IsInterned" to "System::String::_IsInterned".
14010
14011 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
14012
14013         * icall.c: remove hacks for typebuilder. Added icall to create a
14014         modified type from a tybebuilder.
14015         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
14016         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
14017         to create a backing MonoClass for a TypeBuilder.
14018
14019 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14020
14021         * class.c, class.h: more refactoring of class init.
14022         Export mono_class_setup_mono_type() and mono_class_setup_parent().
14023
14024 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
14025
14026         * marshal.c, marshal.h: start of marshaling interface.
14027
14028 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14029
14030         * icall.c: fix order in assembly qualified name icall.
14031
14032 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14033
14034         * class.c: do not free str, since we store it in the hash table.
14035         * reflection.h: add label field to MonoILExceptionInfo.
14036         * reflection.c: handle references to more than one assembly. Handle
14037         case when there isn't a module created in the assembly.
14038
14039 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
14040
14041         * class.c: Fix typo. Start refactoring of class init code.
14042
14043 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
14044
14045         * appdomain.c: exit with 1 on error.
14046         * class.c: we already have the name in MonoClassField.
14047         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
14048         MonoStreamHeader instead of an offset of image->raw_metadata.
14049
14050 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
14051
14052         * appdomain.c (mono_init): Be even more descriptive about the error.
14053
14054 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
14055
14056         * appdomain.c: give the user an informative message when corlib can't
14057         be loaded.
14058
14059 2002-02-26  Martin Baulig  <martin@gnome.org>
14060
14061         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14062         New icall to get the time zone data.
14063
14064 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14065
14066         * reflection.c: set virtual and raw size of section correctly.
14067         * threads.c: transfer domain information to newly created threads.
14068
14069 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14070
14071         * class.c: when instancing a class in a domain, load the default
14072         vaules for static fields from the constant table. Fix System.Enum to
14073         not be an enum.
14074         * icall.c: implement Object::GetType() internalcall. Implemented
14075         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
14076         Fixed checking of binding flags in find_members().
14077         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
14078         * reflection.c: handle enumerations when writing to the constant
14079         table. Use a different object cache for types.
14080
14081
14082 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
14083
14084         * object.c (mono_object_isinst): fix for arrays
14085
14086         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
14087
14088 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14089
14090         * object.c: don't use mprotect ()  and fix intern pool hash table
14091         lookup for big endian systems.
14092
14093 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14094
14095         * icall.c: change type_is_subtype_of () signature.
14096
14097 2002-02-21  Mark Crichton  <crichton@gimp.org>
14098
14099         * rand.c, rand.h: Added random number generator for
14100         System.Security.Cryptography classes.
14101
14102         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
14103
14104         * icall.c: Added System.Security.Cryptography calls.
14105
14106 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
14107
14108         * class.c, icall.c, metadata.c: better support for pointer types.
14109         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
14110         * reflection.c: Add support for getting custom attrs for properties
14111         and simplify some code.
14112
14113 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14114
14115         * icall.c: change getToken () and add custom attribute GetBlob()helper
14116         method.
14117         * reflection.h: add custom attrs array to the reflection builder structures.
14118         * reflection.c: encode and emit custom attributes for all the relevant
14119         reflection objects. Cache fieldref and methodref tokens. Change
14120         mono_image_create_token() interface to take a MonoDynamicAssembly.
14121         More complete custom attributes decoder. Load custom attributes for
14122         Assembly, Field, Method and Constructor objects, too. Make the
14123         returned array an Attribute[] one, not object[]. Added
14124         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
14125         custom attribute constructor.
14126
14127 2002-02-20  Dick Porter  <dick@ximian.com>
14128
14129         * icall.c:
14130         * rawbuffer.c:
14131         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
14132         problem code out for now).
14133
14134 2002-02-19  Radek Doulik  <rodo@ximian.com>
14135
14136         * object.c (mono_ldstr): use hash table to avoid multiple swapping
14137
14138 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
14139
14140         * icall.c: register the GetCustomAttributes method.
14141         * object.c, object.h: add mono_string_new_len ().
14142         * reflection.h, reflection.c: added mono_runtime_invoke(),
14143         mono_install_runtime_invoke(). Added
14144         mono_reflection_get_custom_attrs () to load custom attributes and
14145         create the attribute objects.
14146
14147 2002-02-19  Dick Porter  <dick@ximian.com>
14148         * threads-dummy-types.c:
14149         * threads-dummy-types.h:
14150         * threads-dummy.c:
14151         * threads-dummy.h:
14152         * threads-pthread-types.c:
14153         * threads-pthread-types.h:
14154         * threads-pthread.c:
14155         * threads-pthread.h:  Deleted obsolete files
14156
14157 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
14158
14159         * class.c (mono_class_vtable): runtime init the class when we
14160         allocate static class data.
14161
14162         * icall.c (ves_icall_System_Array_SetValue): check for null values.
14163
14164         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
14165         and String - but we will need generic marshalling support in the
14166         future. 
14167         (mono_init): set the domain name in a ms compatible way
14168
14169         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
14170         String[].
14171
14172 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
14173
14174         * object.c (mono_array_clone): use alloca() instead of g_malloc  
14175         for sizes
14176
14177         * appdomain.c (mono_domain_unload): impl.
14178
14179 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14180
14181         * appdomain.c, object.c: fix intern pool implementation.
14182         * class.c: fix alignment code.
14183
14184 2002-02-16  Radek Doulik  <rodo@ximian.com>
14185
14186         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
14187         and s2 > s1, just copy lower bytes to be compatible with little
14188         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
14189         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
14190
14191         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
14192         force big_endian to be 1 for big endian machines 
14193         (ves_icall_iconv_new_decoder): ditto
14194
14195 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
14196
14197         * socket-io.c (convert_sockopt_level_and_name): If the system
14198         doesn't define SOL_IP or SOL_TCP, get them by hand using
14199         getprotobyname() and caching the values (because this could be a
14200         slow operation).
14201         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
14202         Use the appropriate struct when the system does support it. Ie,
14203         not all systems have struct ip_mreqn so use struct ip_mreq when
14204         appropriate.
14205
14206 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
14207
14208         * reflection.c: handle finally clauses.
14209
14210 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
14211
14212         * socket-io.c: use g_snprintf() instead of snprintf.
14213
14214 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
14215
14216         * reflection.c (mono_param_get_objects): Cast second argument to
14217         mono_method_get_param_names to a const char** to silence the
14218         compiler warning.
14219
14220         * appdomain.c (mono_domain_assembly_open): Put parens around the
14221         truth statement in the for-loop.
14222
14223         * unicode.c (iconv_convert): Got rid of a compiler warning about
14224         int i being unused when the system has a new iconv.
14225         (iconv_get_length): Same.
14226
14227         * image.c (load_class_names): Cast the second argument to
14228         g_hash_table_insert() to char* to hush compiler warnings about the
14229         arg being a const.
14230         (mono_image_open): Same here.
14231
14232         * socket-io.c: Don't conditionally include sys/filio.h or
14233         sys/sockio.h here anymore since we now get them from
14234         io-layer/io-layer.h
14235         (inet_pton): If the system doesn't support inet_aton, implement
14236         using inet_addr and also #define INADDR_NONE if it isn't defined
14237         by the system.
14238
14239 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
14240
14241         * metadata.c, metadata.h: added function to get packing and size info
14242         of a typedef.
14243         * reflection.h, reflection.c: handle field RVA data. Save info about
14244         the table layout if needed. Assign typedef indexes to all the types
14245         before dumping the info about them to avoid forward reference problems.
14246
14247 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
14248
14249         * socket-io.c (convert_sockopt_level_and_name): ifdef
14250         SO_ACCEPTCONN because it is not defined on my system (old debian)
14251
14252 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14253
14254         * opcode.c: use stddef.h to get NULL.
14255
14256 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
14257
14258         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
14259         for FIONBIO, FIONREAD and SIOCATMARK.
14260         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
14261         define INADDR_NONE and besides, inet_addr() is deprecated and
14262         should not be used. Use inet_pton() instead - it also has the
14263         added bonus that it can easily handle IPv6 addresses as well.
14264         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
14265
14266 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
14267
14268         * decimal.c: remove _MSC_VER conditional.
14269
14270 2002-02-13  Dick Porter  <dick@ximian.com>
14271
14272         * socket-io.c: 
14273         * icall.c: Internal calls for Blocking, Select, Shutdown,
14274         GetSocketOption and SetSocketOption
14275
14276 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14277
14278         * assembly.cs: better resolver: use it instead of some kludgy
14279         code.
14280
14281 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
14282
14283         * reflection.c: the best way to speed-up the compiler is to avoid
14284         infinite loops.
14285
14286 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
14287
14288         * class.c (mono_class_vtable): changed the object layout
14289         (obj->vtable->class). 
14290         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
14291
14292 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14293
14294         * assembly.c: look for assemblies in the assembly dir, too.
14295
14296 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14297
14298         * class.c: fix thinko in mono_class_from_type().
14299
14300 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14301
14302         * exception.h, exception.c: added TypeLoadException.
14303         * object.h, object.c: added mono_array_clone ().
14304         * icall.c: handle throwOnError in AssemblyGetType().
14305         Added Array.Clone().
14306         * opcode.h, opcode.c: use a single value for the opcode val.
14307         Compile fix for non-gcc compilers.
14308
14309 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
14310
14311         * opcodes.c, opcodes.h: export interesting info about opcodes.
14312
14313 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
14314
14315         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
14316         icalls. 
14317
14318         * class.c (class_compute_field_layout): set element_class for enums
14319         (mono_class_create_from_typedef): set element_class for normal classes
14320
14321         * icall.c (ves_icall_System_Enum_get_value): impl.
14322
14323         * class.c (mono_class_create_from_typedef): do not set valuetype
14324         flag for System.ValueType and System.Enum
14325
14326 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
14327
14328         * unicode.c (iconv_convert): fix big endian problem.
14329
14330 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14331
14332         * class.c: add asserts if we are ever going to scribble over memory.
14333         * socket-io.c: not all systems have AF_IRDA defined.
14334
14335 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
14336
14337         * class.c (class_compute_field_layout): do not consider static
14338         fields to compute alignment
14339
14340 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
14341
14342         * appdomain.c (mono_appdomain_get): impl.
14343         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
14344
14345 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14346
14347         * icall.c: ignore "file://" prefix when loading an assembly.
14348
14349 2002-01-23  Dick Porter  <dick@ximian.com>
14350
14351         * socket-io.c:
14352         * icall.c:
14353         * Makefile.am: Added socket support
14354
14355 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
14356
14357         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
14358         code back.  This should return the assemblies that are loaded by
14359         the runtime on behalf of an application domain. 
14360
14361         The current implementation is still broken, it just returns every
14362         assembly loaded, but until we get real applications domain this
14363         will do.
14364
14365 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
14366
14367         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
14368         AppDomain object.
14369
14370 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
14371
14372         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
14373         the mono_class_from_name lookup.
14374         (ves_icall_get_parameter_info): ditto.
14375         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
14376         method.
14377         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
14378
14379 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
14380
14381         * class.c: load also nested classes on class init.
14382         System.ValueType instance methods gets passed boxed
14383         values, unless methods in derived classed that get a pointer to the
14384         data.
14385         * icall.c: use better name parsing code in GetType().
14386         * image.c, image.h: add mono_image_loaded ().
14387         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
14388         * reflection.c, reflection.h: added mono_reflection_parse_type().
14389
14390 2002-01-22  Veronica De Santis <veron78@interfree.it>
14391
14392         * icall.c : Added mapping of internal calls for Manual and Auto reset events
14393         * threads.c : Added the implementation of internal calls for events
14394         * threads.h : Added prototypes of internal calls for events
14395         
14396 2002-01-21  Radek Doulik  <rodo@ximian.com>
14397
14398         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
14399
14400 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
14401
14402         * class.c (mono_class_init): set min_align to 1 (instead of 0)
14403         (mono_class_value_size): use min_align
14404
14405 2002-01-20  Dick Porter  <dick@ximian.com>
14406
14407         * threads.h:
14408         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
14409         so it compiles on w32.
14410
14411 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
14412
14413         * metadata.c (mono_type_stack_size): impl.
14414
14415         * class.c (mono_class_get_field): impl. memberref token
14416
14417 2002-01-16 Veronica De Santis <veron78@@interfree.it>
14418
14419         * icall.h : Added the internal calls mapping for CreateMutex_internal
14420                     and ReleaseMutex_internal.
14421         * threads.h : Added the prototype of mutexes internal calls.
14422         * threads.c : Added the implementations of mutexes internal calls.
14423
14424 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14425
14426         * metaparse.h: removed unused file.
14427         * reflection.c, reflection.h: added stream_data_align () function 
14428         to align data in streams and keep stream aligned. Add support for
14429         exception support in method headers.
14430
14431 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
14432
14433         * unicode.c: make iconv_convert () return the number of bytess written
14434         in the output buffer.
14435
14436 2002-01-15  Dick Porter  <dick@ximian.com>
14437         * threads.c: Make the runtime's idea of infinite timeouts coincide
14438         with the class library's
14439
14440         Fix a particularly egregious bug in mono_thread_cleanup(). That
14441         code was so utterly bogus it must have been written on a Monday.
14442
14443 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14444
14445         * reflection.h: add subtypes field to TypeBuilder.
14446         * reflection.c: encode constants for literal fields.
14447         Handle subtypes. Fix user string token (and add a zero byte)
14448         at the end.
14449         
14450 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
14451
14452         * class.c (mono_class_init): bug fix: assign slot numbers for
14453         abstract methods.
14454
14455 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14456
14457         * reflection.c: don't try to output a code RVA for abstract methods.
14458         Small fixes for method header format. Output parameter info to the
14459         ParamDef table. Save method overriding info to MethodImpl table.
14460         Fix property support. Allow typedef.extends to be a type in the
14461         building assembly.
14462         * verify.c: fix off-by-one error.
14463
14464 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
14465
14466         * class.c: fix mono_class_from_mono_type () for szarray types.
14467         Remove unused cache check in mono_class_from_type_spec().
14468         * icall.c: *type_from_name () functions handle simple arrays and byref.
14469         * reflection.c: handle byref and szarray types. Handle methods without
14470         body (gets P/Invoke compilation working). Handle types and fields in
14471         get_token ().
14472         * reflection.h: add rank to MonoTypeInfo.
14473
14474 2002-01-10  Dick Porter  <dick@ximian.com>
14475
14476         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
14477         internal calls
14478
14479 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14480
14481         * icall.c: initialize class in type_from_handle ().
14482         Loop also in parent classes for get_method ().
14483         * reflection.c: properly encode class and valuetype types.
14484         Start on encoding TypeBuilder types. Handle fieldrefs.
14485         Use correct length when registering a user string.
14486         Handle ConstructorBuilder and MonoMethod in get_token ().
14487         Make mono_type_get_object () aware of cached types.
14488         * object.c: back out change to mono_string_new ().
14489
14490 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
14491         * object.c: mono_string_new should return a NULL when the string 
14492         passed in is NULL -- not try to deference it.
14493         
14494 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
14495
14496         * icall.c: hack to make IsSubType work for TypeBuilders.
14497         * reflection.c: emit constructors before methods.
14498         Retrieve param names in mono_param_get_objects().
14499
14500 2002/01/05  Nick Drochak  <ndrochak@gol.com>
14501
14502         * Makefile.am: fix list of headers and sources so automake 1.5
14503         doesn't complain. Removed \# at end of list.
14504
14505 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14506
14507         * reflection.c: get token for a method ref. Set return type of
14508         constructor to void.
14509         * loader.c: debug message.
14510         * class.c: typo fix.
14511
14512 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
14513
14514         * icall.c: fix array init with rank > 1. FindMembers
14515         loops in parent class as well.
14516         * image.c: do not insert nested types in name cache.
14517         * reflection.c: warning fix.
14518         * reflection.h: add override method (for interface impl).
14519
14520 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
14521
14522         * metadata.c: fix customattr decoding.
14523
14524 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
14525
14526         * rawbuffer.cs: Added native Win32 implementation, avoids using
14527         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
14528
14529 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
14530
14531         * class.c: make the low-level routines handle the cache.
14532
14533 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
14534
14535         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
14536
14537 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
14538
14539         * class.c: fix mono_array_element_size() for objects.
14540         * class.h, class.c: add properties to MonoClass and load them
14541         at init time.
14542         * icall.c: check with isinst() when assigning a value to an array
14543         instead of requiring the classes to match exactly.
14544         Implemented icall for System.Type::GetType().
14545         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
14546         enums. Handle bindingflags when looking for methods and fields.
14547         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
14548         and mono_metadata_methods_from_property().
14549         * reflection.h, reflection.c: added structures for propreties,
14550         parameters and enums. Implemented mono_property_get_object() and
14551         mono_param_get_objects().
14552
14553 2001-12-18  Dick Porter  <dick@ximian.com>
14554
14555         * file-io.c: Use mono_string_to_utf16() instead of
14556         mono_string_chars()
14557
14558         * object.c: Added mono_string_to_utf16(), which copies the non
14559         NULL-terminated MonoString into a new double-null-terminated
14560         buffer.
14561
14562 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
14563
14564         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
14565
14566 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
14567
14568         * file-io.c: raise exceptions if handle is invalid.
14569
14570 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
14571
14572         * assembly.c: yet another check for mscorlib.
14573         * class.c, class.h: load nesting info for classes.
14574         * icall.c: many new functions to support the Reflection classes.
14575         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
14576         * reflection.h, reflection.c: mono_image_create_token(),
14577         mono_assembly_get_object(), mono_type_get_object(),
14578         mono_method_get_object(), mono_field_get_object(): methods to return
14579         objects that parallel the C representation of assemblies, types,
14580         methods, fields.
14581
14582 2001-12-11  Dick Porter  <dick@ximian.com>
14583
14584         * icall.c:
14585         * file-io.c: Internal calls for file IO.
14586
14587 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
14588
14589         * tabledefs.h: missing FileAttributes.
14590         * verify.h, verify.c: use is_valid_string () to simplify and check for
14591         valid strings more correctly. Fix warnings and speeling.
14592         Check more tables: Filed, File, ModuleRef, StandAloneSig.
14593         Check code: branches, maxstack, method calls.
14594
14595 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
14596
14597         * object.c (mono_object_allocate): removed static, so that the jit
14598         can allocate value types.
14599
14600         * icall.c (ves_icall_System_DateTime_GetNow): impl.
14601
14602 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14603
14604         * class.c: init enum types right away and register the
14605         token->MonoClass map in mono_class_create_from_typedef ().
14606         * verify.h, verify.c: first cut of the verifier.
14607         * pedump.c: add --verify switch to verify metadata tables.
14608         * tabledefs.h: add some missing enums.
14609
14610 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
14611
14612         * class.c (mono_install_runtime_class_init): impl.
14613         (mono_class_init): renamed mono_class_metadata_init to
14614         mono_class_init, also removed the metadata_inited flag
14615
14616         * object.c (mono_object_isinst): use faster algorithm
14617
14618 2001-11-30  Radek Doulik  <rodo@ximian.com>
14619
14620         * mono-endian.h: reverted last change
14621         added function prototypes
14622
14623         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
14624         add mono-endian.c back
14625
14626         * mono-endian.c: returned back, as Paolo pointed out, it's needed
14627         for unaligned access, I've mistaked it with endianess. I am
14628         sorry.
14629         (mono_read16): fix reverted endianess
14630         (mono_read64): ditto
14631         (mono_read32): ditto
14632
14633 2001-11-30  Dick Porter  <dick@ximian.com>
14634
14635         * exception.c: Implement mono_exception_from_name()
14636
14637 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14638
14639         * metadata.h, metadata.c: remove params_size and locals_size and their
14640         calculation from the metadata code: they are only usefult to the
14641         interp.
14642
14643 2001-11-29  Radek Doulik  <rodo@ximian.com>
14644
14645         * object.c (mono_ldstr): swap bytes here, it's probably not the
14646         best place, but works for me now, I'll redo it once I know mono
14647         better, also note that I add PROT_WRITE and don't reset back, also
14648         note that it's only affects big endians, so x86 should be OK
14649
14650         * mono-endian.h (read16): use just glib macros for both endians
14651
14652         * mono-endian.c: removed as glib macros are used in in
14653         mono-endian.h so we don't need to care about endianess for read
14654         macros as glib does that for us already
14655
14656 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
14657
14658         * class.h, class.h: take minimum alignment into consideration so
14659         that the fields of a class remain aligned also when in an array.
14660
14661 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14662
14663         * loader.h, loader.c: add mono_method_get_param_names().
14664         * class.c: 0-init class fields.
14665
14666 2001-11-26  Dick Porter  <dick@ximian.com>
14667
14668         * icall.c:
14669         * threads-types.h:
14670         * threads.c: New file that handles System.Threading on all platforms
14671
14672         * object.c: 
14673         * object.h: Remove the synchronisation struct from MonoObject,
14674         replace it with a pointer that gets initialised on demand
14675
14676         * Makefile.am: Replace all the system-specific threading code with
14677         a single file that uses the new wrapper library
14678
14679 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
14680
14681         * class.c, class.h: add mono_install_trampoline() so that the runtime
14682         can register a function to create a trampoline: removes the ugly
14683         requirement that a runtime needed to export arch_create_jit_trampoline.
14684         * object.h, object.c: added mono_install_handler() so that the runtime
14685         can install an handler for exceptions generated in C code (with
14686         mono_raise_exception()). Added C struct for System.Delegate.
14687         * pedump.c: removed arch_create_jit_trampoline.
14688         * reflection.c: some cleanups to allow registering user strings and
14689         later getting a token for methodrefs and fieldrefs before the assembly
14690         is built.
14691         * row-indexes.h: updates and fixes from the new ECMA specs.
14692
14693 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
14694
14695         * class.h, class.c: add enum_basetype field to MonoClass.
14696         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
14697         to get index in the constant table reated to a field, param or
14698         property.
14699         * reflection.h, reflection.c: handle constructors. Set public-key and
14700         version number of the built assembly to 0.
14701         * row-indexes.h: update from new ECMA spec.
14702
14703 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14704
14705         * class.h, class.c: add a max_interface_id to MonoClass.
14706         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
14707         since it's used to do that. Added mono_type_type_from_obj().
14708         Make GetType() return NULL instead of segfaulting if the type was not
14709         found. Handle simple arrays in assQualifiedName.
14710         * object.h: add a struct to represent an Exception.
14711         * reflection.c: output call convention in method signature.
14712         Add code to support P/Invoke methods and fixed offsets for fields.
14713
14714 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
14715
14716         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
14717         the value.
14718         * icall.c: use mono_array_addr instead of array->vector: fixes the
14719         reflection image writing.
14720         * reflection.c: init call convention byte to 0 in method signature.
14721         Encode the property signature. Don't output property-related methods
14722         twice. Really process the properties for a type (don't cast a field to
14723         a property, my mom always told me that).
14724         Fix 64 bit issues in pointer alignment in a different and more
14725         readable way.
14726
14727 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
14728
14729         * loader.h: Removed type class from MonoDefaults, added monotype
14730
14731         * loader.c: Loaded MonoType, removed loading of Type
14732
14733         * icall.c (my_mono_new_object): Now returns a System.MonoType,
14734         and fills in System.Type._impl with a RuntimeTypeHandle rather
14735         than the actual MonoClass *
14736
14737         (ves_icall_type_from_handle): change from type_class to
14738         monotype_class
14739
14740         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
14741         implemented
14742
14743         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
14744         implemented
14745
14746         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
14747
14748         (ves_icall_System_Reflection_Assembly_GetType): implemented
14749
14750         (ves_icall_System_MonoType_assQualifiedName): implemented
14751
14752         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
14753
14754 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
14755
14756         * assembly.c (mono_assembly_open): Implement a cache for the
14757         assemblies. 
14758
14759         (mono_assembly_close): only destroy the assembly when the last
14760         reference is gone.
14761         
14762 2001-11-09  Dick Porter  <dick@ximian.com>
14763
14764         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
14765
14766 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
14767
14768         * class.c (mono_class_metadata_init): bug fix: compute the right slot
14769
14770 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14771
14772         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
14773         from Martin Weindel.
14774         * object.h: add mono_string_chars ().
14775
14776 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
14777
14778         * reflection.c (build_compressed_metadata): Eliminates warnings
14779         and uses 64-bit clean code.
14780
14781         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
14782         (mono_type_equal): Change signature to eliminate warnings.
14783
14784 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14785
14786         * icall.c, loader.c: remove the internalcall array constructors.
14787         Changes to match the new MonoArray structure.
14788         * object.h, object.c: an array object doesn't allocate an extra
14789         vector. Add mono_array_new_full () to create jagged arrays easily.
14790
14791 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14792
14793         * metadata.h, metadata.c: add mono_metadata_field_info () to
14794         retreive all the info about a field from vairous tables.
14795         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
14796         * class.h, class.c: augment MonoClassField with more info.
14797         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
14798         policy and load a field's RVA if needed.
14799
14800 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
14801
14802         * class.c (mono_class_metadata_init): create a trampoline for all
14803         virtual functions instead of actually compiling them.
14804
14805 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
14806
14807         * class.h, class.c: include name in MonoClassField.
14808         * class.c: fix fundamental type of System.Object and System.String.
14809         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
14810         tokens in ldtoken.
14811         * icall.c: remove internalcalls for the Reflection stuff that is now
14812         done in C# code.
14813         * loader.c: mono_field_from_memberref () implementation.
14814         * mono-endian.c: thinko (s/struct/union/g).
14815         * object.c, object.h: make the mono_string_* prototypes actually use
14816         MonoString instead of MonoObject.
14817         * reflection.c, reflection.h: updates for changes in the reflection
14818         code in corlib: we use C structures that map to the actual C# classes.
14819         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
14820         fat method header if needed and use the info from the ILGenerator for
14821         methods. Handle fields in types. Misc fixes.
14822
14823 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
14824
14825         * class.c (mono_class_metadata_init): bug fix: always allocate
14826         space for static class data
14827
14828 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
14829
14830         * class.c (mono_compute_relative_numbering): use relative
14831         numbering to support fast runtime type checks.
14832
14833 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
14834
14835         * class.c (mono_class_create_from_typeref): added debugging output
14836         to print class name when MonoDummy is returned instead of real class
14837
14838 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
14839
14840         * class.c (mono_class_metadata_init): interface offset table now
14841         contains pointers into the vtable - this is more efficient for the jit
14842
14843 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
14844
14845         * class.c (mono_class_metadata_init): use a temporary vtable (the
14846         old algorithm only worked for the interpreter, but not for the jit)
14847
14848 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
14849
14850         * loader.c (method_from_memberref): use mono_class_get to get the
14851         class of an array instead of using System.Array directly.
14852         (mono_get_method): also add MEMBERREF methods to the method cache
14853         which usefull for arrays.
14854
14855 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
14856
14857         * pedump.c (arch_compile_method): added to compute vtable entry
14858
14859         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
14860         number of interfaces.
14861         
14862         * class.h: merged MonoArrayClass into MonoClass
14863
14864         * class.c (mono_class_create_from_typedef): compute the vtable size and
14865         allocate space to include the vtable inside MonoClass
14866         (mono_class_metadata_init): initialize the vtable
14867
14868 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
14869
14870         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
14871         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
14872         * image.c: endian fixes by Laurent Rioux.
14873         * object.h, object.c: rename MonoStringObject to MonoString and
14874         MonoArrayObject to MonoArray. Change some function names to conform to
14875         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
14876         guint16* as first argument, so don't use char*.
14877         Provide macros to do the interesting things on arrays in a portable way.
14878         * threads-pthread.c: updates for the API changes and #include <sched.h>
14879         (required for sched_yield()).
14880         * icall.c: updates for the API changes above.
14881         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
14882         platforms that need them.
14883
14884 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
14885
14886         * class.c: set the correct type for all the fundamental
14887         type when loading the class.
14888
14889 2001-10-05  Dick Porter  <dick@ximian.com>
14890
14891         * threads-pthread.c (pthread_mutex_timedlock): Simple
14892         compatibility version for C libraries that lack this call.
14893
14894 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
14895
14896         * class.c: MonoTypes stored in MonoClass are stored as
14897         fundamental MonoTypes when the class represents a
14898         fundamental type (System.Int32, ...).
14899         The TypeHandle return by ldtoken is a MonoType*.
14900         * icall.c: ves_icall_get_data_chunk () write out all the
14901         PE/COFF stuff. Implement ves_icall_define_method (),
14902         ves_icall_set_method_body (), ves_icall_type_from_handle ().
14903         * image.c: properly skip unknown streams.
14904         * loader.h, loader.c: add type_class to mono_defaults.
14905         * metadata.c, metadata.h: export compute_size () as
14906         mono_metadata_compute_size () with a better interface.
14907         Typo and C&P fixes.
14908         * pedump.c: don't try to print the entry point RVA if there is no entry point.
14909         * reflection.c, reflection.h: many cleanups, fixes, output method
14910         signatures and headers, typedef and typeref info, compress the metadata
14911         tables, output all the heap streams, cli header etc.
14912         * row-indexes.h: typo fixes.
14913
14914 2001-10-04  Dick Porter  <dick@ximian.com>
14915
14916         * object.h: Add a synchronisation mutex struct to MonoObject
14917
14918         * object.c (mono_new_object): Initialise the object
14919         synchronisation mutexes
14920
14921         * icall.c: System.Threading.Monitor internal calls
14922         
14923         * threads-pthread.h:
14924         * threads-pthread.c: System.Threading.Monitor internal calls
14925
14926         * threads-types.h: New file, includes the system-specific thread
14927         structures
14928         
14929         * threads-pthread-types.h:
14930         * threads-pthread-types.c: New files, handle pthread-specific
14931         synchronisation types
14932
14933         * threads-dummy-types.h: 
14934         * threads-dummy-types.c: New files of dummy support for
14935         thread-specific types
14936
14937         * metadata.c:
14938         * image.c:
14939         * pedump.c: include mono-endian.h not endian.h
14940         
14941         * Makefile.am: More threads files.
14942         Name mono-endian.h not endian.h
14943
14944 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
14945
14946         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
14947         stuff and implement a few more bits.
14948         * icall.c: a field needs to be dereferenced twice. Do not use the same
14949         name for two variables in the same scope.
14950         * image.c, image.h: cleanups.
14951
14952 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
14953
14954         * class.c (mono_class_metadata_init): bug fix: compute the right size
14955
14956 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
14957
14958         * icall.c: implemented some of the Reflection internalcalls.
14959         * image.c, image.h: start writing out the PE/COFF image.
14960         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
14961         that does the reverse than decode_blob_size ().
14962         * object.c: use mono_metadata_encode_value (). Move here
14963         temporary implementation of mono_string_to_utf8 ().
14964         * rawbuffer.c: make malloc_map static.
14965
14966 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
14967
14968         * metadata.c: fix type comparison for arrays.
14969         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
14970         Added a couple of new classes to monodefaults.
14971         * icall.c: added a couple of Reflection-related internalcalls.
14972         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
14973         Added a byval_arg MonoType to MonoClass.
14974
14975 2001-09-28  Dick Porter  <dick@ximian.com>
14976
14977         * icall.c:
14978         * threads-pthread.h: 
14979         * threads-pthread.c: Implemented internal calls for
14980         LocalDataStoreSlot operations.  Applied mutexes around all shared
14981         data.  Reworked the thread creation and Start() operations to
14982         avoid a race condition.
14983         
14984         * threads-dummy.h:
14985         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
14986
14987 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
14988
14989         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
14990
14991 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
14992
14993         * class.c, loader.c: warn and return NULL instead of erroring out.
14994         * icall.c: added System.AppDomain::getCurDomain().
14995         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
14996
14997 2001-09-25  Dick Porter  <dick@ximian.com>
14998
14999         * threads-pthread.h:
15000         * threads-pthread.c: Implemented timed thread joining and added
15001         System.Threading.Thread::Join_internal internal call
15002
15003         * icall.c: Added System.Threading.Thread::Join_internal internal call
15004
15005         * threads-dummy.h:
15006         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
15007
15008 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
15009
15010         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
15011         mono_string_intern () to implement the semantics of the ldstr opcode
15012         and the interning of System.Strings.
15013         * icall.c: provide hooks to make String::IsIntern and String::Intern
15014         internalcalls.
15015
15016 2001-09-23  Dick Porter  <dick@ximian.com>
15017
15018         * threads-dummy.c: 
15019         * threads-dummy.h: New files of dummy threading routines
15020
15021         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
15022         support code based on system specifics
15023
15024         Rename PTHREAD_LIBS to THREAD_LIBS
15025         
15026 2001-09-23  Dick Porter  <dick@ximian.com>
15027
15028         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
15029         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
15030         internal calls.
15031         (mono_thread_init): Set up a Thread object instance to return when
15032         the main thread calls Thread.CurrentThread
15033         (mono_thread_cleanup): Wait for all subthreads to exit
15034
15035         * icall.c: New internal calls for System.Threading.Thread::Sleep
15036         (including Schedule) and CurrentThread
15037
15038         * threads.h: New file, to insulate thread-specific stuff from the
15039         rest of the code
15040
15041 2001-09-21  Dick Porter  <dick@ximian.com>
15042
15043         * threads-pthread.h: 
15044         * threads-pthread.c: New file, for handling pthreads-style
15045         threading support.  Start() now starts a new thread and executes
15046         the ThreadStart delegate instance.
15047
15048         * icall.c: Added the internalcall for
15049         System.Threading.Thread::Start_internal
15050
15051         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
15052
15053 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
15054
15055         * loader.c: work around the different signatures for delegates
15056         constructors csc generates in compiled code vs the ones compiled in mscorlib.
15057
15058 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15059
15060         * class.h, class.c: add mono_class_get_field_from_name ().
15061         * *: Fix C comments and other ANSI C issues.
15062
15063 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
15064
15065         * endian.h, assembly.c: fix some endianness issues.
15066
15067 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
15068
15069         * loader.h, load.c: add delegate_class to mono_defaults.
15070         Handle runtime provided methods in mono_get_method ().
15071
15072 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
15073
15074         * loader.c (mono_get_method): use pinvoke for internal call
15075
15076         * icall.c: use pinvoke for internal call
15077
15078         * loader.c (method_from_memberref): set the method name
15079
15080 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
15081
15082         * metadata.c: help the compiler generate better code for
15083         mono_class_from_mono_type ().
15084
15085 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
15086
15087         * class.c (mono_class_metadata_init): delayed computing of the
15088         class size to mono_class_metadata_init ()
15089
15090 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
15091
15092         * class.c, class.h: add an interfaces member to MonoClass.
15093         * image.c, image.h: add assembly_name field to MonoImage
15094         from the assembly table.
15095         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
15096
15097 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15098
15099         * class.c: Handle Array in mono_class_from_mono_type ().
15100         * metadata.c, pedump.c: some endian fixes.
15101
15102 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15103
15104         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
15105         * metadata.c: fix small problem introduced with the latest commit.
15106
15107 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
15108
15109         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
15110         We don't need a MonoMetadata pointer anymore to compare signatures in
15111         mono_metadata_signature_equal (), update callers.
15112         Reduced memory usage an number of allocations for MonoMethodHeader and
15113         MonoMethodSignature.
15114
15115 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
15116
15117         * metadata.c: added compare for szarray.
15118
15119 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
15120
15121         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
15122         and add a couple more types to it and mono_defaults. Give an hint on
15123         classes that need implementing in our corlib and are referenced
15124         in mscorlib.
15125
15126 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
15127
15128         * class.h, class.c: keep track if a class is also an Enum.
15129         * loader.c: Implement a couple more types for use in libffi
15130         marshalling. Gives better diagnostics when failing to dlopen
15131         a library. Set method->klass for P/Invoke methods, too.
15132
15133 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
15134
15135         * class.c, class.h: add a MonoType this_arg to MonoClass that
15136         represents a pointer to an object of the class' type that
15137         can be used by the interpreter and later the type cache.
15138         Add best guess alignment info for valuetype objects.
15139
15140 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
15141
15142         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
15143         into MonoType: one less level of indirection and allocation and
15144         simplifies quite a bit of code. Added cache for MonoTypes that are
15145         used frequently, so that we don't need to allocate them all the time.
15146
15147 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
15148
15149         * class.c (mono_class_create_from_typedef): System.Enum is also a
15150         value type, although it does not derive from System.ValueType
15151         (maybe a bug in the ms compiler?)
15152
15153         * metadata.c (mono_type_size): return the right size for value types
15154
15155         * loader.c (mono_get_method): only initialize method header if not abstract
15156
15157         * class.c (mono_class_from_mono_type): use mono_default values. 
15158
15159 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
15160
15161         * *: use MonoClass pointers instead of <type_tokens>
15162         
15163         * class.h: new flag: metadata_inited.
15164
15165         * class.c (mono_class_metadata_init): impl.
15166         (mono_class_instance_size): impl.
15167         (mono_class_data_size): impl.
15168
15169 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15170
15171         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
15172         MonoClass now has the name and name_space fields. 
15173         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
15174         mono_get_method () takes and optional MonoClass as argument.
15175         Removed mono_typedef_from_name() and added mono_class_token_from_name()
15176         instead that takes advantage of a map from class names to typedef
15177         tokens in MonoImage.
15178
15179 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
15180
15181         * metadata.c: zero is not a valid alignment boundary.
15182         Merge MONO_TYPE_VOID in default decoding code.
15183
15184 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
15185
15186         * image.h: merged MonoMetadata into MonoImage
15187
15188         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
15189         identify the type of elements.
15190
15191 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
15192
15193         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
15194         * cil-coff.h: split MonoMSDOSHeader and add size info.
15195         * image.c: add some consistency checks.
15196         * metadata.c: fix row size computation: one programmer
15197         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
15198         add explanation for the locator routine.
15199         Fix decoding of size in method header.
15200         
15201 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
15202
15203         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
15204         (g_concat_dir_and_file): Bring g_concat_dir_and_file
15205         function from gnome-libs.  This uses the right path separator
15206         based on the OS, and also works around a bug in some systems where
15207         a double slash is not allowed. 
15208         (default_assembly_name_resolver): Use g_concat_dir_and_file
15209         (mono_assembly_open): ditto.
15210
15211 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
15212
15213         * metadata.c (mono_metadata_signature_equal): impl.
15214
15215         * *: void is now a realy MonoType (instead of using NULL)
15216         
15217         * metadata.c (do_mono_metadata_parse_type): use
15218         mono_metadata_parse_type to parse void value.
15219
15220 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
15221
15222         * metadata.c, metadata.h: in the signature and method header store
15223         only the space required for holding the loca vars and incoming arguments.
15224
15225 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
15226
15227         * metadata.c (do_mono_metadata_parse_type): treat void like any
15228         other type (instead of assigning NULL);
15229
15230 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
15231
15232         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
15233
15234 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
15235
15236         * image.c (do_mono_image_open): added a cache for arrays.
15237
15238 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15239
15240         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
15241         decode a single column from a row in a metadata table and changes
15242         to take advantage of it in the typedef locator (gives a nice speed up).
15243         Store offset info for function params.
15244
15245 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
15246
15247         * image.h (MONO_IMAGE_IS_CORLIB): removed 
15248
15249 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
15250
15251         * assembly.c: how could mono_assembly_close () had ever worked?
15252         * metadata.c, metadata.h: provide offset info for local vars.
15253         Implement mono_type_size () to take care of alignment as well
15254         as size (it was mono_field_type_size in cli/class.c before).
15255
15256 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
15257
15258         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
15259
15260         * assembly.h (CORLIB_NAME): set to corlib.dll
15261
15262         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
15263
15264 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15265
15266         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
15267         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
15268         tokentype.h: massive namespace cleanup.
15269
15270 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15271
15272         * metadata.h, metadata.c: decode exception clauses when parsing method header.
15273
15274 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
15275
15276         * metadata.c (mono_metadata_free_type): added check for type !=
15277         NULL (void) before calling mono_metadata_free_type()
15278
15279 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
15280
15281         * metadata.h, row_indexes.h: added header with enumerations to use
15282         to index in the columns from tables in metadata and to decode coded
15283         tokens: we should start using this instead of embedding magic numbers
15284         all over the code.
15285
15286 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
15287
15288         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
15289         Move metadata_t info from cli_image_info_t to MonoImage, where
15290         it's easily accessible. Changed all the uses accordingly.
15291         Added the method and class caches to MonoImage.
15292         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
15293         and mono_metadata_decode_value () signature to be more consistent
15294         with the other parse functions (and simplify code). Taken advantage
15295         of zero-length array allocation with GCC. Removed reduntant (and
15296         wrong) MonoFieldType struct and use MonoParam instead. Changed
15297         mono_metadata_parse_field_type () to use common code for parsing.
15298         Added mono_metadata_typedef_from_field () and
15299         mono_metadata_typedef_from_method () to lookup a typedef index from a
15300         field or method token.
15301         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
15302
15303 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
15304
15305         * metadata.c (mono_metadata_parse_field_type): Implement. 
15306         (do_mono_metadata_parse_type): Split engine from
15307         mono_metadata_parse_type, so that we can create smaller structures
15308         for things that just have one pointer to the MonoType (look at
15309         the MonoFieldType)
15310
15311 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
15312
15313         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
15314         as Jan Gray found out, it is incorrect. 
15315
15316 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
15317
15318         * assembly.c: Implement asssembly loading.  This loads an image
15319         and loads all the referenced assemblies.  Come to think of it, we
15320         could always do lazy loading of the assemblies. 
15321
15322         * image.c (mono_image_open): Keep loaded images in a hashtable.
15323
15324         * image.h (MonoImage): Add reference count.
15325
15326 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
15327
15328         * assembly.c (mono_assembly_open): Keep track of the file name in
15329         case the assembly has no ASSEMBLY table.
15330
15331         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
15332         from get.c here.
15333
15334 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
15335
15336         * metadata.c, metadata.h: decode local vars in method header
15337         parse function. Change callers accordingly.
15338
15339 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
15340
15341         * metadata.h, cil-coff.h: protect against multiple inclusion.
15342         Added some new structures to hold information decoded from metadata:
15343         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
15344         and relevant decoding/free functions.
15345         * metadata.c: implement decoding functions. Add warning for out of bounds
15346         index in mono_metadata_locate(). Implement mono_get_method () to retreive
15347         all the info about a method signature and invocation. Remove check on
15348         uninitialized local var in parse_mh() and fix memory leak.
15349
15350 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
15351
15352         * metadata.h: More macros.
15353
15354         * tokentype.h: New file.
15355
15356 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
15357
15358         * assembly.c: added a consistency check and initialize
15359         some structures with g_new0().
15360         * metadata.c: fixed a couple more bugs in table size computation
15361         and add other checks for out-of bound access to metadata.
15362
15363 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
15364
15365         * metatada.c: fix bugs computing table sizes. Spew a
15366         warning when index in string heap is out of bounds.
15367
15368 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
15369
15370         * metadata.h: Add a couple of macros to manipulate tokens. 
15371
15372 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15373
15374         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
15375         cli_section_tables).
15376
15377 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
15378
15379         * metadata.c (mono_metadata_user_string): New function, provides
15380         access to the UserString heap. 
15381
15382 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
15383
15384         * metadata.c: Add inline documentation.
15385
15386 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
15387
15388         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
15389         files. 
15390
15391 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
15392
15393         * typeattr.h: New file, TypeAttribute flags. 
15394
15395 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
15396
15397         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
15398         mono_assembly_ensure_section): Section loading code.
15399         (load_section_tables): Load the sections.
15400
15401         * mono/metadata/metadata.c (mono_metadata_locate_token,
15402         mono_metadata_locate): Functions to locate the information
15403         definition given a token or a table and an index.
15404         (mono_metadata_compute_table_bases): New.
15405         (compute_size): New function to compute the sizes of the various
15406         tables.
15407
15408         * mono/metadata/metadata.h: Finish listing the different index
15409         types. 
15410
15411         * mono/metadata/pedump.c: Improve to dump new information.
15412
15413 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
15414
15415         * mono/metadata/metadata.c: Entered all the tables matching
15416         Beta2. 
15417
15418         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
15419