Updated the patch; it's from #75251.
[mono.git] / mono / metadata / ChangeLog
1 2005-06-13  Michal Moskal <malekith@nemerle.org>
2
3         * reflection.c (field_encode_signature, encode_locals):
4          Make sizes of buffers for types larger (for big generic types).
5          (create_generic_typespec,
6          mono_reflection_sighelper_get_signature_local,
7          mono_reflection_sighelper_get_signature_field):
8          Add asserts for too small buffers.
9
10 2005-06-15  Martin Baulig  <martin@ximian.com>
11
12         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
13         if our parent is not a dynamic type.
14
15 2005-06-15  Martin Baulig  <martin@ximian.com>
16
17         * class-internals.h (MonoTypeNameFormat): New enum.
18
19         * class.c
20         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
21         (mono_type_get_full_name): Removed.
22         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
23         argument instead of the boolean's.
24
25         * icall.c (ves_icall_System_MonoType_getFullName):
26         Added `gboolean assembly_qualified'.    
27
28         * reflection.h
29         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
30
31         * reflection.c (mono_reflection_parse_type): Parse the new type
32         name format.
33
34 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
35
36         * icall.c: no need to convert from utf16 to utf8 and then back again
37         after the call to GetLogicalDrives.
38
39 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
40
41         * icall.c: frombase64. Fix problems exposed by new tests.
42
43 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
44
45         * icall.c: added internal calls for converting char [] and strings in
46         base64 into byte [].
47
48 2005-06-10  Martin Baulig  <martin@ximian.com>
49
50         * class.c (mono_class_create_generic_2): Read the nested classes
51         from the metadata rather than from `gklass->nested_classes' since
52         `gklass' might not be initialized yet.
53
54 2005-06-09  Duncan Mak  <duncan@novell.com>
55
56         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
57         all public headers. Fixes #74919.
58
59 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
60
61         * domain.c: The key for proxy_vtable_hash is now a pointer
62         array. Added new GHashFunc and GCompareFunc functions for this.
63
64         * class.h: The list of interfaces in MonoRemoteClass is known in
65         advance and can't grow (we create a new MonoRemoteClass if needed),
66         so now the interface array can be allocated together with
67         MonoRemoteClass.
68         
69         * object.c: Added a new method create_remote_class_key.
70         Fixed mono_remote_class so it does not depend on
71         mono_upgrade_remote_class.
72         Removed extend_interface_array.
73         Added new method clone_remote_class(), which makes a copy of a remote
74         class and adds a new interface or class to it.
75         mono_upgrade_remote_class() now creates a new remote class (or gets
76         it from the cache) if an vtable upgrade is needed. In this way
77         we make sure that other objects sharing the same remote class
78         don't get the new vtable with unwanted interfaces.
79         
80         * object-internals.h:
81         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
82         
83         * marshal.c: Track changes in mono_upgrade_remote_class().
84
85 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
86         * icall.c: Add runtime methods for obtaining members of inflated
87         class, which were created from supplied non-inflated members. It
88         is used in internal Get{Method,Constructor,Field} methods in
89         System.Type
90
91 2005-06-09  Martin Baulig  <martin@ximian.com>
92
93         * reflection.c
94         (mono_reflection_bind_generic_method_parameters): Fix #75169.
95
96 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
97         * reflection.c (mono_image_basic_init): Define
98         Version in MonoDynamicAssembly. 
99         
100 2005-06-08  Martin Baulig  <martin@ximian.com>
101
102         Fix #75136.
103
104         * loader.c
105         (mono_method_signature_full): New public method; takes a
106         `MonoGenericContext *'.
107         (find_method): Use mono_method_signature_full() and pass the
108         klass'es context to it.
109
110         * class.c (mono_class_is_inflated_method): Use
111         mono_method_signature_full() and pass the context to it.
112
113 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
114
115         * object.c: add proper locking in mono_remote_class_vtable(),
116         fixes possible memory corruption.
117
118 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
119
120         * marshal.c (mono_remoting_marshal_init): set
121         initialized after initialization.
122
123 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
124
125         * locales.c : hush.
126
127 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
128
129         * object.c (extend_interface_array): fix really silly
130         memory corrupting / comparison bug.
131
132 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
133
134         * reflection.c: Functions added to support the creation
135         of CustomAttributeData, which includes Attribute data
136         used by ReflectionOnly methods.
137
138         * reflection.h:  mono_reflection_get_custom_attrs_data and
139          mono_custom_attrs_data_construct added (functions exposed).
140
141          * icall.c: Added mono_reflection_get_custom_attrs_data
142          as icall.
143         
144 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
145
146         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
147         lupus's request.
148
149 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
150
151         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
152
153         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
154         dynamic DllImportAttribute.
155
156         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
157         dynamic DllImportAttribute.
158
159         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
160         Fixes #75162.
161
162 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
163
164         * threads.c: avoid segfault when an unstarted thread is aborted.
165
166 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
167
168         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
169         Returns the name and version of the runtime for reporting.
170
171 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
172
173         * appdomain.c: bump corlib version.
174         * object-internals.h: new field in MonoReflectionAssembly.
175
176 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
177
178         * object-internals.h: Carlos forgot to add this field.
179
180 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
181
182         * icall.c: Added create_version to create instances
183         of Version of MonoReflectionAssemblyName. This change helps
184         the AssemblyName tests to keep running fine.
185         
186 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
187   
188         * object.c (mono_method_return_message_restore): A somehow less
189         intrusive fix for #75138.
190
191 2005-06-03  Raja R Harinath  <rharinath@novell.com>
192
193         * object.c (mono_method_return_message_restore): Fix computation
194         of expected number of out args.
195
196 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
197
198         * reflection.c (mono_image_get_method_info): Fix the case when the
199         charset is empty.
200
201 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
202
203         * object.c: Added missing null check in
204           mono_method_return_message_restore.
205
206 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
207
208         * reflection.c (mono_image_get_method_info): Handle the case when
209         dllentry is empty.
210
211 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
212
213         * object.c: When creating the vtable for a proxy, take into account
214         all inherited interfaces, not only the ones registered in
215         iclass->interfaces. This fixs bug #74996.
216         Also, in mono_method_return_message_restore, verify that the array
217         of out args has the expected lengh.
218
219 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
220
221         * socket-io.c: update the timeout in Poll when the call is interrupte.
222
223 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
224
225         * socket-io.c: support abort/suspend in Select_internal after last
226         change.
227
228 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
229
230         * threadpool.c: remove warning.
231
232 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
233
234         * icall.c:
235         * socket-io.[ch]: Select_internal uses poll() now when available, thus
236         removing the 1024 limit from select(). Runtime part of the fix for
237         bug #71203.
238
239 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
240
241         * socket-io.c: when resolving the addresses for the same
242         host returned by gethostname(), get the local IPs from the interface
243         list. Loopback addresses are discarded if the are interfaces up with
244         non-loopback ones. Fixes bug #63265.
245
246 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
247
248         * appdomain.c, verify.c, object-internals.h, reflection.c:
249         bumped corlib number to 36, and added new extra_flags field
250         to ReflectionMethodBuilder and friends.  Fixes #75060.
251
252 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
253
254         * gc.c: register a new weak link only if the object is non-null
255         (fixes bug#75047).
256
257 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
258
259         * culture-info.h : short time pattern too.
260
261 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
262
263         * culture-info.h : expand long time pattern string length.
264
265 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
266
267         * culture-info-table.h : update (more French date format; #72788).
268
269 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
270
271         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
272         the method is static. Fixes #75029.
273
274 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
275
276         * reflection.c: Update the table_idx field of method builders after
277         saving the module, since it can change. This is a workaround for
278         bug #74914. 
279
280 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
281
282         * culture-info-table.h : update (additional French date format).
283
284 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
285
286         * icall.c (ves_icall_type_Equals): Revert last change.
287         
288         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
289
290         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
291
292 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
293
294         * class-internals.h: Added executioncontext_class field to 
295         MonoDefaults structure.
296         * domain.c: Cache System.Threading.ExecutionContext class in 
297         mono_defaults.
298         * object.c: Capture the ExecutionContext for asynchroneous calls in
299          mono_async_result_new.
300         * object-internals.h: Added execution_context and original_context 
301         fields to MonoAsyncResult. Added execution_context to MonoThread.
302         * security-manager.c|.h: Added mono_get_context_capture_method to 
303         return the capture method (if required by the security manager or by
304         the framework version used).
305         * threadpool.c: Apply capture (if present) ExecutionContext in 
306         mono_async_invoke and revert to original context after it completes.
307
308 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
309
310         * culture-info-table.h : updated (real hacky solution for zh-CHT).
311
312 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
313
314         * culture-info-table.h : zh-CHT related workaround.
315
316 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
317
318         * marshal.c (emit_marshal_custom): Add some error checking and call the
319         methods in the ICustomMarshaler interface. Fixes #74875.
320         
321         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
322         native->managed wrappers.
323
324 2005-05-12  Martin Baulig  <martin@ximian.com>
325
326         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
327         here and use the loader lock.
328
329         * mono-debug.c: Properly lock when the debugger is not attached.
330         (mono_debug_init): Release the initial lock if we're not running
331         in the debugger.
332
333 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
334
335         * marshal.c (emit_marshal_custom): Pass through NULL values without
336         calling the custom marshalling routines.
337
338         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
339         conversion in structures. Fixes #74882.
340
341 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
342
343         * culture-info-table.h : zh-* cultures were missing.
344
345 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
346
347         * threads.c: Added a new event background_change_event which is signaled
348         when a thread changes its background mode.
349         Moved here several checks previously done in managed code. The checks
350         require the thread lock, and using the thread lock in managed code
351         can result in deadlocks.
352         Merged Start_internal and Thread_internal into a single method. Now 
353         Thread_internal does all work of creating and starting a thread.
354         Added icalls for setting and getting the state of the object. Moved from
355         managed code to avoid locking there.
356         Added wait_for_tids_or_state_change() which is called instad of
357         wait_for_tids when waiting for non-backround threads to end. This method
358         will return if one of the threads ends or the background_change_event
359         is signaled.
360         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
361         the background mode. This method signals the background_change_event
362         event.
363         * icall.c:
364         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
365         removed Start_internal.
366         
367 2005-05-11  Martin Baulig  <martin@ximian.com>
368
369         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
370         to order of some fields to get proper alignment on 64-bit machines.
371
372 2005-05-11  Martin Baulig  <martin@ximian.com>
373
374         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
375         changes as they're broken and completely fuck up the debugger.
376
377         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
378
379 2005-05-10  Martin Baulig  <martin@ximian.com>
380
381         * reflection.c (mono_reflection_generic_class_initialize): Don't
382         call mono_class_setup_parent() here.
383
384 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
385
386         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
387         send/receive timeout use an integer in milliseconds. We were using a
388         struct timeval.
389
390 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
391
392         * locales.c:
393         (internal_get_cultures): reserve the first slot of the array for the
394         InvariantCulture, which will be filled in managed code.
395
396 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
397
398         * reflection.c (mono_image_fill_module_table): Initialize the
399         GENERATION field as well.
400
401 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
402
403         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
404         Monitor.Enter on the object.
405
406 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
407
408         * threads.c: Enable the wait for running threads when exiting.
409         * icall.c: Suspend all threads before exiting.
410
411 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
412
413         * assembly.c (mono_assembly_load_reference): Fix warning.
414
415 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
416
417         * threadpool.c: changed the default number of threads per cpu. From now
418         on, the default will be 20 + (5 * number of cpus) instead of 50.
419
420 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
421
422         * loader.c (mono_method_get_signature_full): Add locking here.
423
424 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
425
426         * appdomain.c: Moved methods for parsing and freeing assembly
427         names to assembly.c.
428         * assembly.c, domain-internals.h: Created public methods for parsing
429         assembly names. Fixed mono_assembly_load_with_partial_name:
430         it now finds the best match, taking into account the version,
431         token and culture specified in the partial name. Also return
432         the latest version if no version information is specified.
433
434 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
435
436         * threadpool.c: replace check for SocketAsyncCall class.
437
438 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
439
440         * threadpool-internals.h:
441         * Makefile.am: added threadpool-internals.h
442
443         * threadpool.c: call mono_unhandled_exception on exceptions not handled
444         that happen in threadpool threads (tested on MS).
445         (mono_thread_pool_remove_socket): new function that dispatch any pending
446         AIO call on a socket that is closing. By now only epoll really needs it,
447         as select/poll wake up when the socket closes.
448
449
450         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
451
452 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
453
454         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
455
456 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
457
458         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
459
460 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
461
462         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
463         has an abort request, convert it into a suspend request.
464
465 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
466
467         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
468         warning for the usage of `UnmanagedFunctionPointerAttribute' which
469         is not supported yet.
470
471 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
472
473         * image.c: register assemblies loaded from data (bundles) in the loaded
474         assemblies hash. Fixes bug #74772.
475
476 2005-04-29  Martin Baulig  <martin@ximian.com>
477
478         * class.c (mono_type_get_name_recurse): Update to the new naming
479         schema from the latest .NET 2.x beta2.
480         (mono_class_setup_vtable_general): If we're a generic instance,
481         copy the vtable from our generic type definition and inflate all
482         the methods in it.
483
484         * loader.c (find_method): Update to the new naming schema from the
485         latest .NET 2.x beta2.
486
487 2005-04-29  Raja R Harinath  <harinath@gmail.com>
488
489         * class.c (mono_class_init): Add a mono_loader_unlock to the
490         #74734 fix.
491
492 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
493
494         * icall.c (ves_icall_System_Environment_Exit): Remove the 
495         suspend_all_other_threads () call for the time being, since it can hang.
496
497         * threads.c (mono_thread_manage): Similarly, disable the waiting for
498         the background threads to exit, since it can also hang.
499
500         * class.c (mono_class_init): Applied patch from Ankit Jain 
501         (radical@gmail.com). Avoid pending init errors when a field refers
502         to a nested class using a typeref. Fixes #74734.
503
504         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
505         this for dynamic modules.
506
507 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
508
509         * threads.c: don't wait for threads that are in the process of aborting
510         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
511         and waiting for background threads to finish. This makes xsp and
512         mod-mono-server exit without random length delays and/or hangs.
513
514 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
515
516         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
517
518 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
519
520         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
521         dynamic types to prevent infinite loops. Fixes #74727.
522
523         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
524         ..._is_assignable_to.
525
526 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
527
528         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
529
530 2005-04-25  Martin Baulig  <martin@ximian.com>
531
532         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
533
534         * domain.c
535         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
536
537         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
538
539         * reflection.c (build_compressed_metadata): Set metadata header
540         version to 2.0.
541
542 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
543
544         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
545         number into an integral and a decimal part. Fixes #70473.
546
547         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
548
549 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
550
551         * culture-info-table.h : reflected the latest locale-builder output.
552
553 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
554
555         * threadpool.c: check for SuspendRequested too when deciding if
556         mono_thread_interruption_checkpoint should be called.
557
558 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
559
560         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
561         * threads.c: remove interruption_mutex and use Interlocked instead. When
562         suspending all the threads, wait for all the suspended events at once.
563         If we're shutting down and get an APC that is going to be queued,
564         call mono_thread_execute_interruption immediately, as the thread might
565         be sleeping on a pthread condition or mutex.
566
567         * icall.c: call mono_runtime_set_shutting_down before suspending the
568         threads.
569
570         Fixes bug #74693. And now xsp is happier when exiting.
571
572 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
573
574         * loader.c (mono_stack_walk): Fix #74690.
575
576 2005-04-22  Martin Baulig  <martin@ximian.com>
577
578         * mono-debug.h (MonoDebugMethodJitInfo): Added
579         `MonoDebugMethodJitInfo *jit'.
580
581         * mono-debug.c (mono_debug_read_method): Cache the
582         MonoDebugMethodJitInfo in `address->jit'.
583         (mono_debug_free_method_jit_info): New public method.
584
585 2005-04-22  Martin Baulig  <martin@ximian.com>
586
587         * class.c (mono_class_is_assignable_from): Disallow
588         type parameter -> interface.
589
590 2005-04-21  Dick Porter  <dick@ximian.com>
591
592         * threads.c (mono_thread_create): Turn an assertion into an error.
593
594 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
595
596         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
597         
598         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
599         Fix some gcc 4.0 warnings.
600
601 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
602
603         * file-io.c: fix alt dir separator char on unix systems
604         and cleanup (fixes bug #71214).
605
606 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
607
608         * marshal.c: Use CALLVIRT instead of CALL when dispatching
609         a call to a remote domain, since the method may be an
610         interface method in the client domain. This fixes bug #74192.
611
612 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
613
614         * threadpool.c: recv/send are now performed before going back to managed
615         code to save one transition.
616
617 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
618
619         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
620
621         * metadata/threadpool.c: removed hack to workaround the bug above.
622
623         Fixes bug #74618.
624
625 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
626
627         * reflection.c reflection.h: Fix handling of parameter defaults in
628         dynamic methods. Also fixes handling of parameter attributes.
629         Fixes #74609.
630
631         * mono-debug.c (mono_debug_close_image): Fix warning.
632
633 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
634
635         * socket-io.h: replaced old unused field with new 'blocking'.
636         * threadpool.c: restore socket blocking state on windows(tm).
637
638 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
639
640         * icall.c: don't return the codebase in the AssemblyName[] returned by
641         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
642         * object-internals.h: Removed FIXME (fields were presents) and fixed
643         versioncompat declaration.
644
645 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
646
647         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
648         not closed, so don't cleanup when it happens.
649
650 2005-04-13  Chris Toshok  <toshok@ximian.com>
651
652         * mono-debug-debugger.h: change prototype for
653         mono_debugger_lookup_type.
654
655         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
656         this function, although it should probably be named
657         mono_debugger_init_type.
658
659 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
660
661         * threadpool.c: fix non-AIO case.
662
663 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
664
665         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
666         the built-in profiler to measure just JIT compilation times.
667
668 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
669
670         * threadpool.c: the epollfd might be closed by another thread at
671         any time, so ignore EBADF at treat it as a "we're closing" sign.
672
673 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
674
675         * threadpool.c: release the semaphores with a count equals to the number
676         of working threads in both IO and regular pools. Fixed typo that messed
677         up the count of IO pool threads. Don't initialize the pipe handles if
678         we're using epoll.
679
680 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
681
682         * threadpool.c: some systems don't like a NULL when deleting the socket
683         from epoll.
684
685 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
686
687         * threadpool.c: fix semaphore allocation.
688
689 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
690
691         * threadpool.c: added epoll() based implementation for asynchronous IO
692         that is used instead of the default poll() when available.
693         It can be disabled by setting MONO_DISABLE_AIO.
694
695 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
696
697         * threadpool.c: windows needs 'closesocket' and instead of returning
698         0 when the stream is closed while in select, it returns -1. Fixes bug
699         #74573.
700
701 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
702
703         * class.c (class_compute_field_layout): Fix the regression caused by
704         the previous try.
705
706 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
707
708         * threadpool.c: separate pool for socket async. IO.
709         * threadpool.h: mono_max_worker_threads is not a global any more.
710
711 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
712
713         * class.c (class_compute_field_layout): Fix #74549.
714
715 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
716
717         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
718         use 2 connected sockets instead.
719
720 2005-04-08  Miguel de Icaza  <miguel@novell.com>
721
722         * mono-config.c: Add new entry point for mkbundle
723         mono_config_parse_memory. 
724
725 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
726
727         * threadpool.c: removed another unused function.
728
729 2005-04-08  Ankit Jain  <radical@corewars.org>
730
731         * reflection.c (get_default_param_value_blobs): Add 'types'
732         parameter to get the types encoded in the constant table.
733         (mono_param_get_objects): Use the type from the constant table,
734         not the type of the parameter, when creating default values.
735         Handle null default values correctly.
736
737 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
738
739         * file-io.c:
740         * file-io.h:
741         * threadpool.c:
742         * threadpool.h:
743         * icall.c:
744         * socket-io.c: removed dead code for async IO.
745
746 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
747
748         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
749
750         * threadpool.c: intercept socket async. calls and pass them to a thread
751         that is polling and dispatching the job items to the threadpool as
752         socket become ready. Fixes bugs #71217, #71933.
753
754         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
755         between char and short/ushort arrays.
756
757         * socket-io.c: remove dead code.
758
759 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
760
761         * locales.c,
762           icall.c : removed InternalToUpper_Comp() and
763           InternalToLower_Comp().
764
765 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
766
767         * char-conversions.h : The tables were incorrectly generated. Should
768           be generated against invariant culture.
769
770 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
771
772         * object.c (mono_runtime_invoke_array): Fix return value when 
773         passing pre-created valuetype objects to ctors.
774
775         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
776         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
777         Fixes #74338.
778
779 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
780
781         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
782         only used with --security and hides the wrong corlib version error.
783
784 2005-03-30  Joshua Tauberer  <tauberer@for.net>
785
786         * class.c: Changed mono_class_name_from_token so that types
787         outside of a namespace don't have an initial period.  Improved
788         the g_warning message used in _mono_class_get when loading
789         fails.
790         * assembly.c: In mono_assembly_load_reference, when an assembly
791         can't be found, "No such file or directory" is misleading and
792         unhelpful because a few paths were checked for the presence of
793         the assembly.  When that happens (ENOENT), display a nicer
794         message indicating the directories that were searched.  In all
795         cases, the warning is made easier to read for non-hackers.
796
797 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
798
799         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
800         project/solution.
801         * appdomain.h|domain.c: Removed inline from functions.
802         * appdomain.c: Reduced warnings when compiling on windows.
803         * icall.c: Fixed output_debug declaration to gunichar2*.
804         * mono-config.c: Reduced warnings when compiling on windows.
805         * rand.c: Added missing "windows.h". Added missing return value.
806         * rawbuffer.c: Added missing winsock2.h for windows.
807         * sysmath.h: Added mono-compiler.h header to allow/ease 
808         compilation with non-GCC compilers.
809         * threads.c: Fixed declarations to compile with VS.NET C compiler.
810         Removed cast warnings.
811
812         Adapted from the work of J Lothian (for VC6).
813
814 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
815
816         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
817         from default_path.
818
819 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
820
821         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
822         the 2.0 profile.
823
824 2005-03-27  Raja R Harinath  <harinath@gmail.com>
825
826         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
827         has to be in $(exec_prefix).  $(prefix) is for arch-independent
828         stuff, and it would probably use $(prefix)/share rather than
829         $(prefix)/lib.
830
831 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
832
833         * console-io.c: added 2 includes that might be missing.
834
835 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
836
837         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
838         profile.
839
840         * reflection.c (create_custom_attr): Allocate the params array using
841         alloca so it gets GC tracking.
842
843 2005-03-23  Chris Toshok  <toshok@ximian.com>
844
845         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
846         out some spew.
847
848 2005-03-24  Raja R Harinath  <rharinath@novell.com>
849
850         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
851         changes to pick up any changes in prefix, etc.
852
853 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
854
855         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
856         
857         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
858         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
859
860 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
861
862         * class-internals.h object-internals.h class.c reflection.c: Extend the
863         mono_lookup_dynamic_token () function to return the class of the
864         token as well. 
865
866         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
867         well. Fixes #73848.
868
869 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
870
871         * security-manager.c: Skip inheritance checks for intra-corlib
872         class inheritance and method overrides. This skips a lot of checks
873         and (anyway) permissions cannot work until corlib is loaded.
874
875 2005-03-23  Martin Baulig  <martin@ximian.com>
876
877         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
878         MONO_TYPE_GENERICINST.  
879
880 2005-03-23  Martin Baulig  <martin@ximian.com>
881
882         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
883
884 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
885
886         * class.c: added locking comments to some functions.
887         Cache the interface offsets arrays (saves about 20 KB
888         of runtime memory in a typical app).
889         Reduce the time overhead in mono_class_setup_supertypes ().
890
891 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
892
893         * icall.c: speedup and fix leaks in GetMethodsByName and
894         GetPropertiesByName.
895
896 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
897
898         * reflection.c: some locking fixes.
899
900 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
901
902         * metadata.c: added missing break in case statement.
903
904 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
905
906         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
907         typedbyref return values. Fixes #73941.
908
909 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
910
911         * security-manager.c|h: Added demandunmanaged method and 
912         suppressunmanagedcodesecurity class to MonoSecurityManager.
913         Renamed aptc class to allowpartiallytrustedcallers.
914
915 2005-03-17  Martin Baulig  <martin@ximian.com>
916
917         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
918
919 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
920
921         * file-io.c: disabled file async. IO using aio_*. It uses the
922         threadpool now. Workaround for bug #73718.
923
924 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
925
926         * assembly.h, mono-config.c: added code to deal with bundled configs
927         for bundled assemblies.
928
929 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
930
931         * *.c, private.h: cleanup, removing old private.h header file.
932
933 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
934
935         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
936         and throw_on_unmappable_char attributes.
937
938 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
939
940         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
941         _ProcessName_internal.
942
943 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
944
945         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
946         #73631.
947
948         * icall.c threads.c threads-types.h: Remove slothash icalls as they
949         are no longer used.
950
951 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
952
953         * object.c (compute_class_bitmap): Add support for generics. Fixes
954         #73527.
955
956 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
957
958         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
959
960 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
961
962         * filewatcher.c: commented out the code for windows watcher, as we don't
963         use it (we use the managed implementation instead).
964
965 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
966
967         * object-internals.h (MonoThread): Remove 'unused1' field.
968
969         * appdomain.c: Bump corlib version.
970
971         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
972
973         * reflection.c (mono_reflection_create_runtime_class): Remove the
974         AssemblyBuilder.Save optimization since it causes too many problems.
975
976 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
977
978         * exception.c|h: Added mono_get_exception_reflection_type_load to
979         create a ReflectionTypeLoadException object.
980         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
981         to return NULL is a InheritanceDemand fails during reflection. Updated
982         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
983         ReflectionTypeLoadException if an InheritanceDemand fails during 
984         reflection. Added icall mapping for GetLinkDemandSecurity.
985         * security-manager.c|h: Added ves_icall_System_Security_
986         SecurityManager_GetLinkDemandSecurity internal call to return the
987         class and methods permissions set for a LinkDemand. Removed unused
988         fields in MonoSecurityManager.
989
990 2005-03-10  Martin Baulig  <martin@ximian.com>
991
992         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
993         it's a generic instance.
994
995 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
996
997         * reflection.c (mono_get_object_from_blob): Applied patch from
998         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
999
1000         * class.c (mono_class_is_assignable_from): Another try at fixing 
1001         #73469 without breaking anything.
1002
1003 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
1004
1005         * class.c: (mono_class_is_assignable_from): Revert the last changes
1006         since they don't work with generics.
1007         
1008         * class.c (mono_class_is_assignable_from): Fix build bustage.
1009
1010         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
1011         the managed IsAssignableFrom method. Fixes #73469.
1012
1013         * reflection.c (mono_reflection_call_is_assignable_from): New helper
1014         function.
1015
1016 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
1017
1018         * object.c (mono_load_remote_field_new): Fix returning uninitialized
1019         memory when the remoting callback does not sets the out arguments.
1020         Fixes #73007.
1021
1022         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
1023         by mistake.
1024
1025         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
1026
1027         * object-internals.h (MonoStackFrame): Sync with managed object layout.
1028
1029         * appdomain.c: Bump corlib version.
1030
1031 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
1032
1033         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
1034         function.
1035
1036         * threads.c (mono_thread_attach): Detect threads which are not started
1037         by the GC pthread wrappers.
1038
1039 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
1040
1041         * icall.c: Added new icall for RNG.
1042         * rand.c|h: Added new icall to open the RNG. This allows to share a 
1043         single handle on Linux to access /dev/urandom and fix #73183.
1044
1045 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
1046
1047         * object.c: setting the new vtable in a transparent proxy object must
1048         not change the GC descriptor.
1049
1050 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1051
1052         * object.c: fixed compilation without GCJ support.
1053         * reflection.c: for runtime-created types ensure klass->has_references
1054         is correct (bug #73215).
1055
1056 2005-03-02  Martin Baulig  <martin@ximian.com>
1057
1058         * class.c (mono_class_is_assignable_from): Make this work if
1059         `oklass' is a generic instance; fixes #72831.
1060
1061 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1062
1063         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
1064         with hasthis set.
1065         
1066         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
1067
1068         * marshal.c: Reorganize native->managed marshalling code to also use
1069         the emit_marshal_... functions.
1070
1071 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1072
1073         * object.c: typed allocs have issues with bitmap sizes > 30,
1074         so check for max_set >= 30.
1075
1076 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1077
1078         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
1079         managed code. Fixes #73012.
1080
1081         * metadata.h (MonoMarshalSpec): Add elem_mult field.
1082
1083         * metadata.c reflection.c: Load/Emit elem_mult as well.
1084         
1085         * metadata.h (MonoMarshalSpec): Add comment.
1086
1087         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
1088
1089         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
1090         num_elem to -1 if not given.
1091
1092         * object-internals.h (MonoReflectionMarshal): Add has_size field.
1093
1094         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
1095         given values.
1096
1097 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
1098
1099         * null-gc.c (mono_gc_free_fixed): Was not compilable.
1100
1101 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
1102
1103         * reflection.c (encode_marshal_blob): Encode param_num field as well.
1104
1105         * object-internals.h (MonoReflectionMarshal): Add param_num field.
1106
1107 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1108
1109         * object.c: generalized the reference bitmap creation
1110         and added hooks for the new GC.
1111         * class-internals.c: removed the gc_bitmap field from MonoClass.
1112
1113 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1114
1115         * domain.c: help the compiler to produce better code
1116         in mono_jit_info_table_find ().
1117
1118 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1119
1120         * object.c: make all allocations look typed.
1121
1122 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1123
1124         * socket-io.c: load Mono.Posix if it's not loaded already
1125         (fixes bug#73033).
1126
1127 2005-02-24  Martin Baulig  <martin@ximian.com>
1128
1129         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
1130         * reflection.c (dup_type): Likewise.
1131
1132 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
1133
1134         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
1135         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
1136
1137 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1138
1139         * domain.c, threads.c, object-internals.h: make the critical thread
1140         local vars use the fast access mode (even when we're compiled in
1141         a lib). Provide accessors to be used by the jit during codegen.
1142
1143 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1144
1145         * appdomain.c: Changed hook functios behavior to include
1146         support for the reflection only assemblies. Some icalls were changed
1147         to support the mentioned assemblies too. Signatures of static methods
1148         try_assembly_resolve and real_load now have an additional parameter:
1149         refonly.
1150
1151         * assembly.c: General changes to mono_assembly_ methods to support
1152         reflection only api. Functions mono_assembly_open, mono_assembly_load,
1153         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
1154         suffix, to support an additional gbool parameter to specify whether
1155         the assembli is reflection only or not. Created some new hook functions 
1156         to add support for reflection only assemblies. Signatures of static 
1157         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
1158         have now an additional parameter: refonly.
1159
1160         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
1161         indicating whether the assembly is reflection only or not.
1162
1163         * exception.c: Add mono_get_exception_invalid_operation.
1164
1165         * icall.c: Throw an InvalidOperationException when trying to invoke
1166         a property/method/event, or trying to set/get the value of a field.
1167         Also add an icall to retrieve the ref_only flag to the
1168         MonoReflectionAssembly.
1169
1170 2005-02-23  Chris Toshok  <toshok@ximian.com>
1171
1172         Part of fix for #72827.
1173         * mono-debug.c (mono_debug_add_method): add lexical block data to
1174         the info we write.  Kind of a hack at the moment - we copy the
1175         lexical block info from the MonoDebugMethodInfo to the
1176         MonoDebugMethodJitInfo here, before writing it.
1177         (mono_debug_read_method): read the lexical block info.
1178
1179         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
1180
1181         * debug-mono-symfile.h: add lexical block support.
1182
1183         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
1184         support.
1185
1186 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1187
1188         * loader.c (mono_lookup_pinvoke_call): Fix warning.
1189
1190         * object.c (mono_runtime_free_method): Call mono_free_method () and
1191         put the TODOs there.
1192
1193         * loader.c (mono_free_method): Free up most memory allocated for 
1194         dynamic methods.
1195
1196 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1197
1198         * reflection.c: properly flag a Type argument to a
1199         named custom attr value (bug #72248).
1200
1201 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1202
1203         * reflection.c: reduce code duplication in named custom
1204         attribute encoding.
1205
1206 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
1207
1208         * reflection.c: properly encode custom attrs of type object
1209         (bug #72649).
1210
1211 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1212
1213         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
1214
1215 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
1216
1217         * socket-io.c: load System.dll if it's not loaded already
1218         (bug #72850 and #70477).
1219
1220 2005-02-21  Martin Baulig  <martin@ximian.com>
1221
1222         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
1223         generic instances.
1224
1225 2005-02-21  Martin Baulig  <martin@ximian.com>
1226
1227         * reflection.c (mono_image_build_metadata): We also need to
1228         "fixup" the MethodImpl table after we computed the final method
1229         indices.  Call fixup_methodimpl() to do that.
1230         (fixup_methodimpl): New private method.
1231
1232 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1233
1234         * assembly.c: special case mscorlib.dll (bug#72536),
1235         patch from Carlos Alberto Cortez.
1236
1237 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
1238
1239         * threads-types.h threads.c: Fix build bustage.
1240
1241         * threads.c: Use a union for long<->double conversions.
1242
1243         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
1244         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
1245
1246         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
1247         containing the checkpoint call with NOT_TAKEN.
1248         
1249         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
1250         checkpoint before pushing the arguments, so they won't have to be
1251         spilled to stack.
1252
1253 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1254
1255         * domain.c, assembly.c, domain-internals.h: make some data
1256         const and relocation-free.
1257
1258 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
1259
1260         * object.c, appdomain.c, class-internals.h: introduce the
1261         MonoClassRuntimeInfo structure to hold the info needed to
1262         use a class at runtime. Made mono_class_vtable() lock-free
1263         for all the appdomains.
1264
1265 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
1266
1267         * metadata-internals.h, image.c: introduce a per-image mempool to
1268         be used for memory that has the same lifetime as the image.
1269
1270 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
1271
1272         * domain.c: In mono_init_internal(), instead of selecting the first
1273         runtime version supported by an executable, get a list of all
1274         supported versions and select the one for which an mscorlib exists
1275         (since even if the runtime supports a given version, it doesn't mean
1276         that the framework for that version is installed).
1277         Modified get_runtimes_from_exe to support this behavior.
1278         In supported_runtimes, added information about additional system
1279         assembly versions.
1280         
1281         * assembly.c: Added support for more than one system assembly version
1282         per runtime version. Updated the assembly list.
1283         In mono_assembly_remap_version, removed the initial version check,
1284         since we don't know to which version we need to compare until we
1285         get the version set on which the assembly is based.
1286         Moved the code for loading corlib into the new method
1287         mono_assembly_load_corlib(), so it can be used by the initialization
1288         code.
1289         
1290         * domain-internals.h: Updated data structures and added declaration
1291         for mono_assembly_load_corlib.
1292
1293 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1294
1295         * reflection.c (resolve_object): Fix the creation of the signature in 
1296         the SignatureHelper case.
1297
1298         * assembly.c (mono_assembly_remap_version): Fix binary search.
1299         
1300 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
1301  
1302         * class.c: Added inheritance check when a method is overloaded (from a
1303         virtual method or when implementing an interface) and when a class is
1304         inherited. Added functions to set a failure for a class and to 
1305         retreive the exception from a failure.
1306         * class-internals.h: Added fields to MonoClass to keep the exception
1307         information status for inheritance (or other exceptions) to be thrown
1308         later (i.e. not at load time).
1309         * object.c: Throw the inheritance SecurityException when a type is to 
1310         be created with either class or method inheritance violations.
1311         * reflection.c|h: Fix when getting declsec from a class. Removed 
1312         unrequired code for class. Improved sanity in parameter naming.
1313         * security-manager.c|h: Added functions to check for class and method
1314         inheritance.
1315
1316 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1317
1318         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
1319         and has_finalize in dynamic types as well.
1320
1321 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
1322
1323         * culture-info-table.h : fixed currency format for en-GB (and so on).
1324
1325 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
1326
1327         * gc.c: ensure the GC handles never have 0 as a value.
1328
1329 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
1330
1331         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
1332         a pointer to a struct to unmanaged code. Fixes #72625.
1333
1334 2005-02-16  Martin Baulig  <martin@ximian.com>
1335
1336         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
1337
1338 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
1339
1340         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
1341
1342 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
1343
1344         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
1345
1346         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
1347         UnmanagedFunctionPointerAttribute, use it for determining calling convention
1348         etc. Fixes #71471.
1349
1350         * reflection.c (mono_custom_attrs_get_attr): New helper function.
1351
1352         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
1353
1354 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
1355
1356         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
1357         changes to make the current context a field in MonoThread.
1358
1359 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
1360
1361         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
1362         the last change.
1363         
1364         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
1365         extracted from mono_marshal_get_native_wrapper.
1366
1367         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
1368         to create wrappers around native functions.
1369
1370         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
1371         delegates for arbitrary function pointers. Fixes #71472.
1372
1373 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1374
1375         * threads.c: cleaned up the code a little.
1376
1377 2005-02-15  Martin Baulig  <martin@ximian.com>
1378
1379         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
1380         the data table.
1381
1382         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
1383         allocate larger chunks if needed.
1384
1385 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1386
1387         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
1388         in by mistake.
1389
1390 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
1391
1392         * domain.c: keep the domains in an array and ensure the domain ids
1393         are kept small, so they can be used as indexes to domain-specific data
1394         with a small memory overhead.
1395
1396 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1397
1398         * icall.c: Handle byref types in Type icalls. Fixes #72544.
1399
1400 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
1401
1402         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
1403
1404 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
1405
1406         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
1407
1408         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
1409         values.
1410
1411         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
1412         
1413 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
1414
1415         * domain-internals.h: add the hashtable here.
1416
1417         * class-internals.h: Remove `info' from MonoMethod
1418
1419         * domain.c: Add a new hashtable, jit_trampoline_hash
1420
1421 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1422
1423         * object.c: don't set the value of static fields
1424         (fixes bug#72494).
1425
1426 2005-02-11  Martin Baulig  <martin@ximian.com>
1427
1428         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
1429         (mono_debug_add_method): Silently ignore the method if it's too big.
1430         (mono_debug_add_type): Likewise.
1431
1432 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
1433
1434         * threads.c, appdomain.c: remove #ifdefs from the code.
1435
1436 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
1437
1438         * metadata-internals.h: Added flags to MonoAssembly to cache the most
1439         common security informations. This allows us to stay in unmanaged code
1440         when doing LinkDemand and it's special cases (except for the first 
1441         time for initialization). The flags a very much used with --security.
1442         * reflection.c|h: Added code to get declarative security attributes 
1443         for LinkDemand and InheritanceDemand. This required to refactor the
1444         existing code for Demand.
1445         * security-manager.c|h: Added new method fields for the special cases
1446         of LinkDemand.
1447
1448 2005-02-10  Martin Baulig  <martin@ximian.com>
1449
1450         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
1451         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
1452
1453 2005-02-10  Martin Baulig  <martin@ximian.com>
1454
1455         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
1456         debugging code; this is almost a complete rewrite.
1457
1458         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
1459
1460 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1461
1462         * domain.c, object.h: expose mono_string_equal () and 
1463         mono_string_hash ().
1464         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
1465         it's implemented in managed code.
1466
1467 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1468
1469         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
1470         lo leak objects between appdomains.
1471
1472 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1473
1474         * assembly.c: old compilers compilation fix from 
1475         robertj@gmx.net (Robert Jordan).
1476
1477 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
1478
1479         * class-internals.h: Little reminder for the future.
1480
1481         * debug-helpers.c: Fix up wrapper_type_names
1482
1483 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1484
1485         * image.c, metadata-internals.h: when loading an image from a file,
1486         mmap all of it and use the same codepaths as when using a
1487         in-memory image: the code is simpler and we use less memory
1488         (both writable and readonly).
1489
1490 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1491
1492         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
1493         API to alloc runtime data structures that need to be tracked by the
1494         GC and contain pointers.
1495         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
1496         make the code more readable and eventually use a different GC.
1497
1498 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
1499
1500         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
1501         for out arguments.
1502         
1503 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
1504
1505         * object.c: In release_type_locks(), don't release the cctor lock
1506         if it has already been released. This fixes a crash in the
1507         thread5 test.
1508
1509 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1510
1511         * gc.c, marshal.c, icall.c: register a delegate for finalization
1512         only when the native function pointer has been allocated for it.
1513
1514 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1515
1516         * object.c: cleaned up some code, allocate objects that are
1517         pointer free with the atomic malloc variant. Allocate memory
1518         for static data from the mempool if it's pointer-free.
1519         Allocate the bounds array at the end of the array data, when needed.
1520         * object-internals.h, object.h: move a private function in a private
1521         header.
1522         * class.c: handle missing case in tracking references in fields.
1523
1524 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1525
1526         * class.c, class-internals.h: keep track if a type has
1527         reference fields in either the instance or static fields.
1528
1529 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
1530
1531         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
1532         and renamed to MonoRuntimeInfo. Added fields to store the expected
1533         framework assembly version. Changed mono_get_framework_version and
1534         mono_get_runtime_version for a single mono_get_runtime_info method.
1535         
1536         * assembly.c: Added method to remap system assembly versions to the
1537         current executing runtime version. Removed old mapping code.
1538         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
1539         
1540         * icall.c, reflection.c: Track api changes.
1541
1542 2005-02-06  Miguel de Icaza  <miguel@novell.com>
1543
1544         * loader.c (method_from_memberref): Improve error reporting,
1545         produce the class name instead of the typeref/typedef index. 
1546
1547 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
1548
1549         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
1550
1551 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1552
1553         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
1554         stdcall and charset name mangling.  Reorganize the code and add
1555         some tracing stuff.
1556
1557 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
1558
1559         * monodiet.c: More iters!
1560
1561         * marshal.c: Iter usage.
1562
1563         * icall.c: Iter usage.
1564
1565         * object.c: Use iters.
1566
1567         * debug-helpers.c: More iters
1568
1569 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1570
1571         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
1572         under win32.
1573
1574 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
1575
1576         * mono-debug-debugger.c: use iters
1577
1578         * class.c, class-internals.h: mono_class_setup_events is static
1579         now
1580
1581         * All callers: use iters
1582
1583 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1584
1585         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
1586         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
1587
1588 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1589
1590         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
1591
1592         * marshal.h: Add prototypes for ldfld/stfld_remote.
1593
1594         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
1595         this is called during startup.
1596         
1597 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
1598
1599         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
1600         MonoThreadsSync struct private in monitor.c. Changed the way
1601         MonoThreadsSync is allocated so it's faster and there is no
1602         need to keep track of it with a finalizer and it uses less memory.
1603         This also finally allows us to allocate mono objects as ptrfree when
1604         there are no reference fields.
1605
1606 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
1607
1608         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
1609         disappearing link to the GC interface and use them to simplify
1610         the gchandles code.
1611
1612 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1613
1614         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
1615         stfld_remote which call mono_load/store_field_new. This allows methods
1616         calling ldfld/stfld wrappers to be AOTed.
1617
1618         * console-io.c: Include sys/filio.h under solaris.
1619         
1620         * console-io.c: Include curses.h if needed correctly.
1621
1622 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1623         
1624         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
1625         method->klass as well.
1626
1627         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
1628
1629         * class.c (mono_class_init): Switch on lazy initialization of 
1630         methods.
1631
1632         * class.c (mono_class_get_finalizer): Handle the case when the 
1633         finalizer is inherited.
1634
1635 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1636
1637         * console-io.c: <curses.h> is needed by term.h on solaris.
1638
1639 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
1640
1641         * icall.c, class-internals.h, monodiet.c, class.c: Remove
1642         mono_class_setup_properties where possible. Remove this ftn from
1643         the header file, and make it static.
1644
1645 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1646
1647         * loader.c: Add missing setup_... call.
1648
1649         * class.c: Add missing setup_... calls.
1650
1651         * class.c (mono_class_init): Switch on lazy initialization of 
1652         the generic vtable.
1653         
1654         * class.c (mono_class_init): Fix generics broken by the recent changes.
1655
1656         * monodiet.c (handle_type): Add missing setup_... calls.
1657
1658         * class.c: Back out garbage in previous patch.
1659         
1660         * class.c: Add missing setup_... calls.
1661
1662         * class.c (mono_class_get_method_from_name_flags): Avoid calling
1663         mono_class_setup_methods () if possible.
1664
1665         * class-internals.h (MonoClass): Add 'has_cctor' flag.
1666
1667         * class-internals.h (MonoCachedClassInfo): New structure.
1668
1669         * class.c: Initialize properties and events fields of MonoClass lazily.
1670
1671         * class.c: Add infrastructure for lazily initializing the methods and
1672         vtable fields of MonoClass. Not yet used.
1673
1674         * class.c (mono_class_get_finalizer): New helper function.
1675
1676         * class.c: Add infrastructure for loading some class related data from
1677         an AOT file.
1678
1679         * object.c: Add infrastructure for initializing the vtable from data
1680         in the AOT file.
1681
1682         * gc.c (run_finalize): Use mono_class_get_finalizer ().
1683
1684         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
1685         appropriate initialization function before accessing parts of the
1686         MonoClass structure.
1687
1688         * marshal.c: Fix warnings.
1689         
1690         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
1691
1692         * mono-debug-debugger.c (get_exception_message): Use 
1693         mono_class_get_method_from_name_flags ().
1694
1695 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
1696
1697         * reflection.c, appdomain.c: Replace a few manual searches that
1698         Zoltan missed. (Paolo approved this part of my initial patch).
1699
1700 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
1701
1702         * profiler.c: disable recording statistical events at report time.
1703
1704 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1705
1706         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
1707         to byteswap arrays of enum values, too (bug #72080).
1708
1709 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
1710
1711         * appdomain.c (set_domain_search_path): Allow this to be called if
1712         domain->setup is not yet set.
1713
1714         * loader.c (mono_method_get_index): New helper function.
1715
1716         * loader.c reflection.c: Use mono_method_get_index ().
1717
1718         * class.c (mono_class_get_method_from_name_flags): New helper method.
1719
1720         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
1721         this.
1722
1723         * class.c (mono_class_get_cctor): New helper method.
1724
1725         * string-icalls.c object.c class.c marshal.c reflection.c: Use
1726         mono_class_get_method () to look up methods.
1727
1728 2005-02-01  Miguel de Icaza  <miguel@novell.com>
1729
1730         * console-io.c: Fix the build, this should work on Windows.
1731
1732 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
1733
1734         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
1735         be set to null to keep things valid
1736
1737 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1738
1739         * icall.c: added Console 2.0 icalls.
1740         * Makefile.am: added console-io.[ch]
1741         * console-io.[ch]: internal calls for Console 2.0 API.
1742
1743 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1744
1745         * class.c: make sure we consider all the interfaces
1746         when calculating max_interface_id (bug found by
1747         Jeroen Frijters running ikvm).
1748
1749 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
1750
1751         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
1752         valuetype fields to null.
1753
1754         * object.c (set_value): Ditto. Fixes #71669.    
1755
1756 2005-01-31  Martin Baulig  <martin@ximian.com>
1757
1758         * metadata.c (mono_metadata_has_generic_params): New public
1759         function; checks whether something is a generic method.
1760
1761 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
1762
1763         * appdomain.c: fix infinite recursion when adding assemblies.
1764
1765 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
1766
1767         * object.c: Fix small typo to return all items for Environment.
1768         GetCommandLineArgs.
1769
1770 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1771
1772         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
1773         reflection.c: more domain and assembly-unload related fixes
1774         and memory leaks plugs.
1775
1776 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
1777
1778         * 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.
1779
1780 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
1781
1782         * loader.c (mono_method_signature): Make this method lazy
1783         (mono_get_method_from_token): Don't computate the signature here.
1784
1785         Doing this saves quite a bit of memory. I got 90 kb on starting up
1786         monodoc. It should also save some disk reads on startup.
1787
1788         * *: MonoMethod->signature might be NULL now. You *MUST* use
1789         mono_method_signature.
1790
1791 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
1792
1793         * object.c (mono_runtime_get_main_args): Return an array from the
1794         current domain here. Fixes #71938.
1795
1796 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
1797
1798         * monitor.c: formatting changes to comply with the
1799         mono coding style and remove #ifdefs from the code.
1800
1801 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1802
1803         * metadata.c, private.h: remove some unneeded data
1804         and use a more compact representation for table schemas.
1805
1806 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
1807
1808         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
1809         to get a better distribution in hash tables.
1810         * *.c: use mono_aligned_addr_hash() where appropriate.
1811         * assembly.c: make var static.
1812
1813 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
1814
1815         * domain-internals.h: Put MonoJitInfo on a diet.
1816
1817         * domain.c: Fix a warning.
1818
1819 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1820
1821         * gc.c: rework the gc handles code to reuse handles
1822         when freed.
1823
1824 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1825
1826         * domain.c: fixed long standing bug in mono_string_equal() which
1827         was brought to light with the ldstr changes.
1828
1829 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
1830
1831         * reflection.c: Remove warning by adding missing include for marshal.h
1832
1833 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1834
1835         * domain.c, object.c: change the ldstr_table to hold
1836         MonoString* as keys: makes the runtime isinterned lookup
1837         faster and simplifies memory management.
1838
1839 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
1840  
1841         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
1842         possible to add imperative security checks before calling the icall.
1843         * reflection.c: Return security attributes on the original MonoMethod
1844         (and not the wrapped one). This fix permissions on icalls.
1845
1846 2005-01-25  Dick Porter  <dick@ximian.com>
1847
1848         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
1849         the check for mktime() support actually test the mktime() return
1850         value.  "Fixes" bug 71682, though the output is still different to
1851         MS.
1852
1853 2005-01-25  Martin Baulig  <martin@ximian.com>
1854
1855         * class.c (mono_class_is_assignable_from): Make this work for
1856         generic instances.
1857
1858 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
1859
1860         * marshal.c (mono_string_utf8_to_builder)
1861         (mono_string_builder_to_utf16): We might not have ownership of the
1862         string. In thise case, we need to create a new buffer.
1863
1864         * object-internals.h (mono_stringbuilder_capacity): sb->str might
1865         be null, in which case, use the default capacity.
1866
1867 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1868
1869         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
1870         GC events to the profiler.
1871
1872 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1873
1874         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
1875         if you don't want the GC to run.
1876
1877 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
1878
1879         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
1880         start providing a GC API and keeping different implementations in
1881         their own file.
1882         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
1883
1884 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
1885
1886         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
1887         mmap rather than allocating a huge buffer.
1888         (mono_debug_close_mono_symbol_file): Free the buffer allocated
1889         above.
1890
1891 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
1892
1893         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
1894         and CheckExecutionRights.
1895         * reflection.c|h: Keep the index of the declarative security to be 
1896         used, instead of the pointer, when AOT compiler is used. Also add 
1897         class initialization when requesting demands.
1898         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
1899         CheckExecutionRights. Both properties are now FALSE by default, and
1900         unmodifiable, unless the --security option is used.
1901
1902 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1903
1904         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
1905         reflection.c: properly refcount images and assemblies, many leaks fixed.
1906
1907 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1908
1909         * threadpool.c: increase the timeout for threads in the thread pool to
1910         10s.  Fixes bug #67159.
1911
1912 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
1913
1914         * class-internals.h: Sun's compiler insists on explicit
1915         signed on bit fields to handle then correctly.
1916
1917 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
1918
1919         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
1920         Make the size of the array fit only the number of invalid path
1921         chars that we have.
1922
1923         * class.c (_mono_class_get): Improve the error reporting when a
1924         class referenced is not found, to assist debugging. 
1925
1926 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
1927
1928         * threads.c: fix off-by-one error.
1929         * domain.c: free data allocated in the domain.
1930
1931 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
1932
1933         * reflection.c (mono_method_body_get_object): Fill out exception info
1934         as well.
1935
1936         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
1937         structure.
1938         
1939 2005-01-19  Martin Baulig  <martin@ximian.com>
1940
1941         * loader.c (mono_get_method_constrained): Make this work again.
1942
1943 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
1944
1945         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
1946         guint16 to match the managed side.
1947
1948         * reflection.c (mono_reflection_body_get_object): Fill out local
1949         variables array.
1950
1951         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
1952         as well.
1953
1954         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
1955         'local_var_sig_token'.
1956
1957 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
1958
1959         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
1960         System.Drawing.
1961
1962         * reflection.c (mono_method_body_get_object): Handle abstract and
1963         runtime methods.
1964
1965 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
1966
1967         * marshal.c, loader.c, class-internals.h, reflection.c:
1968         store the emthod data for a wrapper in an array instead of a list.
1969
1970 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
1971
1972         * marshal.c: change the code to allocate memory more
1973         conservatively for method wrappers.
1974
1975 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
1976
1977         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
1978         fields from MonoClass to the marshal info structure where they belong.
1979
1980 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1981
1982         * class.c, object.c, class-internals.h, marshal.c: rearrange
1983         some fields and tweak some types to lower memory usage.
1984
1985 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
1986
1987         * threads.c (signal_thread_state_change): Handle the case when the
1988         target thread is the current thread.
1989
1990         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
1991
1992         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
1993         emit_ptr_to_object_conv. 
1994
1995         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
1996         marshalling. Fixes #71352.
1997
1998 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1999
2000         * metadata.h, blob.h: move table enum to blob.h so it can be included
2001         in any header.
2002         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
2003         cut the size of MonoImage/MonoDynamicImage.
2004
2005 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
2006
2007         * profiler.c (mono_profiler_install_simple): Fix default arguments.
2008
2009 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2010
2011         * reflection.c, reflection.h, icall.c: add a function to check
2012         if an attribute type is defined for a metadata object.
2013
2014 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
2015
2016         * object-internals.h: Added some needed fields from StringBuilder class.
2017         * marshal.c: Set the maxCapacity when creating a StringBuilder.
2018
2019 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
2020
2021         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
2022         threads before shutting down the runtime.
2023
2024         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
2025
2026 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
2027
2028         * object-internal.h, threads.c: implement stacksize and 
2029         parameterized thread start functionality (requires
2030         matching corlib). Marked broken code for later removal.
2031
2032 2005-01-12  Martin Baulig  <martin@ximian.com>
2033
2034         * class-internals.h (MonoGenericClass): Moved the `initialized'
2035         flag to MonoDynamicGenericClass, removed `init_pending'.
2036         (MonoGenericInst): Added `is_reference' flag.
2037
2038 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
2039
2040         * reflection.c (mono_image_create_pefile): Only set the pe_offset
2041         inside the MSDOS header. Fixes #71201.
2042
2043         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
2044         gc thread.
2045         (mono_domain_finalize): Ditto.
2046
2047 2005-01-12  Martin Baulig  <martin@ximian.com>
2048
2049         * class.c (mono_get_shared_generic_class): Use the cache for
2050         non-dynamic generic classes.
2051
2052         * class-internals.h (mono_class_create_generic_2): Removed
2053         function prototype, this function is now static inside class.c.
2054
2055         * class.c (mono_class_create_generic_2): Made this static, only
2056         call it from mono_class_init() and mono_class_setup_parent().
2057         (collect_implemented_interfaces_aux): Call mono_class_init() on
2058         the interfaces we collect.
2059         (mono_class_setup_vtable): Call mono_class_init (class->parent).
2060
2061 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2062
2063         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
2064         it a real thread handle.
2065
2066         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
2067         MonoJitExceptionInfo, since each catch clause needs its own variable.
2068         
2069 2005-01-11  Dick Porter  <dick@ximian.com>
2070
2071         * image.c (mono_pe_file_open): New variant on mono_image_open()
2072         that does not set up the CLI metadata; used for FileVersionInfo so
2073         it can get the data for windows binaries too.
2074         
2075         * process.c (process_read_string_block): Don't read off the end of
2076         the StringTable block.
2077
2078         These both fix bug 70766.
2079
2080 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
2081
2082         * gc.c: set some fields to NULL at GC cleanup time.
2083         * threads.c: if we quit the main thread, call exit ().
2084
2085 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2086
2087         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
2088
2089 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
2090
2091         * threads.h, threads.c, object.c: added accessor and settor for
2092         main_thread. Handle it specially when exiting from it: wait
2093         for other foreground threads to exit.
2094
2095 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
2096
2097         * process.c, verify.c: remove some bloat.
2098
2099 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
2100
2101         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
2102         the calling convention to cdecl under win32.
2103
2104 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
2105
2106         * object.c (mono_object_get_size): New function to get the size of
2107         an object instance.
2108
2109         * profiler.c (simple_allocation): Use above.
2110
2111 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
2112
2113         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
2114         ves_icall_System_AppDomain_getRootDomain (as it's not required to
2115         get an appdomain by it's id and we can't assume the root's id is 0).
2116         * domain-internals.h: Change the function prototype to match.
2117         * icall.c: Change the icall table for AppDomain.
2118
2119 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
2120
2121         * locales.c (string_invariant_compare_char): Only compute
2122         GUnicodeTypes in the case where we need them.  Test for ordinality
2123         first and return if so.
2124
2125         From the commit:
2126
2127                 /*
2128                  * FIXME: here we must use the information from c1type and c2type
2129                  * to find out the proper collation, even on the InvariantCulture, the
2130                  * sorting is not done by computing the unicode values, but their
2131                  * actual sort order.
2132                  */
2133
2134 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
2135
2136         * loader.c: for P/Invoke methods, allow the "Internal" shared
2137         library name to refer to the calling process symbol namespace.
2138
2139 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
2140
2141         * Makefile.am: Add the security manager to the build.
2142         * security-manager.c|h: New. Initialization of the security manager.
2143
2144 2005-01-07  Dick Porter  <dick@ximian.com>
2145
2146         * threads.c: 
2147         * monitor.c: Update thread state during Monitor and WaitHandle
2148         waits.  Fixes bug 71031.
2149
2150 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
2151
2152         * reflection.c (property_encode_signature): Correctly handle when the
2153         property has no methods.
2154
2155 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
2156
2157         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
2158         
2159         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
2160         fields from mb, not rmb. Fixes #71017.
2161
2162         * marshal.c (emit_ptr_to_str_conv): Add support for 
2163         ByValTStr -> string conversion. Fixes #71015.
2164
2165         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
2166
2167         * mempool.c (mono_mempool_contains_addr): New helper function.
2168
2169 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2170
2171         * metadata.c (mono_metadata_compute_size): Fix size calculation of
2172         HasSematics encoded fields.
2173         
2174         * metadata.c (mono_type_to_unmanaged): Improve error message for 
2175         invalid string marshalling.
2176
2177         * metadata.c: Fix warnings.
2178         
2179 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2180
2181         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
2182         profiler support.
2183
2184 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2185
2186         * domain.c object.c domain-internals.h: Revert part of r38077 since the
2187         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
2188         tests.
2189
2190 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
2191
2192         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
2193         so methods containing these can be AOTed.
2194
2195 2005-01-03  Martin Baulig  <martin@ximian.com>
2196
2197         * loader.c (find_method): Removed the hack for generic instances.
2198         (method_from_memberref): If our parent is a generic instance, pass
2199         its generic type definition to find_method() and then inflate the
2200         method.
2201         (mono_get_method_constrained): Pass the generic type definition to
2202         find_method() and inflate the method later.
2203
2204         * class-internals.h (MonoStats): Added `generic_class_count'.
2205
2206         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
2207         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
2208
2209         * reflection.c (mono_custom_attrs_from_params): Don't ignore
2210         generic type definitions.
2211
2212 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
2213
2214         * loader.c icall.c: Fix warnings.
2215
2216 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
2217
2218         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
2219         blittable types. Fixes #70864.
2220
2221 2004-12-29  Martin Baulig  <martin@ximian.com>
2222
2223         * icall.c
2224         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
2225
2226         * reflection.c (mono_method_get_object): Create a
2227         "System.Reflection.MonoGenericMethod" for inflated methods; don't
2228         call mono_get_inflated_method().
2229
2230         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
2231
2232 2004-12-27  Martin Baulig  <martin@ximian.com>
2233
2234         * class-internals.h (MonoMethod): Added `is_inflated' flag.
2235         (MonoMethodInflated): Added `inflated' field.
2236
2237         * class.c (mono_class_inflate_generic_method): Don't really
2238         inflate the method here; just set the `is_inflated' flag in the
2239         MonoMethod.
2240         (mono_class_get_inflated_method): Actually inflate the method here
2241         if it's not already inflated; we use the MonoMethodInflated's new
2242         `inflated' field as a cache.
2243
2244 2004-12-26  Martin Baulig  <martin@ximian.com>
2245
2246         * class.c
2247         (inflate_generic_class): Moved some code out of inflate_generic_type().
2248         (mono_class_inflate_generic_method): If we're already inflated,
2249         inflate the context and use the declaring method; ie. make sure
2250         the declaring method of an inflated method is always the generic
2251         method definition.
2252         (mono_class_create_from_typedef): Create
2253         `class->generic_container->context->gclass'.
2254
2255 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
2256
2257         * metadata-internals.h, marshal.c, reflection.c: More
2258         MonoGHashTable->GHashTable.
2259
2260         * domain-internals.h, class.c: Change MonoGHashTable's into
2261         GHashTables for some cases where no gc stuff is used
2262
2263         All users: update apis
2264
2265 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
2266
2267         * metadata.c (builtin_types): Make this `const'. Makes this get
2268         put into the shareable section.
2269         (mono_metadata_init): Casts to make gcc happy.
2270
2271 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
2272
2273         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
2274
2275 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
2276
2277         * icall.c: Added an internal call to retrieve the position and length
2278         of assembly-level declarative security attributes (RequestMinimum, 
2279         RequestOptional and RequestRefuse). This is used by the Assembly class
2280         to re-create the corresponding permission sets.
2281
2282 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
2283
2284         * marshal.c: fix the stelemref wrapper to be type correct
2285         (and faster).
2286
2287 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
2288
2289         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
2290         to do key & 0x7fffffff. Hashtable already does this. It just
2291         results in longer code.
2292
2293 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
2294
2295         * appdomain.c: Bump corlib version.
2296         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
2297         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
2298         * reflection.c|h: Add functions to get declarative security infos
2299         (blob position and length) for assemblies, classes and methods.
2300
2301 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
2302
2303         * reflection.c: sort the constant table (bug #70693).
2304
2305 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
2306
2307         * object-internals.h, threads.c, domain.c: add accessors for
2308         the MonoThread and MonoDomain tls keys.
2309
2310 2004-12-18  Martin Baulig  <martin@ximian.com>
2311
2312         * class.c (inflate_generic_type): If we're inflating a generic
2313         instance, set `ngclass->context->container = context->container';
2314         ie. the container we inflated into.
2315
2316         * metadata.c (mono_metadata_parse_generic_param): Reflect above
2317         inflate_generic_type() changes.
2318
2319 2004-12-17  Martin Baulig  <martin@ximian.com>
2320
2321         * class-internals.h
2322         (MonoGenericClass): Replaced `MonoType *generic_type' with
2323         `MonoClass *generic_class'.  Removed `dynamic_info'; if
2324         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
2325         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
2326
2327 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
2328
2329         * exception.c (mono_exception_from_token): New helper function.
2330
2331 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
2332
2333         * assembly.c (mono_assembly_load_with_partial_name): Call 
2334         mono_assembly_loaded before invoking the preload hooks. Fixes
2335         #70564.
2336
2337         * object-internals.h (MonoThread): Change culture_info and 
2338         ui_culture_info into an array.
2339
2340         * threads.c: Cache culture info objects from more than one appdomain.
2341
2342         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
2343         current UI culture.
2344
2345 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
2346
2347         * threads.h threads.c appdomain.c: Clear the culture_info field of
2348         all threads during unloading if they point to an object in the dying
2349         appdomain.
2350
2351 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
2352
2353         * culture-info.h (TextInfoEntry): New struct
2354         * object-internals.h: sync with managed
2355         * locales.c: fill the `text_info_data' field
2356         * culture-info-tables.h: update
2357
2358 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
2359
2360         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
2361         collector.
2362
2363 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
2364
2365         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
2366         (ves_icall_ModuleBuilder_getMethodToken): Ditto
2367
2368 2004-12-12  Martin Baulig  <martin@ximian.com>
2369
2370         * mono-debug-debugger.c (write_type): If we're an enum and the
2371         builtin types have already been initialized, call mono_class_init().
2372
2373 2004-12-11  Martin Baulig  <martin@ximian.com>
2374
2375         * metadata.c (mono_metadata_load_generic_params): Added
2376         `MonoGenericContainer *parent_container' argument; automatically
2377         compute `container->is_method'; pass the correct owner to
2378         get_constraints().      
2379
2380         * reflection.c (compare_genericparam): Sort the GenericParam table
2381         according to increasing owners. 
2382
2383 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
2384
2385         * profiler.c: allow disabling the default profiler.
2386
2387 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
2388
2389         * decimal.c, icall.c: allow disabling System.Decimal support.
2390
2391 2004-12-09  Marek Safar <marek.safar@seznam.cz>
2392
2393         * reflection.c: Add support for null attribute arguments.
2394
2395 2004-12-09  Martin Baulig  <martin@ximian.com>
2396
2397         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
2398         names to get rid of compiler warnings.
2399
2400 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2401
2402         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
2403         mono_marshal_load_type_info (). Fixes #69625.
2404         (mono_marshal_get_ptr_to_struct): Likewise.
2405
2406 2004-12-08  Martin Baulig  <martin@ximian.com>
2407
2408         * mono-debug.h: Bumped version number to 47.
2409
2410         * mono-debug-debugger.c
2411         (mono_debugger_event_handler, mono_debugger_event): Take two
2412         guint64 arguments insteed of a gpointer and a guint32.  
2413
2414 2004-12-08  Martin Baulig  <martin@ximian.com>
2415
2416         * debug-mono-symfile.h
2417         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
2418         `address' to `native_offset'.
2419
2420 2004-12-08  Martin Baulig  <martin@ximian.com>
2421
2422         * class.c (mono_class_create_from_typespec): Only inflate if we
2423         either have `context->gclass' or `context->gmethod'.
2424
2425 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2426
2427         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
2428
2429         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
2430
2431         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
2432
2433         * reflection.c (mono_assembly_get_object): Remove the workaround put
2434         in for the release.
2435         
2436         * appdomain.c: Use the corlib_internal field from MonoAssembly.
2437
2438         * appdomain.c: Bump corlib version.
2439
2440         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
2441         be visible in other appdomains.
2442
2443 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
2444
2445         * threads.c: Interlocked inc and dec for longs were messed up,
2446         use a KISS based impl for this. Fixes 70234
2447
2448 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
2449
2450         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
2451
2452 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
2453
2454         * icall.c: fix to follow policy not to allow struct
2455         arguments in icalls.
2456
2457 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2458
2459         * process.c: make the patch that handles spaces in file paths work
2460         on mono/windows too.
2461
2462 2004-12-06  Martin Baulig  <martin@ximian.com>
2463
2464         * class.c (mono_class_create_generic): Call
2465         mono_class_setup_supertypes() if we're dynamic.
2466         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
2467
2468 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
2469
2470         * object-internals.h: Add new fields to MonoThread.
2471
2472         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2473
2474         * icall.c threads-types.h threads.c: Add new icalls.
2475
2476         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
2477
2478         * object-internals.h (MonoReflectionAssembly): Sync object layout with
2479         managed side.
2480
2481         * appdomain.c: Bump corlib version.
2482
2483         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
2484         internal assemblies. Fixes #69181.
2485
2486 2004-12-05  Martin Baulig  <martin@ximian.com>
2487
2488         * class.c (mono_class_inflate_generic_signature): Make this a
2489         no-op if `context' is NULL or we don't have any type parameters;
2490         also copy `sentinelpos'.        
2491
2492 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
2493
2494         * image.c: Add unbox_wrapper_cache.
2495
2496         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
2497
2498         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
2499         function generator.
2500         
2501         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
2502         Fixes #70173.
2503
2504         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
2505         
2506 2004-12-04  Martin Baulig  <martin@ximian.com>
2507
2508         * loader.c (mono_method_get_signature_full): New public function;
2509         like mono_method_get_signature(), but with an additional
2510         `MonoGenericContext *' argument.
2511
2512         * class.c (mono_class_inflate_generic_signature): Formerly known
2513         as inflate_generic_signature(); make this public.
2514
2515 2004-12-04  Martin Baulig  <martin@ximian.com>
2516
2517         * metadata.c
2518         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
2519         instead of a `MonoGenericContainer *'.  
2520         (mono_metadata_parse_array_full): Likewise.
2521         (mono_metadata_parse_signature_full): Likewise.
2522         (mono_metadata_parse_method_signature_full): Likewise.
2523         (mono_metadata_parse_generic_inst): Likewise.
2524         (mono_metadata_parse_generic_param): Likewise.
2525         (mono_metadata_parse_mh_full): Likewise.
2526         (mono_type_create_from_typespec_full): Likewise.
2527
2528 2004-12-03  Martin Baulig  <martin@ximian.com>
2529
2530         * class-internals.h (MonoGenericContainer): Replaced the
2531         `MonoGenericContext * pointer with a `MonoGenericContext'
2532         structure and made it the first element.
2533
2534 2004-12-03  Martin Baulig  <martin@ximian.com>
2535
2536         * class.c
2537         (inflate_generic_type): Set the `context->container' when creating
2538         a new MonoGenericContext.
2539         (mono_class_inflate_generic_method): Likewise.
2540         (mono_class_create_from_typespec): Just use `context->container'
2541         to get the container.
2542
2543         * loader.c (method_from_methodspec): Set `context->parent' from
2544         `context->container' - and if that's a method container, use its
2545         parent.  Also set the `context->container' when creating a new
2546         MonoGenericContext.
2547         (mono_get_method_from_token): Use just `context->container' to get
2548         the container.
2549
2550         * metadata.c (do_mono_metadata_parse_generic_class): Also set
2551         `gclass->context->container'.
2552
2553         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
2554         the `context->container' when creating a new MonoGenericContext.
2555
2556 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
2557
2558         * reflection.c (compare_genericparam): Sort params with identical
2559         owner by their number. Fixes gen-111 on sparc.
2560
2561 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2562
2563         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
2564         around the domain changes.
2565
2566         * appdomain.c (mono_domain_unload): Handle the case when the thread
2567         calling Unload is itself being aborted during unloading. Fixes #70022.
2568
2569         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
2570
2571         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
2572         checkpoint_func as an icall so it gets a wrapper.
2573         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
2574         in the cross-appdomain wrappers too.
2575
2576         * threads.c (mono_thread_has_appdomain_ref): Make this public.
2577
2578         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
2579
2580         * reflection.c: Fix some memory leaks.
2581         
2582 2004-12-02  Martin Baulig  <martin@ximian.com>
2583
2584         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
2585
2586         * metadata.c (generic_class_cache): New static hashtable.
2587         (mono_metadata_lookup_generic_class): New public method.
2588
2589 2004-12-02  Martin Baulig  <martin@ximian.com>
2590
2591         * class.c (mono_class_create_from_typedef): Call
2592         mono_class_setup_parent() and mono_class_create_mono_type() before
2593         parsing the interfaces.
2594
2595 2004-12-02  Martin Baulig  <martin@ximian.com>
2596
2597         * metadata.c (generic_inst_cache): New static hashtable.
2598         (mono_metadata_lookup_generic_inst): New public function.
2599         (mono_metadata_inflate_generic_inst): New public function.
2600         (mono_metadata_parse_generic_inst): New public function.
2601         (do_mono_metadata_parse_generic_class): Use the new
2602         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
2603         since this'll also use the cache.
2604
2605         * reflection.c (mono_reflection_bind_generic_method_parameters):
2606         Use mono_metadata_lookup_generic_inst() to use the new cache.
2607
2608         * class.c (inflate_mono_type): Use
2609         mono_metadata_inflate_generic_inst() to inflate a generic
2610         instance; this'll also use the new cache.
2611
2612         * loader.c (method_from_methodspec): Use
2613         mono_metadata_parse_generic_inst() and
2614         mono_metadata_inflate_generic_inst() rather than parsing it
2615         manually, so we can use the new cache.
2616
2617 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2618
2619         * threads.c (wait_for_tids): Do not incorrectly free threads when 
2620         the wait times out.
2621
2622 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2623
2624         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
2625         iter->args based on whether parameters are passed in registers (i.e.
2626         MONO_ARCH_REGPARMS is defined)
2627
2628 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
2629
2630         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
2631         the exception message. Fixes #70070.
2632         (method_from_methodspec): Fix warnings.
2633
2634 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2635
2636         * process.c: (complete_path) return the path quoted
2637
2638 2004-12-01  Martin Baulig  <martin@ximian.com>
2639
2640         * class-internals.h (MonoGenericInst): New structure.
2641         (MonoGenericClass): Replaced `type_argc', `type_argv' and
2642         `is_open' with `MonoGenericInst *inst'.
2643         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
2644         `is_open' with `MonoGenericInst *inst'.
2645
2646 2004-11-30  Martin Baulig  <martin@ximian.com>
2647
2648         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
2649
2650         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
2651         to `generic_class_cache'.
2652
2653         * metadata.c
2654         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
2655         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
2656         (mono_generic_inst_is_valuetype): Renamed to
2657         mono_generic_class_is_valuetype().
2658
2659         * class-internals.h
2660         (MonoGenericInst): Renamed to MonoGenericClass.
2661         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
2662         (MonoClass): Renamed `generic_inst' to `generic_class'.
2663         (MonoGenericContext): Renamed `ginst' to `gclass'.
2664
2665         * object-internals.h
2666         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
2667
2668         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
2669         mono_reflection_generic_class_initialize().
2670
2671         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
2672         now known as "System.Reflection.MonoGenericClass".
2673         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
2674
2675 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
2676
2677         * class-internals.h: Added a flag field to MonoClass to cache the
2678         declarative security attributes actions associated with the class.
2679         * domain-internals.h: Added booleans to MonoJitInfo to cache the
2680         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
2681         applicable to the JITted method.
2682         * reflection.c|h: Added functions to extract (as flags) which security
2683         actions are available (declaratively) for a method, class or assembly.
2684         * metadata.c|h: Added functions to search the declarative security
2685         table in the metadata.
2686         
2687 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
2688
2689         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
2690         EXPORTEDTYPES are already in the class name cache, so there is no
2691         need to add extra code here to look at them. Just removes a bit of
2692         cruft.
2693
2694         (ves_icall_System_Environment_get_TickCount): No need for #if
2695         WINDOWS. We already have the code in io-layer.
2696
2697 2004-11-28  Martin Baulig  <martin@ximian.com>
2698
2699         * loader.c
2700         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
2701         Fixes gen-112.cs.
2702
2703 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
2704
2705         * assembly.c (do_mono_assembly_open): Instead of having a
2706         conditional WITH_BUNDLE, incorporate support for bundles here, by
2707         having a global `bundles' variable holding a pointer to the actual
2708         bundles. 
2709
2710         (mono_register_bundled_assemblies): New API call used by the
2711         bundle code. 
2712
2713         See mkbundle.1 for details.
2714         
2715 2004-11-27  Martin Baulig  <martin@ximian.com>
2716
2717         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
2718         the vtable for generic methods.
2719
2720 2004-11-26  Martin Baulig  <martin@ximian.com>
2721
2722         * metadata.c
2723         (mono_metadata_generic_method_hash): New public function.
2724         (mono_metadata_generic_method_equal): Likewise.
2725
2726         * class-internals.h
2727         (MonoGenericContainer): Added `GHashTable *method_hash'.
2728
2729         * reflection.c (ReflectionMethodBuilder): Added
2730         `MonoGenericContainer *generic_container'.
2731         (reflection_methodbuilder_to_mono_method): Don't create a new
2732         MonoGenericContainer each time we're called.
2733         (mono_reflection_bind_generic_method_parameters): Use
2734         `container->method_hash' to cache the results so we don't create a
2735         different method if we're called several times with the same
2736         arguments.
2737
2738         * loader.c (method_from_methodspec): Use the new
2739         `container->method_hash' here, too.
2740
2741 2004-11-26  Martin Baulig  <martin@ximian.com>
2742
2743         * class.c (inflate_generic_signature): Correctly compute
2744         `res->has_type_parameters'.
2745         (mono_class_vtable): Use the `has_type_parameters' flag to
2746         determine whether we're a generic method.
2747
2748         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
2749
2750 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
2751
2752         * object.c (mono_runtime_run_main): Fix a small memory leak.
2753
2754 2004-11-25  Martin Baulig  <martin@ximian.com>
2755
2756         * class.c (set_generic_param_owner): Fixed the loop.
2757
2758 2004-11-25  Martin Baulig  <martin@ximian.com>
2759
2760         * object.c (mono_class_vtable): Don't create any JIT wrappers for
2761         generic methods.
2762
2763 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
2764
2765         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
2766         names. Fixes #69787.
2767
2768 2004-11-24  Martin Baulig  <martin@ximian.com>
2769
2770         * class.c (mono_class_create_generic_2): If we don't have a
2771         `ginst->parent', inflate `gklass->parent' to get our parent.
2772
2773 2004-11-24  Martin Baulig  <martin@ximian.com>
2774
2775         * reflection.c (compare_genericparam): Correctly sort the
2776         GenericParam table; fixes #69779.
2777
2778 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
2779
2780         * reflection.c: When writing a PE file, don't create a huge
2781         buffer in memory. Just write the arrays we have to the file.
2782         This reduces memory usage.
2783
2784         * metadata-internals.h: MonoDynamicStream pefile is no longer used
2785         globally.
2786
2787 2004-11-17  Martin Baulig  <martin@ximian.com>
2788
2789         * class.c (mono_class_init): Don't setup `class->parent' for
2790         dynamic instances; moved this to mono_class_generic_2().
2791         (mono_class_create_generic): Also set `klass->inited' for dynamic
2792         generic instances.
2793         (mono_class_create_generic_2): Don't do anything for dynamic
2794         generic instances.  Set `klass->parent' here and also call
2795         mono_class_setup_parent() here. 
2796
2797         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
2798         `MonoType *parent' argument; set `ginst->parent' before calling
2799         mono_class_create_generic_2(), so we set the correct parent.
2800
2801 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
2802
2803         * reflection.c: allow getting attributes from ModuleBuilder
2804         (used by ikvm).
2805
2806 2004-11-17  Martin Baulig  <martin@ximian.com>
2807
2808         * class.c (mono_class_create_from_typedef): If a type parameter is
2809         inherited from an outer class, set its owner to that class.
2810
2811 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
2812
2813         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
2814           for (int*) written size. This fixes bug #69592.
2815
2816 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
2817
2818         * icall.c: Added IsAuthenticodePresnet internal call.
2819         * image.c|h: New function that check a MonoImage for an Authenticode
2820         signature in the certificate PE data directory.
2821         * security.c|h: New internal call to ask the runtime if an 
2822         Authenticode signature seems referenced in the PE header.
2823
2824 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
2825
2826         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
2827
2828         * reflection.c (mono_image_create_pefile): Free the assembly streams
2829         after writing out the assembly file.
2830
2831         * object.c (mono_runtime_run_main): Fix small memory leak.
2832
2833         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
2834         property access modifiers. Fixes #69389.
2835
2836 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
2837
2838         * domain.c, object.c, object-internals.h, domain-internals.h,
2839         object.h, marshal.c: keep dynamic code info per domain.
2840
2841 2004-11-15  Martin Baulig  <martin@ximian.com>
2842
2843         * class.c (mono_type_get_name_recurse): Put type arguments in
2844         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
2845         see bug #68387.
2846
2847 2004-11-15  Martin Baulig  <martin@ximian.com>
2848
2849         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
2850         (mono_class_setup_vtable): When computing `the_cname' for a
2851         generic instance, don't include the namespace since we'd otherwise
2852         add it twice.
2853
2854 2004-11-15  Martin Baulig  <martin@ximian.com>
2855
2856         * class.c (mono_class_create_generic): Changed return type to void.
2857         (mono_class_create_generic_2): New public function; setup
2858         `class->method', `class->field' and `class->interfaces' here
2859         instead of in mono_class_init().
2860
2861         * class.h (mono_class_create_generic): Moved to class-internals.h.
2862
2863 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
2864
2865         * reflection.c (mono_image_create_pefile): take a file HANDLE.
2866         rather than writing to memory, write to this file. Right now,
2867         we are just writting into a buffer, and copying that. However
2868         we can avoid the buffer later.
2869
2870         (mono_dynamic_stream_reset): new function
2871
2872         * icall.c, object-internals.h: update for the above.
2873
2874 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
2875
2876         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
2877         have been using gc'd memory. First it is slower, unlikely
2878         the comment in the source code said, secondly, it increases
2879         our footprint to do it in the gc.
2880
2881         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
2882         the method so that it does not have to copy to managed code.
2883
2884 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
2885
2886         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
2887
2888 2004-11-12  Martin Baulig  <martin@localhost>
2889
2890         * reflection.c (mono_image_create_token): Allow generic method
2891         definitions here, since they may appear in an `.override'; see
2892         gen-98/gen-99 for an example.
2893
2894 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
2895
2896         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
2897         #69365.
2898
2899         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
2900         descriptive.
2901
2902 2004-11-11  Martin Baulig  <martin@ximian.com>
2903
2904         * class.c (mono_class_setup_vtable): In an explicit interface
2905         implementation, the method name now includes the arity.
2906
2907 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
2908
2909         * object.c (mono_array_full_copy): Fix warning.
2910
2911 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
2912
2913         * appdomain.c: Removed look_for_method_by_name(). Use the new method
2914         mono_class_get_method_from_name() instead.
2915         
2916         * class-internals.h: Added two new types of wrappers. 
2917         Added MonoRemotingTarget enum. Added new trampoline function type, which
2918         takes an additional MonoRemotingTarget value as parameter, so it is
2919         possible to request a trampoline for a specific target.
2920         
2921         * class.c: Added new mono_class_get_method_from_name() method.
2922         
2923         * class.h: In MonoRemoteClass, we can have now to vtables, one for
2924         general remoting sinks and one specific for cross domain calls.
2925         
2926         * debug-helpers.c: Added new wrapper names.
2927         
2928         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
2929         of a remote class.
2930         
2931         * image.c: Porperly delete value objects form the remoting invoke hashtable.
2932         
2933         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
2934         with several other methods (mono_marshal_get_xappdomain_dispatch,
2935         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
2936         and others) can generate a fast remoting wrapper for cross domain calls.
2937         More information can be found in docs/remoting.
2938         Other changes: Removed mono_find_method_by_name, and used
2939         mono_class_get_method_from_name instead.
2940         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
2941         is stored in the remoting invoke hashtable.
2942         
2943         * marshal.h: published the new method for getting the xdomain wrapper,
2944         and also added a method for getting the adequate wrapper for a given
2945         method and target.
2946         
2947         * object-internals.h, object.c: Added a couple of methods for capying and
2948         cloning arrays.
2949         Modified mono_install_remoting_trampoline, which takes the new remoting
2950         trampoline that has a remoting target as parameter.
2951         mono_class_proxy_vtable now also takes a remoting target as parameter, and
2952         will return the most suitable vtable for the target.
2953         Added mono_remote_class_vtable, which returns the vtable of a remote class
2954         (which can be the normal remoting vtable or the xdomain vtable).
2955         
2956         * threads.c: the xdomain invoke and dispatch wrappers must also be
2957         protected against interruptions.
2958
2959 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2960
2961         * icall.c: use memmove in BlockCopyInternal when the source and
2962         destination arrays are the same.
2963
2964 2004-11-09  Martin Baulig  <martin@ximian.com>
2965
2966         * class-internals.h (MonoGenericContainer): Removed `method' and
2967         `signature', replaced them with `is_method' and `is_signature'
2968         flags.  Added `context'.
2969
2970         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
2971         instead of a `MonoGenericContainer *'.
2972
2973         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
2974         for dynamic type parameters.
2975         (mono_metadata_load_generic_params): Setup `container->context'.
2976
2977         * reflection.c (mono_reflection_setup_generic_class): Setup
2978         `tb->generic_container->context'.
2979         (do_mono_reflection_bind_generic_parameters): Use
2980         mono_class_inflate_generic_type() to correctly inflate types,
2981         rather than using our own hack just for MONO_TYPE_VAR.
2982
2983 2004-11-09  Martin Baulig  <martin@ximian.com>
2984
2985         * class.c (mono_class_inflate_generic_method): Small fix; don't
2986         crash here.
2987
2988         * icall.c
2989         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
2990         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
2991         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
2992         (ves_icall_Type_BindGenericParameters): Likewise.
2993         (ves_icall_Type_get_IsGenericInstance): Likewise.
2994         (ves_icall_Type_GetGenericParameterPosition): Likewise.
2995         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
2996         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2997         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2998
2999 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
3000
3001         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
3002         assembly versions and public key tokens. Fixes #69113.
3003
3004 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
3005
3006         * metadata.c: fix bug introduced with the type cache changes
3007         on 2004-11-06.
3008
3009 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
3010
3011         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
3012         the MonoClass pointer instead of the token in exception clauses.
3013         * reflection.c: updates for the above and make the code not depend
3014         on the structure of MonoExceptionClause.
3015
3016 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
3017
3018         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3019         Add support for dynamic assemblies. Fixes #69114.
3020
3021         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
3022
3023 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
3024
3025         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
3026         since most only those methods use it. the code member of
3027         MonoMethodPInvoke was dead, so that can be removed too. Also,
3028         remove inline_count (again, not used), and move slot so that it
3029         can share bits with some other flags. This saves 8 bytes in the
3030         structure and gives us about 50 kb back for mcs helloworld.cs
3031
3032         * *.[ch]: Do naming changes for the above.
3033
3034         * loader.c (mono_method_get_header): Lazily init the header
3035         on first access.
3036         (mono_get_method_from_token): don't init the header here
3037         (mono_free_method): the header may never be allocated
3038
3039         Overall, this saves 150 kb of unmanaged allocations
3040         for mcs helloworld.cs. That accounts for 10% of the unmanaged
3041         memory at runtime.
3042         
3043         * loader.c, loader.h (mono_method_get_header): new accessor.
3044
3045         * *.[ch]: use the above method. Prepares us to lazily load
3046         the header.
3047
3048         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
3049         three warnings, which are actual bugs (see 69206).
3050
3051         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
3052         unused. Saves a cool 4 bytes / method.
3053
3054 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
3055
3056         * metadata.c (builtin_types): Add types for System.Object here.
3057         (mono_metadata_parse_type_full): Cache MonoType*'s that are
3058         for a class or valuetype from klass->this_arg or klass->byval_arg.
3059
3060         On mcs for a hello world, this gets us down from 21836 MonoType's
3061         to 14560.
3062
3063         (mono_metadata_free_type): Account for the above change.
3064
3065 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
3066
3067         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
3068         exception instead of asserting if name is null.
3069         (ves_icall_System_AppDomain_GetData): Ditto.
3070
3071 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
3072
3073         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
3074         EnumBuilder.
3075
3076         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
3077         Return NULL when the domain does not have entry_assembly set.
3078
3079         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
3080         Add a 'resource_modules' argument.
3081         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
3082
3083         * reflection.c (mono_reflection_create_runtime_class): Move setting
3084         of wastypebuilder here, so mono_get_type_object () returns a MonoType
3085         for enums too.
3086
3087         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
3088         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
3089         Throw an ArgumentNullException if 'ptr' is null.
3090
3091         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
3092         assemblies here. Fixes #69020.
3093
3094 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
3095
3096         * reflection.c (build_compressed_metadata): Fix the previous patch for
3097         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
3098         the stack.
3099
3100 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
3101
3102         * assembly.c (mono_assembly_names_equal): Allow a match if one of
3103         the cultures is false. Fixes #69090.
3104
3105         * reflection.c (build_compressed_metadata): Fix invalid memory read 
3106         detected by valgrind.
3107         
3108         * reflection.c (mono_reflection_get_type): Avoid triggering a 
3109         TypeResolve multiple times for the same type. Fixes #65577.
3110
3111 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
3112
3113         * marshal.c: Avoid using ldftn to call managed functions. It is
3114         much slower than just a call.
3115
3116         * reflection.c (mono_module_get_object): free the basename we
3117         allocate here from glib.
3118         
3119         * reflection.c (ensure_runtime_vtable): make sure to free
3120         overrides.  Also, we were allocating an array of MonoMethod not an
3121         array of MonoMethod*.
3122
3123         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
3124
3125         * image.c (mono_image_close): free image->guid here.
3126
3127 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
3128
3129         * reflection.c: Fix some spec conformance issues with the PE file
3130         structures so mcs compiled apps run on the Net 2.0 beta.
3131
3132 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
3133
3134         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
3135         Implement this. Fixes #67264.
3136
3137         * debug-helpers.h debug-helpers.c marshal.c: Move 
3138         mono_find_method_by_name to debug-helpers.c.
3139
3140 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
3141
3142         * object.c (mono_release_type_locks): type_initialization_hash is
3143         a GHashTable.
3144
3145         * reflection.c object.c object-internals.h: Fix warnings.
3146
3147         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
3148         without accessors. Fixes #61561.
3149
3150         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
3151         application base from the root domain if not set. Fixes #65641.
3152         (mono_runtime_init): Fix warning.
3153
3154 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3155
3156         * appdomain.c: call mono_thread_pool_init.
3157         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
3158         of worker threads based on the number of CPUs and the environment
3159         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
3160         for non-windows (windows) systems.
3161
3162 2004-10-27  Chris Toshok  <toshok@ximian.com>
3163
3164         * mono-debug-debugger.c (write_class): don't call mono_class_init
3165         here, as even with the check for (!klass->init_pending), we get
3166         into a situation where we're hitting cycles in class
3167         initialization.  Fixes #68816.
3168
3169 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
3170
3171         * image.c: Avoid overwriting values in the loaded_images_hash when an
3172         assembly is loaded multiple times. Fixes #61152.
3173
3174         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
3175         so multiple satellite assemblies for the same name can be loaded.
3176         Fixes #68259.
3177
3178         * mono_domain_assembly_preload: Actually return the loaded assembly, 
3179         not NULL.
3180
3181         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
3182         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
3183
3184         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
3185         pending finalizers are not invoked after the appdomain has been 
3186         unloaded. Fixes #67862.
3187
3188 2004-10-22  Martin Baulig  <martin@ximian.com>
3189
3190         * mono-debug-debugger.c
3191         (mono_debugger_runtime_invoke): Don't box valuetypes.
3192
3193 2004-10-22  Chris Toshok  <toshok@ximian.com>
3194
3195         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
3196         don't hide private methods.
3197
3198 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
3199
3200         * icall.c: Allows the runtime to "share" (when known) the public key
3201         token of an assembly. This avoid the need to recalculate the token 
3202         (from the public key) in managed code.
3203
3204 2004-10-21  Chris Toshok  <toshok@ximian.com>
3205
3206         * debug-helpers.c (append_class_name): argh, revert last patch.
3207         
3208 2004-10-21  Chris Toshok  <toshok@ximian.com>
3209
3210         * debug-helpers.c (append_class_name): use '+' as the delimiter,
3211         not '/', so that it matches what the debugger uses to look up
3212         methods.
3213
3214 2004-10-21  Martin Baulig  <martin@ximian.com>
3215
3216         * mono-debug-debugger.c (mono_debugger_throw_exception): New
3217         public method; this is called each time an exception is thrown and
3218         allows the debugger to use exception catch points.
3219
3220 2004-10-21  Martin Baulig  <martin@ximian.com>
3221
3222         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
3223         the stack pointer and the exception object in some struct and pass
3224         that to the debugger.
3225
3226 2004-10-21  Chris Toshok  <toshok@ximian.com>
3227
3228         * mono-debug-debugger.c (do_write_class): add instance/static
3229         event support.  We don't expose "raise" or "other" yet.
3230         (event_is_static): new method.
3231
3232 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
3233
3234         * mono-debug-debugger.c
3235         (mono_debugger_handle_exception): Remove
3236         bogus return value for fussy compilers.
3237
3238 2004-10-20  Martin Baulig  <martin@ximian.com>
3239
3240         * mono-debug-debugger.c
3241         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
3242         (mono_debugger_handled_exception): Likewise.
3243
3244 2004-10-20  Martin Baulig  <martin@ximian.com>
3245
3246         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3247         MONO_DEBUGGER_EVENT_EXCEPTION.
3248
3249         * mono-debug-debugger.c (mono_debugger_handle_exception): New
3250         public function to send the debugger a notification for an
3251         exception and inform it about a catch/finally clause.
3252
3253 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
3254
3255         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
3256         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
3257         fix 2.95 build. 
3258
3259         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
3260
3261 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
3262
3263         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
3264         marshalled as [In,Out]. Fixes #58325.
3265
3266 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
3267
3268         * reflection.c (mono_method_body_get_object): Implement some fields.
3269
3270 2004-10-12  Martin Baulig  <martin@ximian.com>
3271
3272         * reflection.c (mono_reflection_bind_generic_parameters): Small
3273         fix, correctly retrieve our parent from a generic instance.
3274
3275 2004-10-12  Martin Baulig  <martin@ximian.com>
3276
3277         * metadata.c (mono_metadata_generic_param_equal): We always have
3278         an owner.
3279
3280         * class.c
3281         (mono_class_from_generic_parameter): We need to have an owner.
3282         (my_mono_class_from_generic_parameter): Likewise.
3283
3284         * reflection.c (mono_reflection_setup_generic_class): Renamed to
3285         mono_reflection_create_generic_class() and added a new
3286         mono_reflection_setup_generic_class().  
3287         (mono_reflection_initialize_generic_param): If we're a nested
3288         generic type and inherited from the containing class, set our
3289         owner to the outer class.
3290
3291 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
3292
3293         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
3294
3295         * reflection.c (mono_method_body_get_object): New function to create
3296         a MethodBody object.
3297
3298         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
3299
3300 2004-10-11  Martin Baulig  <martin@ximian.com>
3301
3302         * metadata.c (_mono_metadata_type_equal): Renamed to
3303         do_mono_metadata_type_equal() and made static.
3304
3305 2004-10-11  Martin Baulig  <martin@ximian.com>
3306
3307         * appdomain.c: Bump corlib version number to 28.
3308
3309 2004-10-10  Martin Baulig  <martin@ximian.com>
3310
3311         * class-internals.h
3312         (MonoGenericInst): Added `MonoGenericContainer *container'.
3313         (MonoGenericMethod): Likewise.
3314         (MonoGenericContext): Likewise.
3315         (MonoGenericParam): Added `MonoGenericContainer *owner'.
3316
3317         * metadata.c
3318         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
3319         (do_mono_metadata_parse_generic_inst): Likewise.
3320         (mono_metadata_parse_type_full): New public method.  This is the actual
3321         mono_metadata_parse_type() implementation - with an additional
3322         `MonoGenericContainer *' argument.
3323         (mono_metadata_parse_array_full): Likewise.
3324         (mono_metadata_parse_signature_full): Likewise.
3325         (mono_metadata_parse_method_signature_full): Likewise.
3326         (mono_metadata_parse_mh_full): Likewise.
3327         (mono_type_create_from_typespec): Likewise.
3328         (mono_metadata_interfaces_from_typedef_full): New public method;
3329         this is similar to the other _full() methods, but we take a
3330         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
3331         (mono_metadata_parse_generic_param): Take an additional
3332         `MonoGenericContainer *' argument and lookup the MonoGenericParam
3333         from that container.
3334         (mono_metadata_generic_param_equal): New static method to compare
3335         two type parameters.
3336         (_mono_metadata_type_equal): New static method; takes an
3337         additional `gboolean signature_only' argument - if true, we don't
3338         compare the owners of generic parameters.
3339         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
3340         with a TRUE argument - do a signature-only comparision.
3341
3342         * loader.c: Use the new _full() methods and pass the
3343         MonoGenericContainer to them.
3344
3345         * object-internals.h (MonoReflectionTypeBuilder): Added
3346         `MonoGenericContainer *generic_container' field.
3347         (MonoReflectionMethodBuilder): Likewise.
3348
3349 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
3350
3351         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
3352         case initial images of dynamic assemblies.
3353
3354         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
3355
3356         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
3357
3358         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
3359         length of event->other array.
3360         (typebuilder_setup_events): Ditto.
3361
3362         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
3363         'assembly_by_name' and add an 'assemblies' list.
3364
3365         * assembly.h assembly.c: Add a new search hook for determining whenever
3366         an assembly is already loaded. Use this instead of searching in the
3367         loaded_assemblies list.
3368
3369         * domain.c appdomain.c: Implement the new search hook so loaded 
3370         assemblies are now scoped by appdomain. Fixes #67727.
3371
3372 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
3373
3374         * threads.c (mono_thread_attach): Initialize synch_lock field so
3375         mono_thread_detach works again.
3376
3377         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
3378         'lib' too. Fixes #63130.
3379
3380 2004-10-06  Jackson Harper  <jackson@ximian.com>
3381
3382         * culture-info-tables.h: regenerated.
3383
3384 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
3385
3386         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
3387         implemented by other interfaces in the result. Fixes #65764.
3388         
3389         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3390         Handle unloadable modules without crashing.
3391
3392         * image.c (load_modules): Revert the previous patch since modules must
3393         have a fixed index inside the array.
3394         
3395         * image.c (load_modules): Don't include native modules in the modules
3396         array.
3397
3398 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
3399
3400         * reflection.h: Add param_defaults field.
3401
3402         * reflection.c: Add support for parameter defaults in dynamic methods.
3403         Fixes #64595.
3404
3405         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
3406         an empty string when a type has no namespace. Fixes #64230.
3407
3408 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
3409
3410         * tabledefs.h: Added "internal" security actions to support non-CAS
3411         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
3412         Note: they do not seems to be used anymore in 2.0 (new metadata format)
3413
3414 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
3415
3416         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
3417         constructor of abstract class. Fixes #61689.
3418
3419 2004-10-04  Martin Baulig  <martin@ximian.com>
3420
3421         * class-internals.h (MonoGenericContainer): New type.
3422         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
3423         `MonoGenericContainer *generic_container'.
3424         (MonoClass): Replaced `gen_params' and `num_gen_params' with
3425         `MonoGenericContainer *generic_container'.
3426
3427         * metadata.c (mono_metadata_load_generic_params): Return a
3428         `MonoGenericContainer *' instead of a `MonoGenericParam *';
3429         removed the `num' argument.
3430
3431 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
3432
3433         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
3434         for dynamic images.
3435
3436         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
3437         machine fields.
3438
3439         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
3440
3441         * reflection.c: Save pe_kind and machine values into the generated
3442         image file.
3443
3444         * appdomain.c: Bump corlib version number.
3445
3446         * object-internals.h: Reorganize layout of LocalBuilder.
3447
3448         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
3449         New helper function.
3450
3451         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
3452         created MonoType for dynamic types. Fixes #66180.
3453
3454 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
3455
3456         * threadpool.c: the ares hashtable needs a critical section around it.
3457         this prevents some nasty segfaults
3458
3459 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
3460
3461         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
3462         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
3463         bug 67324).
3464         
3465 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
3466
3467         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
3468         
3469 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
3470
3471         * image.c: Always canonicalize image file names, to avoid loading
3472         the same assembly twice when referenced using a relative path.
3473
3474 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
3475
3476         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
3477
3478         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
3479
3480         * marshal.c: Fix warnings.
3481
3482 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
3483
3484         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
3485         attempting to marshal the delegate_trampoline as the method_addr.
3486         This patch has a static hashtable of marshalled delegates so that 
3487         we can map delegate_trampoline addresses back to delegates.  This
3488         allows a delegate passed to managed code to be passed back into native
3489         code.  Fixes #67039
3490
3491 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
3492
3493         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
3494
3495         * reflection.c (method_encode_code): Align method headers properly.
3496         Fixes #66025.
3497
3498 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
3499
3500         * marshal.c: In the runtime invoke wrapper, reset the abort
3501         exception if it is cached. This avoids the automatic rethrowal of 
3502         the exception after the catch of the wrapper. Also check for pending
3503         interruptions before calling the managed method. This is done using
3504         the new method emit_thread_force_interrupt_checkpoint, since the
3505         normal checkpoint method is ignored when running the invoke wrapper.
3506         * object.c: If the abort exception is rethrown, set the abort_exc
3507         field of the thread, so it will be rethrown aftere every catch.
3508         * threadpool.c: Only run an interruption checkpoint if what has been
3509         requested is a stop of the thread (aborts will be ignored).
3510         * threads.c: By default, a thread will now never be interrumped while
3511         running the runtime invoke wrapper (this ensures that runtime_invoke
3512         will always return to the caller if an exception pointer is provided).
3513         There is a new special method mono_thread_force_interruption_checkpoint()
3514         to force an interruption checkpoint even if running a protected
3515         wrapper, which is used by the same runtime invoke wrapper to do a check
3516         at a safe point.
3517
3518 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
3519
3520         * object.c, object-internals.h: Implemented mono_release_type_locks,
3521         which releases the cctor locks held by a thread.
3522         * threads.c, threads.h: In thread_cleanup, release cctor locks held
3523         by a thread. Added mono_thread_exit() method to be used to safely stop
3524         a thread.
3525
3526 2004-09-28  Raja R Harinath  <rharinath@novell.com>
3527
3528         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3529         Move null check before dereference.  Avoid indexing beyond the end
3530         of the 'modules' array.
3531
3532 2004-09-28  Raja R Harinath  <rharinath@novell.com>
3533
3534         * metadata-internals.h (MonoImage): Add module_count field.
3535         * image.c (load_modules): Set image->module_count.
3536         (mono_image_load_file_for_image): Use image->module_count.
3537         * reflection.c (mono_image_load_module): Append to image->modules array 
3538         of dynamic assembly.
3539         (mono_module_get_object): Fix loop to actually increment index.
3540         Use image->module_count.
3541         * assembly.c (mono_assembly_load_references): Use image->module_count.
3542         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
3543         Likewise.
3544
3545 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
3546
3547         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
3548         Avoid assert on generic types.
3549
3550 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
3551
3552         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
3553
3554         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
3555
3556         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
3557         function to convert a MarshalSpec structure to its managed counterpart.
3558
3559         * reflection.c: Fix warnings.
3560         
3561         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
3562         field.
3563
3564         * icall.c (mono_create_icall_signature): Fix build.
3565
3566 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
3567
3568         * icall.c: Add MakePointType icall.
3569
3570         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
3571         warnings.
3572
3573 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3574
3575         * threadpool.c: reuse allocated slots in the queue.
3576
3577 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
3578
3579         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
3580
3581         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
3582
3583         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
3584         previous change.
3585
3586         * tabledefs.h: Add constants for pinvoke attributes BestFit and
3587         ThrowOnUnmappableChar.
3588
3589         * icall.c (ves_icall_Type_GetPacking): New icall.
3590
3591 2004-09-24  Martin Baulig  <martin@ximian.com>
3592
3593         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
3594
3595 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3596
3597         * appdomain.c:
3598         (mono_domain_set): allow setting a domain that is being unloaded.
3599         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
3600         being unloaded.
3601
3602 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
3603
3604         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
3605         the GetCustomAttributes icall.
3606
3607 2004-09-23  Martin Baulig  <martin@ximian.com>
3608
3609         * object-internals.h (MonoReflectionGenericParam): Replaced
3610         'has_ctor_constraint', `has_reference_type' and `has_value_type'
3611         with `guint32 attrs'.
3612
3613 2004-09-23  Martin Baulig  <martin@ximian.com>
3614
3615         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
3616
3617 2004-09-23  Martin Baulig  <martin@ximian.com>
3618
3619         * object-internals.h (GenericParameterAttributes): New enum.
3620
3621 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
3622
3623         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
3624         
3625         * class.c (init_events): Fill out event->other field.
3626
3627         * class.c: Fix warnings.
3628
3629         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
3630
3631 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
3632
3633         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
3634         walk which doesn't supply the IL offset.
3635
3636 2004-09-22  Martin Baulig  <martin@ximian.com>
3637
3638         * reflection.c (mono_reflection_setup_internal_class): If we're
3639         System.ValueType, System.Object or System.Enum, set
3640         `klass->instance_size' and create the vtable.
3641         (mono_reflection_create_internal_class): If we're an enum type,
3642         get the base class from our current corlib.
3643
3644 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
3645
3646         * reflection.h (MonoResolveTokenError): New type.
3647
3648         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
3649         icall.
3650
3651         * icall.c: Add an 'error' argument to the ResolveToken icalls.
3652
3653 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
3654
3655         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
3656         Support also calling constructors, but only for already allocated objects.
3657
3658 2004-09-17  Geoff Norton <gnorton@customerdna.com>
3659
3660         * reflection.c (type_get_qualified_name): If the klass is null
3661         return the typename to avoid a NullRefEx.
3662         (encode_cattr_value): Get the qualified name of the boxed type,
3663         not the underlying enumtype.  Fixes #62984.
3664
3665 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
3666
3667         * marshal.c: Fix problems with previous checkin.
3668
3669 2004-09-21    <vargaz@freemail.hu>
3670
3671         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
3672         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
3673
3674         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
3675
3676 2004-09-21  Geoff Norton <gnorton@customerdna.com>
3677
3678         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
3679         should only return a type for pointers, arrays, and passbyref types.
3680         Fixes bug #63841.
3681
3682 2004-09-21  Martin Baulig  <martin@ximian.com>
3683
3684         * domain.c (mono_debugger_check_runtime_version): New public
3685         function.
3686
3687         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
3688
3689 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
3690
3691         * reflection.c: Added missing sort to the declarative security 
3692         attributes table. MS implementation stops seeing the attributes if the
3693         token number regress in the table (as shown by ildasm and permview).
3694
3695 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
3696
3697         * object-internals.h (MonoReflectionModule): Add 'token' field.
3698         
3699         * reflection.c (mono_reflection_get_token): Add support for Module
3700         and Assembly.
3701         (mono_module_get_object): Set 'token' field.
3702         (mono_module_file_get_object): Set 'token' field.
3703
3704         * icall.c: Add new Assembly and Module icalls.
3705
3706         * appdomain.c: Bump corlib version.
3707
3708 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
3709
3710         * loader.h loader.c class.h class.c: Add helper functions for obtaining
3711         tokens of metadata objects.
3712
3713         * reflection.h reflection.c (mono_reflection_get_token): New function
3714         to obtain the token of a metadata object.
3715
3716         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
3717
3718 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
3719
3720         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
3721         
3722         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
3723
3724 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
3725
3726         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
3727         * object-internals.h: Added 3 MonoArray* members to MonoReflection
3728         AssemblyBuilder to access the permissions set in the class lib.
3729         * reflection.c: Added security attributes encoding step in 
3730         mono_image_build_metadata.
3731         * tabledefs.h: Added new security actions defined in 2.0:
3732         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
3733
3734 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
3735
3736         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
3737         macro parameter.
3738
3739 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
3740  
3741         * locales.c: nullify the ICU_collator member of CompareInfo when it is
3742           finalized. There where random SIGSEVs at program termination, when
3743           an object being finalized was trying to do a string comparison and
3744           the current culture was already finalized.
3745  
3746 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3747
3748         * threads.c: call thread_cleanup before finishing the thread if we get
3749         there.
3750
3751 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
3752
3753         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
3754         assemblies from the parent. Fixes #65665.
3755
3756 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
3757
3758         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
3759         modifiers.
3760
3761 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
3762
3763         * reflection.h: add prototype for mono_get_dbnull_object
3764         * reflection.c: add prototypes for get_default_param_value_blobs 
3765         and mono_get_object_from_blob for fussier compilers
3766
3767 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
3768  
3769         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
3770         false deadlock checks in class initialization.
3771  
3772 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
3773
3774         * image.c (mono_image_addref): Fix comment.
3775
3776         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
3777         possible.
3778
3779 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
3780
3781         * reflection.c (mono_param_get_objects): Modified to return
3782         ParameterInfo.DefaultValue object.
3783
3784         (get_default_param_value_blobs):
3785         (mono_get_object_from_blob):
3786         (mono_get_dbnull_object): New helper routines. 
3787
3788         * object.c (mono_get_constant_value_from_blob): New helper routine
3789         carved out from get_default_field_value ()
3790
3791         * object-internals.h (mono_get_constant_value_from_blob): Added
3792         function declaration.
3793
3794 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
3795
3796         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
3797         referenced assemblies. Fixes #62135.
3798
3799         * exception.h exception.c (mono_get_exception_file_not_found2): New
3800         helper function.
3801
3802 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
3803
3804         * class.h class.c: Add mono_type_get_underlying_type ().
3805
3806 2004-09-09  Geoff Norton <gnorton@customerndna.com>
3807
3808         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
3809         Fix GetTypes() to support dynamically created assemblies.
3810
3811 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
3812
3813         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
3814         
3815         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
3816         previous patch.
3817
3818         * reflection.h reflection.c loader.c: Allow dynamic construction of
3819         pinvoke methods. Fixes #65571.
3820         
3821         * reflection.c (mono_reflection_get_type): Revert previous change since
3822         it causes regressions.
3823
3824 2004-09-08  Martin Baulig  <martin@ximian.com>
3825
3826         * class.c (class_compute_field_layout): Don't call
3827         mono_class_layout_fields() for open generic instances.
3828
3829 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
3830         * threads.c appdomain.c: fix typo in GC macro
3831
3832 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3833
3834         * threads.c: don't call mono_thread_detach() in start_wrapper(),
3835         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
3836
3837 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
3838
3839         * image.c (mono_image_close): Applied patch from 
3840         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
3841         assembly is loaded multiple times from data.
3842         
3843         * image.c (mono_image_open): Fix warning.
3844
3845 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3846
3847         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
3848         once. Fixes #58334.
3849         
3850         * reflection.c (mono_reflection_create_runtime_class): Initialize
3851         klass->nested_classes. Fixes #61224.
3852
3853 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
3854
3855         * threads.c: sched_yield() on exit, to allow threads to quit.
3856
3857 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3858
3859         * object.c (mono_unhandled_exception): Remove leftover debug code.
3860
3861 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
3862
3863         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
3864
3865 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3866
3867         * marshal.c (emit_marshal_array): Really null terminate string arrays.
3868         
3869         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
3870
3871 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3872
3873         * marshal.c (emit_marshal_array): Null terminate string arrays.
3874         
3875         * marshal.c (raise_auto_layout_exception): Fix warning.
3876
3877         * reflection.c (mono_param_get_objects): Initialize the default value
3878         with DBNull.Value, not null. Fixes #62123.
3879
3880 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
3881
3882         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
3883         throw an exception with a cute explanation.
3884
3885 2004-09-06  Dick Porter  <dick@ximian.com>
3886
3887         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
3888         Close the new process's thread handle, as we don't use it.  The
3889         handle stays around forever otherwise.
3890
3891 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3892
3893         * object.c (arith_overflow): Fix warning.
3894
3895         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
3896         calling conventions in method refs. Fixes #65352.
3897
3898         * reflection.c: Fix warnings.
3899
3900 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
3901
3902         * icall.c: Add a new icall for Array.Clear
3903
3904 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
3905
3906         * object.c: When allocating an array, we have to throw
3907         an overflow exception if any of the lengths are < 0.
3908
3909 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3910
3911         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
3912         properly. Also move implementation of string array marshalling to 
3913         managed code. Fixes #42316.
3914
3915 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3916
3917         * assembly.c: provide more information when loading an assembly fails.
3918
3919 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3920
3921         * filewatcher.c: don't expect the development fam package to be
3922         installed.
3923
3924 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
3925
3926         * marshal.c: Make a copy of the signature cookie since it will be
3927         freed by the caller.
3928         
3929         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
3930
3931         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
3932
3933         * metadata.c (mono_metadata_free_marshal_spec): New function to free
3934         marshal specs.
3935
3936         * marshal.c: More refactoring.
3937         
3938         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
3939         smaller functions.
3940
3941 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
3942
3943         * object.c: In mono_message_invoke, fill the output parameter array after
3944           calling the managed method (it was done before the call). This fixes
3945           bug #59299.
3946
3947 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
3948
3949         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
3950         as well.
3951
3952 2004-09-02  Martin Baulig  <martin@ximian.com>
3953
3954         * class.c (mono_class_instance_size): Don't allow generic type
3955         definitions or open generic instances.
3956         (mono_class_array_element_size): If we're a value type, call
3957         mono_class_instance_size() on the original class.
3958
3959         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
3960         handle generic instances.
3961
3962         * mono-debug-debugger.c (write_type): Handle generic instances
3963         like classes.
3964
3965 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
3966
3967         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
3968         the allocation request fails. Fixes #65089.
3969
3970         * object.c (mono_runtime_free_method): Do not call mono_free_method.
3971         
3972         * object.c (mono_runtime_free_method): New function to free a dynamic
3973         method.
3974
3975         * marshal.c (mono_delegate_free_ftnptr): New function to free the
3976         delegate trampoline.
3977
3978         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
3979         with hasthis as dynamic,
3980
3981         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
3982
3983         * domain.c (mono_jit_info_table_remove): New function to remove an
3984         entry from the jit info table.
3985
3986         * class-internals.h (MonoMethod): Add 'dynamic' field.
3987
3988         * loader.c: Fix warnings.
3989
3990 2004-09-01  Martin Baulig  <martin@ximian.com>
3991
3992         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
3993         instead of mono_debugger_lock() because the latter one is a no-op
3994         unless running in the debugger.
3995
3996 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
3997
3998         * class.c (class_compute_field_layout): Classes with auto-layout or
3999         reference fields are not blittable.
4000         
4001 2004-09-01  Dick Porter  <dick@ximian.com>
4002
4003         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
4004         mono_image_get_filename() to get the assembly location.
4005
4006         * icall.c:
4007         * metadata.h: Fix compile warnings
4008
4009 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4010
4011         * class.c (class_compute_field_layout): System.Object is blittable.
4012
4013         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
4014         as in/out. Fixes #59909.
4015
4016 2004-09-01  Martin Baulig  <martin@ximian.com>
4017
4018         * metadata.h (MONO_TYPE_ISREFERENCE): Call
4019         mono_metadata_generic_inst_is_valuetype() if we're a generic
4020         instance to check whether our underlying type is a reference type.
4021
4022 2004-09-01  Martin Baulig  <martin@ximian.com>
4023
4024         * metadata.c (mono_type_size): If we're a generic instance, call
4025         mono_class_value_size() for value types.
4026
4027 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
4028
4029         * marshal.c: Implement more custom marshalling functionality. Fixes
4030         #64915.
4031
4032 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4033
4034         * mono-debug.c, debug-mono-symfile.c: add some locking love.
4035
4036 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
4037
4038         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
4039
4040         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
4041
4042         * icall.c: Fix some warnings.
4043
4044         * threads.c (abort_appdomain_thread): Fix unref errors.
4045         (mono_thread_current): Fix THREAD_DEBUG define.
4046
4047 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
4048
4049         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
4050
4051         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
4052
4053 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
4054
4055         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
4056         string arrays.
4057
4058 2004-08-28  Martin Baulig  <martin@ximian.com>
4059
4060         * metadata.c
4061         (mono_metadata_generic_inst_is_valuetype): New public function.
4062
4063         * metadata.h (MONO_TYPE_ISSTRUCT): Call
4064         mono_metadata_generic_inst_is_valuetype() if we're a generic
4065         instance to check whether our underlying type is a valuetype.
4066
4067 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
4068
4069         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
4070         #63768.
4071
4072 2004-08-25  Martin Baulig  <martin@ximian.com>
4073
4074         * loader.c (mono_get_method_from_token): Abstract methods can also
4075         be generic and thus have type parameters.
4076
4077         * metadata-internals.h
4078         (MonoDynamicImage): Added `GPtrArray *gen_params'.
4079
4080         * reflection.c (mono_image_get_generic_param_info): Don't create a
4081         metadata row, just add an entry to the `gen_params' array.
4082         (build_compressed_metadata): Sort the `gen_params' array and then
4083         actually create the metadata.
4084
4085 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4086
4087         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
4088
4089 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
4090
4091         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
4092
4093 2004-08-24  Martin Baulig  <martin@ximian.com>
4094
4095         * class.cs (mono_class_is_subclass_of): Like an interface, a
4096         generic instance also derives from System.Object.
4097
4098 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
4099
4100         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
4101         custom modifiers to be in any order. Fixes #61990.
4102
4103 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
4104
4105         * object.c: Register mono_object_new_fast icall.
4106         
4107         * object.c (mono_class_get_allocation_ftn): Return to calling
4108         mono_object_new_fast, since it seems faster to compute the object 
4109         size in unmanaged code than passing it as a parameter.
4110
4111         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
4112
4113         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
4114         this function with Boehm as the oom handler, so we don't have to check
4115         the result of GC_malloc.
4116
4117         * object.c: Remove checks for oom.
4118
4119         * object.h object.c (mono_class_get_allocation_ftn): New function to
4120         return the icall which can be used to allocate an instance of a given
4121         class. 
4122
4123         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
4124
4125         * class-internals.h: Add 'enabled' field.
4126
4127 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
4128
4129         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
4130
4131 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
4132         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
4133         value 0x0010.
4134
4135 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
4136
4137         * appdomain.c: use the Tls function for appdomain too,
4138         at Zoltan's request. Actually return in mono_context_get
4139
4140         * appdomain.c, profiler.c, threads.c: use __thread
4141
4142 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
4143
4144         * appdomain.c threads.c: Call GC_CreateThread on windows.
4145
4146         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
4147         multiple libraries since this don't work on windows.
4148
4149 2004-08-18  Martin Baulig  <martin@ximian.com>
4150
4151         * class-internals.h
4152         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
4153         MonoMethodHeader.
4154
4155         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
4156         MonoMethodNormal since we also need it for abstract and interface
4157         methods.
4158
4159         * reflection.c
4160         (build_compressed_metadata): Sort the GenericParam table.
4161         (mono_image_create_token): Added `gboolean create_methodspec'
4162         argument; this is false when generating a MethodImpl token.
4163         (reflection_methodbuilder_to_mono_method): Abstract and interface
4164         methods may also have generic parameters.
4165
4166 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
4167
4168         * appdomain.c: thread local alloc
4169
4170 2004-08-17  Martin Baulig  <martin@ximian.com>
4171
4172         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
4173
4174         * icall.c
4175         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
4176         argument.
4177
4178         * class.c (mono_type_get_full_name): New public function.
4179         (mono_type_get_name): Don't include the type arguments.
4180
4181 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
4182
4183         * Makefile.am: Build static versions of libmetadata and libmonoruntime
4184         for inclusion into the mono executable.
4185
4186 2004-08-16  Martin Baulig  <martin@ximian.com>
4187
4188         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
4189         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
4190
4191 2004-08-14  Martin Baulig  <martin@ximian.com>
4192
4193         * class.c (dup_type): Also copy the `byref' field.
4194
4195 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
4196
4197         * reflection.c (create_dynamic_mono_image): Revert the last change 
4198         since it breaks bootstrap.
4199
4200 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
4201
4202         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
4203
4204         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
4205         not free them with g_free.
4206
4207 2004-08-11  Martin Baulig  <martin@ximian.com>
4208
4209         * reflection.c (mono_reflection_setup_internal_class): Also call
4210         mono_class_setup_mono_type() if we already have a `tb->type.type'.
4211
4212 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
4213
4214         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
4215         called during default (first) AppDomain creation. Keep track of
4216         Evidence when loading assemblies.
4217
4218 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4219
4220         * opcodes.c, opcodes.h: reduce runtime relocations.
4221
4222 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
4223
4224         * culture-info.h, locales.c: fixes and chages to sue the new
4225         optimized format of the locale data.
4226         * culture-info-tables.h: regenerated.
4227
4228 2004-08-06  Geoff Norton <gnorton@customerdna.com>
4229         
4230         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
4231
4232 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
4233
4234         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
4235         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
4236         * domain-internals.h: icall declaration.
4237         * icall.c: icall registration.
4238         * object-internals.h: New fields in MonoAssembly for CAS.
4239
4240 2004-08-05  Duncan Mak  <duncan@ximian.com>
4241
4242         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
4243         CEE_LDELEM_ANY.
4244
4245 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4246
4247         * reflection.c: fix to deal with object[] arrays in custom ctors
4248         (bug #62550).
4249
4250 2004-08-05  Martin Baulig  <martin@ximian.com>
4251
4252         * class.c (mono_class_array_element_size): Added support for
4253         generic instances and correctly handle "recursive" types.
4254
4255 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
4256
4257         * assembly.c: Fix warnings.
4258
4259 2004-08-04  Martin Baulig  <martin@ximian.com>
4260
4261         * class.c
4262         (mono_type_get_name_recurse): Added `gboolean include_arity'
4263         argument specifying whether or not we should include the generic
4264         arity in the type name.
4265         (_mono_type_get_name): New static function.
4266         (mono_class_setup_vtable): If we're a generic instance, don't
4267         include the generic arity in the names of explicit method
4268         implementations.        
4269
4270 2004-08-03  Martin Baulig  <martin@ximian.com>
4271
4272         * class.c (mono_type_get_name_recurse): Enclose the generic type
4273         arguments in `<', '>'.
4274
4275 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4276
4277         * gc.c: make GC warning messages use the trace API, they are just
4278         noise to most of the users.
4279
4280 2004-08-03  Martin Baulig  <martin@ximian.com>
4281
4282         * debug-mono-symfile.c (read_string): Correctly read the string.
4283
4284 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
4285
4286         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
4287         
4288         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
4289         icalls.
4290         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
4291
4292 2004-07-30  Martin Baulig  <martin@ximian.com>
4293
4294         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
4295         Reflect latest symbol writer changes.   
4296
4297 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4298
4299         * object.c: always create an object if null is passed
4300         to Invoke() where a valuetype is expected.
4301
4302 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
4303
4304         * marshal.c (mono_marshal_init): make managed
4305         signatures match native ones better for 64bits.
4306
4307 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4308
4309         * appdomain.c: hack to build correctly the private bin path on windows.
4310         Fixes bug #61991.
4311
4312 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
4313
4314         * assembly.c: Load mscorlib from the correct framework directory
4315           (mono/<version>/mscorlib.dll).
4316         * appdomain.h: Added prototypes for new functions.
4317         * internals.h: Added some prototypes.
4318         * domain.c: When initializing the runtime, get from the executable and
4319           the configuration files the runtime version that the app supports.
4320           Added support methods for reading app.exe.config. Added list of versions
4321           supported by the JIT. Added two new methods: mono_init_from_assembly,
4322           which initializes the runtime and determines the required version from
4323           the provided exe file, and mono_init_version, which initializes
4324           the runtime using the provided version.
4325         * icall.c: Get machine.config from version-specific directory.
4326         * reflection.c: When generating an image, embed the version number
4327           of the current runtime.
4328
4329 2004-07-28  Dick Porter  <dick@ximian.com>
4330
4331         * socket-io.c
4332         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
4333         returned sockaddr size before creating the remote address object.
4334         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
4335         61608.
4336
4337 2004-07-28  Dick Porter  <dick@ximian.com>
4338
4339         * locales.c (string_invariant_compare_char): Fix invariant char
4340         compares between upper and lower cases.  Fixes bug 61458.
4341
4342 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
4343         
4344         * marshal.c: actually cache stelem.ref wrappers.
4345         
4346 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
4347
4348         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
4349         sections and remove the mono_cli_rva_map () function.
4350
4351 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4352
4353         * debug-mono-symfile.c: fix one more endianess issue, from a patch
4354         by Geoff Norton (<gnorton@customerdna.com>).
4355
4356 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4357
4358         * class.c: fix class loads for pointer types (typeof(int) !=
4359         typeof(int*)).
4360
4361 2004-07-27  Martin Baulig  <martin@ximian.com>
4362
4363         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
4364         reading the debugging information from an external ".mdb" file.
4365
4366 2004-07-24  Martin Baulig  <martin@ximian.com>
4367
4368         * reflection.c (mono_image_get_type_info): Only write a class
4369         layout entry if we actually have a size or a packing size.
4370
4371 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
4372
4373         * reflection.c (type_get_fully_qualified_name): 
4374         insert cast to get type checking of ?: with non-gcc compilers
4375
4376 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
4377
4378         * rand.c: use g_getenv for both lookups of
4379         MONO_EGD_SOCKET
4380
4381 2004-07-17  Martin Baulig  <martin@ximian.com>
4382
4383         * reflection.c (mono_reflection_bind_generic_method_parameters):
4384         Set `gmethod->reflection_info'.
4385
4386 2004-07-17  Martin Baulig  <martin@ximian.com>
4387
4388         * class.c (mono_class_create_from_typedef): Insert the newly
4389         created class into the hash table before computing the interfaces
4390         since we could be called recursively.
4391
4392 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
4393
4394         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
4395         function to implement stelem.ref in managed code
4396         * class-internals.h, debug-helpers.c: a new wrapper type
4397         for the above.
4398
4399 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4400
4401         * gc.c: allow GC handles to work even when no GC is compiled in.
4402         Fix part of bug #61134 (GetAddrOfPinnedObject).
4403
4404 2004-07-13  Peter Williams  <peter@newton.cx>
4405  
4406         * process.c (complete_path): Make sure we don't attempt to execute
4407         directories.
4408  
4409 2004-07-12  Geoff Norton <gnorton@customerdna.com>
4410
4411         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
4412           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
4413           and will add/subtract the hour if needed
4414
4415 2004-07-12  Martin Baulig  <martin@ximian.com>
4416
4417         * reflection.c (mono_field_get_object): If we have
4418         `field->generic_info', take the attributes from
4419         `field->generic_info->generic_type'.    
4420
4421 2004-07-12  Martin Baulig  <martin@ximian.com>
4422
4423         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
4424         This function must be called before initializing the runtime.
4425         (mono_debug_init_1): New function; call this after initializing
4426         the runtime, but before loading the assembly.  It tells the
4427         debugger to load corlib and the builtin types.
4428
4429         * mono-debug-debugger.c: Did some larger changes in the debugging
4430         code; support recursive class declarations, make sure we actually
4431         add all classes.
4432
4433 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4434
4435         * debug-helpers.c: undo my previous patch and fixed the real issue in
4436         ../mini/exceptions-x86.c
4437
4438 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4439
4440         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
4441         when no HOME env. variable was set and a NullRef was thrown in a .cctor
4442         called from other .cctors.
4443
4444 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
4445
4446         * loader.c: Removed the mono_loader_wine_init hack now that we are
4447         doing a managed version of Windows.Forms.
4448
4449 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
4450
4451         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
4452         threadpool.c, threads.c: remove static data from rootset.
4453
4454 2004-07-09  Dick Porter  <dick@ximian.com>
4455
4456         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
4457         Don't do any more processing if the matched length was 0.  It was
4458         increasing the size of the string before.  Fixes bug 61167.
4459
4460 2004-07-09  Dick Porter  <dick@ximian.com>
4461
4462         * socket-io.h:
4463         * socket-io.c
4464         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4465         Add support for SO_PEERCRED if its available.
4466
4467 2004-07-09  Peter Bartok <pbartok@novell.com>
4468         * loader.c: winelib.exe.so error message is now only displayed if
4469         MONO_DEBUG is set. To help us avoid questions when people are trying
4470         out the new Managed.Windows.Forms.
4471
4472 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
4473
4474         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
4475         for isinst and castclass wrappers.
4476
4477         * class-internals.h icall.c: Move registration and lookup of JIT icalls
4478         to libmetadata from the JIT, so they could be used by the marshalling
4479         code and the interpreter.
4480
4481         * marshal.c: Register marshalling related JIT icalls here instead of
4482         in mini.c. Use CEE_MONO_ICALL instead of the family of 
4483         CEE_MONO_PROC<x> opcodes to call marshalling functions.
4484
4485         * metadata.h: Remove unneeded marshalling conversions.
4486
4487         * opcodes.c: Update for new opcodes.
4488         
4489 2004-07-08  Martin Baulig  <martin@ximian.com>
4490
4491         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
4492         (mono_debug_get_domain_data): Make this function static.
4493
4494 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4495
4496         * gc.c, object.h: add nice GC handle API for embedders.
4497
4498 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
4499
4500         * reflection.c: more changes for the new api
4501
4502         * object.c: When we reflect on a field w/ a constant value, it
4503         will not have a memory location, so we must access metadata. Also,
4504         allow easier reading of strings so that we can read them from
4505         the constant data.
4506
4507         * class.c (mono_class_layout_fields): no need for literal fields here.
4508
4509         * class-internals.h: api changes for const fields
4510
4511         * icall.c (ves_icall_get_enum_info): use new apis for const fields
4512
4513 2004-07-06  Martin Baulig  <martin@ximian.com>
4514
4515         * mono-debug.h: Increment version number to 44.
4516
4517         * mono-debug.c (mono_debug_add_wrapper): The second argument is
4518         now a gpointer, rewrote this whole method.
4519
4520         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
4521         function.  Add information about the wrapper in a new "misc table".
4522
4523         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
4524         for the new misc table.
4525
4526 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
4527
4528         * metadata-internals.h image.c: Add a cache for helper signatures.
4529
4530         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
4531
4532 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
4533
4534         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
4535         delegates from a delegate. Fixes #61033.
4536         
4537         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
4538         marshalling of stringbuilder arrays. Fixes #59900.
4539
4540 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
4541
4542         * icall.c: Add EnumBuilder:setup_enum_type icall.
4543
4544 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
4545
4546         * icall.c: Added a new icall for the property version of
4547         OffsetOfStringData.
4548
4549 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
4550
4551         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
4552         it has a constant size across platforms.
4553
4554         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
4555         stack trace.
4556
4557 2004-06-29  Martin Baulig  <martin@ximian.com>
4558
4559         * mono-debug.c (mono_debug_add_method): Protect the whole function
4560         in mono_debugger_lock(), not just parts of it.
4561
4562 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
4563
4564         * reflection.c: make sure padding bytes in heaps are zeroed.
4565
4566 2004-06-24  David Waite  <mass@akuma.org>
4567
4568         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
4569         image.c, loader.c, locales.c, marshal.c, metadata.c,
4570         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
4571         string-icalls.c, threads.c: change to C90-style comments from C99 /
4572         C++ -style
4573
4574 2004-06-24  Dick Porter  <dick@ximian.com>
4575
4576         * threads.c
4577         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
4578         return createdNew.  Fixes bug 60412.
4579
4580         * threads-types.h: 
4581         * icall.c: Add createdNew parameter to CreateMutex icall
4582
4583 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4584
4585         * reflection.c, object-internals.h: save default value in params.
4586
4587 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4588
4589         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
4590         no need to build a new path combining that with the application base.
4591         Fixes bug #60442.
4592
4593 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
4594
4595         * reflection.c: fixed minor standard compliance issues.
4596
4597 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4598
4599         * reflection.c: fixed issue with encoding some custom attributes
4600         (arrays in properties and fields, bug #60411).
4601
4602 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4603
4604         * reflection.c: fix start address when copying the public key token.
4605
4606 2004-06-23  Martin Baulig  <martin@ximian.com>
4607
4608         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
4609         the `exc' object in a static object to put it into the GC's root set.
4610
4611 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
4612
4613         * reflection.c: make mono_reflection_setup_internal_class ()
4614         callable a second time to setup a new parent class.
4615
4616 2004-06-23  Dick Porter  <dick@ximian.com>
4617
4618         * threads.c: Check for WAIT_IO_COMPLETION return values.
4619
4620 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
4621
4622         * appdomain.c: Removed the g_free on the public key token. Now copy 
4623         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
4624         * assembly.c: Added public key token string value when loading 
4625         assemblies. Fix bug #60439.
4626         * icall.c: Added missing informations (like public key) in 
4627         GetReferencedAssemblies. Fix #60519.
4628         * image.h: Changed definition for public key token from const char*
4629         public_tok_value to guchar public_key_token [17];
4630         * reflection.c: Updated for changes to public key token.
4631
4632 2004-06-22  Lluis Sanchez Gual
4633
4634         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
4635         for the field in base classes.
4636
4637 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4638
4639         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
4640         mark headers as not supported, they are installed only for use by the
4641         debugger.
4642
4643 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
4644
4645         * *.c, *.h: avoid namespace pollution in public headers.
4646
4647 2004-06-21  Martin Baulig  <martin@ximian.com>
4648
4649         * exception.c (mono_get_exception_security): It's in
4650         "System.Security", not in "System".
4651
4652         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
4653         the exception classes.
4654
4655 2004-06-21  Martin Baulig  <martin@ximian.com>
4656
4657         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
4658         Protect the exception object from being finalized.
4659
4660 2004-06-21  Martin Baulig  <martin@ximian.com>
4661
4662         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
4663         public function.
4664
4665 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
4666
4667         * reflection.c: Load the assembly in mono_reflection_type_from_name,
4668         if it was not loaded before. Fix parts of #60439.
4669
4670 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
4671
4672         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
4673         code that was broken since Ben's change: wrappers are now
4674         dependent on the method signature only again.
4675
4676 2004-06-21  Martin Baulig  <martin@ximian.com>
4677
4678         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
4679         added interface support.
4680
4681 2004-06-21  Martin Baulig  <martin@ximian.com>
4682
4683         * class.c (mono_vtable_get_static_field_data): New public method.
4684
4685 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
4686
4687         * filewatcher.c : Windows build fix to be compliant with API changes.
4688
4689 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4690
4691         * class.h, class.c: more accessors.
4692         * metadata.h, metadata.c: prepare for hiding MonoType and
4693         MonoMethodSignature: people should use the accessors from now on
4694         outside of the tree.
4695
4696 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4697
4698         * *.c, *.h: more API cleanups.
4699
4700 2004-06-18  Jackson Harper  <jackson@ximian.com>
4701
4702         * assembly.c: Trace loading assemblies.
4703         * loader.c: Trace loading native libraries.
4704         * mono-config.c: Trace loading config files.
4705         
4706 2004-06-18  Dick Porter  <dick@ximian.com>
4707
4708         * locales.c: Tell ICU the lengths of strings, it can cope with
4709         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
4710
4711 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
4712
4713         * image.c: swapped name/filename;
4714
4715 2004-06-18  Martin Baulig  <martin@ximian.com>
4716
4717         * mono-debug-debugger.c (write_class): Write the parent class at
4718         the end of the header.
4719
4720 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4721
4722         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
4723
4724 2004-06-17  Raja R Harinath  <rharinath@novell.com>
4725
4726         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
4727         (bundle_obj): New conditional define.
4728         (BUILT_SOURCES): Remove.
4729         ($(bundle_srcs)): Make parallel-make safe.
4730         (libmonoruntime_la_LIBADD): Make unconditional.
4731         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
4732         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
4733
4734 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
4735
4736         * culture-info-tables.h: It was inconsistent with the latest
4737           supp info files.
4738
4739 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
4740
4741         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
4742         be loaded.
4743
4744         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
4745         with gcc 2.95.
4746
4747 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4748
4749         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
4750         cleaned up public header threads.h.
4751
4752 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4753
4754         * Makefile.am, *.c, *.h: more API cleanups.
4755
4756 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
4757
4758         * Makefile.am: removed monosn from compilation.
4759         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
4760         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
4761         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
4762         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
4763         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
4764         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
4765
4766 2004-06-15  Jackson Harper  <jackson@ximian.com>
4767
4768         * assembly.c: Make locales lower case when searching the GAC for
4769         assemblies. gacutil will always make locales lowercase when
4770         installing so this effectively makes them case insensitive.
4771         
4772 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
4773
4774         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
4775         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
4776           parameter which allows to choose whether the wait can be interrupted or 
4777           not. Also added the method mono_monitor_enter(), which locks the monitor
4778           using an infinite wait and without allowing interruption.
4779           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
4780           interrupted.
4781         * object.h: Added new fields in MonoThread. suspend_event holds the event
4782           used to susped/resume the thread. synch_lock is the lock object to use for
4783           modifying the thread state.
4784         * threads.c: Use the new synch_lock object for locking, instead of "this",
4785           which can generate deadlocks.
4786           Moved thread state change in Thread.Sleep and Thread.Join from managed
4787           to unmanaged code. This avoids a deadlock when the thread was suspended
4788           just after acquiring the thread lock.
4789           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
4790           Implemented Thread.Suspend using an event instead of ThreadSuspend,
4791           which is not fully implemented in the io-layer.
4792         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
4793
4794 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
4795
4796         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
4797         threads-types.h: more API cleanups.
4798
4799 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4800
4801         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
4802         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
4803         threadpool.c, threads.c: first pass at the exported API cleanup.
4804
4805 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
4806
4807         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
4808
4809 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4810
4811         * icall.c: added internalGetHome.
4812
4813 2004-06-14  Dick Porter  <dick@ximian.com>
4814
4815         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
4816         possible to return successfully when '.' or '..' were the only
4817         entries in a directory, but were skipped.  The MonoIOStat was not
4818         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
4819         Fixes bug 59574.
4820
4821 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4822
4823         * reflection.c: make binaries run on .Net 1.1 by default.
4824
4825 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
4826
4827         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
4828
4829 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
4830
4831         * marshal.c: keep track of struct size with explicit layout
4832         (bug #59979).
4833
4834 2004-06-12  Martin Baulig  <martin@ximian.com>
4835
4836         * mono-debug-debugger.c: Comment out a debugging g_message().
4837
4838 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4839
4840         * reflection.c, reflection.h: do not free custom attrs that are cached.
4841         * icall.c: use braces to make code clearer.
4842
4843 2004-06-11  Martin Baulig  <martin@ximian.com>
4844
4845         * class.h (MonoInflatedField): New type.
4846         (MonoClassField): Replaced `MonoType *generic_type' with
4847         `MonoInflatedField *generic_info'.
4848
4849         * icall.c
4850         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
4851
4852 2004-06-11  Martin Baulig  <martin@ximian.com>
4853
4854         * reflection.c (mono_image_create_method_token): Correctly encode
4855         varargs methods.
4856
4857 2004-06-11  Martin Baulig  <martin@ximian.com>
4858
4859         * metadata.c (mono_metadata_parse_method_signature): When parsing
4860         a MethodDef which has VarArgs, also set sentinelpos if we don't
4861         have any parameters.
4862
4863 2004-06-11  Martin Baulig  <martin@ximian.com>
4864
4865         * verify.c (mono_method_verify): In CEE_CALL, use
4866         mono_method_get_signature() to get the method's signature, unless
4867         we're a PInvoke method.
4868
4869 2004-06-10  Jackson Harper  <jackson@ximian.com>
4870
4871         * assembly.c: Use <path>/lib/mono/gac for the extra paths
4872         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
4873         logical name as the supplied path is just a prefix to the gac not
4874         the direct path to it.
4875         
4876 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
4877
4878         * reflection.c: make the token for a created method match
4879         the token of the MethodBuilder it was created from
4880         (IKVM requires this behaviour now).
4881
4882 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
4883
4884         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
4885         reflection.c, socket-io.c: leak fixes.
4886
4887 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
4888
4889         * icall.c: handle sentinel pos in vararg methods in position different
4890         from 0.
4891
4892 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4893
4894         * culture-info-tables.h: freshly generated.
4895
4896 2004-06-09  Martin Baulig  <martin@ximian.com>
4897
4898         * loader.c (mono_get_method_constrained): Call `mono_class_init
4899         (constrained_class)'.   
4900
4901 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
4902
4903         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
4904         any methods. Fixes #59629.
4905
4906 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4907
4908         * culture-info-tables.h: reflecting locale-builder updates.
4909
4910 2004-06-08  Dick Porter  <dick@ximian.com>
4911
4912         * object.h:
4913         * locales.c: Fixed compile warnings, including a real bug in
4914         CompareInfo_internal_compare.
4915         
4916 2004-06-08  Dick Porter  <dick@ximian.com>
4917
4918         * locales.c
4919         (ves_icall_System_Globalization_CompareInfo_internal_index):
4920         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
4921         Double-check the resuls of usearches, because ICU currently
4922         ignores most of the collator settings here.  Fixes bug 59720.
4923         
4924 2004-06-08  Dick Porter  <dick@ximian.com>
4925
4926         * locales.c
4927         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
4928         Fix memory leak and segfault-causing typo.  No idea how this one
4929         lasted so long without being noticed.
4930
4931 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
4932
4933         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
4934         any methods. Fixes #59629.
4935
4936 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4937
4938         * assembly.c:
4939         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
4940         own the critical section before). Removed dead code (that's done
4941         in the preload hook).
4942
4943         (mono_assembly_load_with_partial_name): call the preload hook.
4944
4945 2004-06-08  Martin Baulig  <martin@ximian.com>
4946
4947         * metadata.c (mono_metadata_signature_alloc): Default
4948         `sentinelpos' to -1.
4949
4950         * reflection.c (mono_image_get_array_token): Likewise.
4951
4952 2004-06-08  Martin Baulig  <martin@ximian.com>
4953
4954         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
4955
4956         * metadata.c (mono_metadata_parse_method_signature): When parsing
4957         a MethodDef which has VarArgs, set sentinelpos.
4958
4959         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
4960         `gint16' since we're using -1 for non-varargs methods.
4961
4962         * reflection.c
4963         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
4964         (method_encode_signature): Added varargs support.
4965         (method_builder_encode_signature): Likewise.
4966         (mono_image_get_varargs_method_token): New static method.
4967         (mono_image_create_method_token): New public method; this is
4968         called via an icall instead of mono_image_create_token() when
4969         calling a varargs method.       
4970
4971 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
4972
4973         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
4974
4975 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4976
4977         * culture-info-tables.h : Reflecting the latest locale-builder that
4978           fixed empty array representation ({} to {0}).
4979
4980 2004-06-07  Jackson Harper  <jackson@ximian.com>
4981
4982         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
4983         looking up extra gac paths. This allows MONO_GAC_PATH to act
4984         exactly like a prefix.
4985         
4986 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
4987
4988         * reflection.c (mono_reflection_type_from_name): Make a copy of the
4989         type name before modifying it. Fixes #59405.
4990
4991 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4992
4993         * culture-info.h: added fields for "all datetime patterns".
4994         * locales.c: (  ves_icall_System_Globalization_CultureInfo
4995           _construct_datetime_format ()): fill xxx_patterns fields.
4996         * object.h: added fields for "all datetime patterns" to
4997           MonoDateTimeFormatInfo.
4998         * culture-info-tables.h: reflecting locale-builder updates.
4999
5000 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5001
5002         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
5003         the event has no add and remove methods. Fixes #59629.
5004
5005 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
5006
5007         * object.c: Fixed possible integer overflow when allocating large
5008         strings.
5009
5010 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5011
5012         * culture-info-tables.h: reflecting locale-builder updates.
5013
5014 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5015
5016         * culture-info-tables.h: reflecting locale-builder updates.
5017
5018 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
5019
5020         * culture-info-tables.h: reflecting locale-builder updates.
5021
5022 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
5023
5024         * threads.c: Made Thread.Sleep abortable.
5025
5026 2004-06-02  Martin Baulig  <martin@ximian.com>
5027
5028         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
5029
5030         * debug-mono-symfile.h: Bumped symbol file version number to 37.
5031
5032 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
5033
5034         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
5035
5036 2004-05-30  Jackson Harper  <jackson@ximian.com>
5037
5038         * reflection.c: Do not hardcode assembly versions or public key
5039         tokens anymore. All of this except the corlib section was dead
5040         code anyways.
5041         
5042 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
5043
5044         * object.c (mono_runtime_invoke_array): Automatically create boxed
5045         objects for byref valuetypes if needed. Fixes #59300.
5046         
5047         * object.c (mono_method_return_message_restore): Handle 
5048         MONO_TYPE_OBJECT as well.
5049
5050 2004-05-28  Jackson Harper  <jackson@ximian.com>
5051
5052         * reflection.c: The modified type encoding was causing build
5053         problems. Reverted for now.
5054         
5055 2004-05-28  Jackson Harper  <jackson@ximian.com>
5056
5057         * reflection.c/h: Take an assembly ref so that we dont create
5058         fully qualified names when encoding types in the same assembly as
5059         the custom attribute being emitted.
5060         * appdomain.c: Increment version number.
5061         
5062 2004-05-26  Duncan Mak  <duncan@ximian.com>
5063
5064         * icall.c
5065         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
5066         Set the full version number (major, minor, build, revision).
5067
5068 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
5069
5070         * marshal.c (emit_struct_conv): increment src/dst after blit
5071         (mono_marshal_get_managed_wrapper,
5072         mono_marshal_get_native_wrapper): make sure we have marshalling
5073         info before marshalling params (info computation affects
5074         blittable)
5075
5076         * class.c (class_compute_field_layout): correctly deal with
5077         blittable
5078         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
5079         value types (as per what windows dows by default)
5080         (mono_class_setup_mono_type): System.ValueType is blittable
5081         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
5082         blittable
5083
5084         * marshal.c (mono_marshal_load_type_info): flag types  as
5085         non-blittable if the native layout doesn't match the managed
5086         layout
5087
5088 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5089
5090         * appdomain.c: don't add stuff in the private search path that is
5091         above the application base. If application base is not set, there's
5092         no private search path.
5093
5094 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
5095
5096         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
5097         byref struct arguments in native->managed marshalling.
5098
5099 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
5100
5101         * marshal.c (mono_marshal_get_runtime_invoke): correctly
5102         cache methods using signature (special case for methods
5103         that are value type or string class)
5104         
5105         * image.c (mono_image_close): clean up allocated GSList's
5106         in runtime_invoke_cache.
5107
5108 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5109
5110         * mono-config.c: set the correct path for mono_cfg_dir on windows when
5111         there's no MONO_CFG_DIR environment variable defined.
5112
5113 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5114
5115         * threads.c: windows version must be >= 0x0500 to include OpenThread.
5116
5117 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
5118
5119         * threadpool.c: Really wait for 500ms after the async call, even if the wait
5120           is interrumped.
5121         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
5122           before waiting for it, and call CloseHandle after the wait to unref it.
5123           This will make sure that handles are not disposed too early.
5124
5125 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5126
5127         * appdomain.c:
5128         * appdomain.h:
5129         * icall.c: removed
5130         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
5131         needed now.
5132
5133         * object.c: se the application_base only for the domain that runs
5134         Main. Fixes bug #59216,
5135
5136 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5137
5138         * appdomain.c:
5139         * object.c: only the domain in which Main is run have
5140         SetupInformation.ConfigurationFile set, so moved a few lines from
5141         appdomain.c to object.c.
5142
5143 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5144
5145         * appdomain.c: we tried to load [name].(dll|exe), but according
5146         to bug #57710, we must also try [culture]/[name].(dll|exe) and
5147         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
5148         There's a test case attached to bug #58922.
5149
5150 2004-05-27  Dick Porter  <dick@ximian.com>
5151
5152         * icall.c:
5153         * file-io.c: Implemented icalls for locking and unlocking regions
5154         in a file.
5155         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
5156         FALSE on error (fixes both compiler warning and real bug.)
5157
5158 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
5159
5160         * culture-info-tables.h: reflecting locale-builder updates.
5161
5162           (Added missing ChangeLog entry for 05/26)
5163
5164 2004-05-27  Jackson Harper  <jackson@ximian.com>
5165
5166         * locales.c: Fix some cut and paste errors.
5167         
5168 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5169
5170         * mono-config.c: set the correct path for config. directory on windows.
5171
5172 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5173
5174         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
5175           on win32.
5176
5177 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5178
5179         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
5180         from pinvoke functions.
5181         
5182         * marshal.c (mono_ftnptr_to_delegate): Implement this.
5183
5184 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5185
5186         * culture-info-tables.h: reflecting locale-builder updates.
5187
5188 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5189
5190         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
5191         #59086.
5192
5193 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
5194
5195         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
5196         * icall.c: Modified icalls for RNG.
5197         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
5198         Windows (CryptoAPI).
5199
5200 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5201
5202         * locales.c: Fix build.
5203
5204 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5205
5206         * culture-info-tables.h: reflecting locale-builder updates.
5207
5208 2004-05-25  Jackson Harper  <jackson@ximian.com>
5209
5210         * locales.c: When creating the current culture use the $LANGs
5211         specific culture. So DateTimeFormat and NumberFormat entries are created.
5212         
5213 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5214
5215         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
5216         a char array as parameter.
5217
5218 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
5219
5220         * image.c: In mono_image_open(), always use an absolute path name to
5221           look for already loaded images.
5222
5223 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
5224
5225         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
5226         missing in the windows build (like older cygwin include files).
5227
5228 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
5229
5230         * icall.c: Fixed check for possible integer overflow in Buffer_
5231         BlockCopy icall. Replaced comments style // by /* */.
5232
5233 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
5234
5235         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
5236         
5237         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
5238         check after MONO_VTADDR. Fixes pinvoke2.exe.
5239
5240         * marshal.h marshal.c metadata.h: Add beginnings of support for
5241         ftnptr -> delegate marshalling.
5242
5243 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
5244
5245         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
5246         * threads.c: Fix warnings.
5247
5248 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
5249
5250         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
5251         * icall.c: Registered icalls for Suspend and Resume.
5252         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
5253           Thread.Abort.
5254         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
5255         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
5256         * process.c: Use WaitForSingleObjectEx.
5257         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
5258           checkpoints.
5259         * threads.c, threads.h: Make use of new Ex wait methods. Improved
5260           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
5261           for Suspend and Resume. Added new mono_thread_stop, used for stoping
5262           background threads. Added basic support for Abort in Windows.
5263           Start new threads using a managed delegate invoke wrapper. This wrapper
5264           has an interruption checkpoint that is needed since an interruption
5265           can be requested before the thread leaves the unmanaged code that starts 
5266           the thread.
5267         * marshal.c: Added interruption checkpoint after every native call, and
5268           also before managed calls for wrappers called from unmanaged code to
5269           go into managed code.
5270         * object.h: Added new field in MonoThread to keep track of interruption
5271           requests.
5272
5273 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
5274
5275         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
5276         calls.
5277
5278 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5279
5280         * appdomain.c:
5281         * assembly.c:
5282         * gc.c:
5283         * locales.c:
5284         * mono-config.c:
5285         * rand.c: getenv -> g_getenv (windows!)
5286
5287         * process.c: complete_path is also used on non-windows platforms.
5288
5289 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5290
5291         * icall.c: new signature for Process_Start.
5292
5293         * process.[ch]: new signature for Process_Start. If we're on windows
5294         and UseShellExecute is false, we have to search for the program by
5295         ourselves if we don't get a full path.
5296
5297 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
5298
5299         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
5300         marshalling and call CleanUpNativeData if needed. Fixes #58646.
5301
5302 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5303
5304         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
5305         Fixes bug #58373.
5306
5307 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5308
5309         * process.c: use double quotes to quote program name and arguments on
5310         windows. Fixes bug #58575.
5311
5312 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5313
5314         * file-io.c: don't return "." and ".." when using windows Find*File.
5315
5316 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
5317
5318         * marshal.c: Don't pass wrappers to message init because method 
5319         addressed used to lookup metadata. part of remoting[2|3] fix.
5320
5321 2004-05-15  Jackson Harper  <jackson@ximian.com>
5322
5323         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
5324         path is essentially the same as MONO_PATH except that it points to
5325         GACs instead of lib directories.
5326         * loader.h: The user gac is gone so we dont need function to
5327         enable/disable it.
5328         * mono-config.c: user gac option is now gone.
5329         
5330 2004-05-15  Jackson Harper  <jackson@ximian.com>
5331
5332         * culture-info.h: Make defines more consistent, add calendar data
5333         to the culture info table.
5334         * culture-info-tables.h: Add basic calendar data. Basically
5335         everyone gets default gregorian until all the data is
5336         updated.
5337         * locales.c: Use the new consistent defines. Set calendar data for
5338         culture info objects.
5339         * object.h: add a field for calendar data to CultureInfo
5340         
5341 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
5342
5343         * image.c: image->runtime_invoke_cache is keyed on signatures now.
5344         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
5345         a signature.
5346         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
5347         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
5348         an extra param that is the pointer of the method to invoke. The IL for
5349         the invoke method is no longer specific to the method, but to the
5350         signature of the method. Thus, we can share the same code for multiple
5351         methods. This reduces the number of methods that have to be compiled.
5352
5353 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
5354
5355         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
5356
5357         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5358
5359         * icall.c: Optimize Buffer.BlockCopy.
5360
5361 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5362
5363         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
5364         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
5365         quote). Changed them to "MMMM yyyy".
5366
5367 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
5368
5369         * rand.c
5370         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
5371
5372 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
5373
5374         * reflection.h: Updated after changes to managed structures.
5375
5376         * appdomain.c: Bump corlib version.
5377
5378 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5379
5380         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
5381         windows.
5382
5383 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5384
5385         * Makefile.am: link to ../os/libmonoos.la on windows.
5386
5387         * assembly.c:
5388                 -If MONO_DEBUG, warn about non-existing directories in
5389                 MONO_PATH.
5390                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
5391                 compile time variable.
5392                 -Removed init_default_path and call mono_set_rootdir from
5393                 libmonoos.a instead (windows only).
5394
5395         * assembly.h: declare mono_assembly_getrootdir().
5396
5397         * domain.c:
5398         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
5399
5400         * loader.c: s/getenv/g_getenv/
5401
5402 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
5403
5404         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
5405
5406         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
5407
5408         * metadata.h: Add new marshalling conversions.
5409
5410         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
5411         function.
5412
5413         * reflection.c (mono_reflection_get_type): Lookup the type in all
5414         modules of a multi-module assembly. Fixes #58291.
5415
5416 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
5417
5418         * threads.c: Before aborting a background, set the StopRequested
5419         state.  This avoids throwing the Abort exception.
5420         In mono_thread_manage, don't continue with the shutdown until all
5421         aborted threads have actually stopped.
5422
5423 2004-05-10  Jackson Harper  <jackson@ximian.com>
5424
5425         * locales.c: Remove the modifier from culture names.
5426         
5427 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5428
5429         * Makefile.am: monosn is not installed any more. It has been deprecated
5430         in favor of sn.
5431
5432 2004-05-07  Jackson Harper  <jackson@ximian.com>
5433
5434         * locales.c
5435         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
5436         Fix array construction, add bailout if the length is 0.
5437
5438 2004-05-07  Dick Porter  <dick@ximian.com>
5439
5440         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
5441         machine doesn't have a DNS entry.  Patch by Urs Muff
5442         (umuff@quark.com), fixes bug 57928.
5443
5444 2004-05-06  Jackson Harper  <jackson@ximian.com>
5445
5446         * reflection.c: Handle null PublicTokens properly. alloc mem for
5447         assembly names culture so we dont crash when freeing it.
5448         
5449 2004-05-06  Jackson Harper  <jackson@ximian.com>
5450
5451         * assembly.c: Check the usergac when loading with partial names.
5452         
5453 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
5454
5455         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
5456         does nothing for now (not required for Linux/Windows) but the class
5457         library can call it (and a newer or modified runtime could need it).
5458         * icall.c: Registred icall.
5459
5460 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5461
5462         * loader.c: prints a message on module loading error we set MONO_DEBUG
5463         environment variable.
5464
5465 2004-05-05  Jackson Harper  <jackson@ximian.com>
5466
5467         * appdomain.c: Handle PublicKeyToken=null properly.
5468         
5469 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
5470
5471         * environment.c|h: Added icall ves_icall_System_Environment_
5472         GetOSVersionString to get the current OS version as a string.
5473         * icall.c: Registred icall.
5474
5475 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
5476
5477         * object.c: in mono_object_get_virtual_method(), take into account that
5478         non-virtual methods don't have a slot in the vtable. Check needed when
5479         the object is a proxy.
5480
5481 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
5482
5483         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
5484         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
5485
5486         * object.c (mono_class_compute_gc_descriptor): Fix warning.
5487
5488         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
5489         passed when a valuetype is expected.
5490
5491         * object.c (mono_unhandled_exception): Only set the exit code if the
5492         exception happens in the main thread. Fixes thread5.exe.
5493
5494         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
5495         invalid names. Fixes #58047.
5496
5497 2004-05-03  Jackson Harper  <jackson@ximian.com>
5498
5499         * assembly.c: This line was committed accidently and is unneeded.
5500         
5501 2004-05-03  Jackson Harper  <jackson@ximian.com>
5502
5503         * icall.c: Add new icall for Assembly::LoadWithPartialName
5504         * assembly.c/.h: new function that probes the GAC to load partial
5505         assembly names by Paolo Molaro.
5506         
5507 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5508
5509         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
5510         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
5511         (type_get_fully_qualified_name): Added PublicKeyToken when building a
5512         full type name.
5513
5514 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5515
5516         * appdomain.c: fixed check for 'neutral' culture and removed warning.
5517         * reflection.c: fix bug when parsing a full type name and Version is not
5518         the last thing in the string.
5519
5520 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
5521
5522         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
5523         crashes when it is freed.
5524
5525 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5526
5527         * assembly.c: print the compat warning to stderr.
5528
5529 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
5530
5531         * assembly.c (mono_assembly_load_references): Add a compatibility
5532         hack to run old applications that might be still referencing the
5533         3300-based assemblies, only do this for System.xxx.
5534
5535 2004-05-01  Jackson Harper  <jackson@ximian.com>
5536
5537         * appdomain.c: If the culture is neutral we set it to "".
5538         
5539 2004-04-29  Jackson Harper  <jackson@ximian.com>
5540
5541         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
5542
5543 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
5544  
5545         * string-icalls.c: added low overhead function for copying chars
5546         * icall.c: added needed icall for the above function
5547  
5548 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5549
5550         * icall.c: fix return value of get_global_assembly_cache.  Implemented
5551         Environment.GetLogicalDrives.
5552
5553 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
5554
5555         * rand.c: try and talk to egd or prngd
5556         for random bytes if opening devices fail.
5557
5558 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
5559
5560         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
5561         alignment for the type using the native alignment of its members 
5562         instead of using klass->min_align.
5563
5564         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
5565
5566 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5567
5568         * file-io.c:
5569         * socket-io.c: added check for sys/aio.h.
5570
5571 2004-04-28  Dick Porter  <dick@ximian.com>
5572
5573         * threads.c: Don't abort a thread thats already aborting, when
5574         terminating everything.
5575
5576 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5577
5578         * icall.c: added 2 new async calls for Socket.
5579
5580         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
5581         IO on *nix systems.
5582
5583         * threadpool.c: removed unused variable.
5584
5585 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
5586
5587         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
5588
5589 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5590
5591         * locales.c: put back string_invariant_tolower () and
5592         string_invariant_toupper ().
5593
5594 2004-04-26 David Waite <mass@akuma.org>
5595
5596         * file-io.h:
5597         * socket-io.h:
5598         * threads.h:
5599         * unicode.h: remove comma from end of enumeration declarations
5600
5601 2004-04-26 David Waite <mass@akuma.org>
5602
5603         * debug-mono-symfile.h:
5604         * decimal.c:
5605         * mono_debug.h:
5606         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
5607
5608
5609 2004-04-26  Jackson Harper  <jackson@ximian.com>
5610
5611         * appdomain.c: Increment version number.
5612         
5613 2004-04-26  Jackson Harper  <jackson@ximian.com>
5614
5615         * appdomain.c: Set assembly references public token value when
5616         PublicKeyToken is specified, not the hash_value. Free public token
5617         values when free assembly name data. Previously the public key
5618         token was hex decoded, however we are using hex encoded public key
5619         tokens, so this is not neccasary.
5620         * assembly.c: Lookup assemblies in the gac if their public token
5621         value is set. Add function to allow enabling user gac
5622         lookups. Specify whether or not the assembly was loaded from the
5623         GAC. Compare full assembly names when checking the cache for
5624         assemblies (Temporarily disabled see comment in code). Remove
5625         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
5626         specifies trace-loader they get extra info to stdout on the
5627         loading of assemblies.
5628         * image.h: Add a field for an assembly references public token
5629         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
5630         whether an assembly has been loaded from the GAC.
5631         * image.c: Remove a corlib -> mscorlib name mapping.
5632         * loader.h: Add function to enable/disable the user gac.
5633         * mono-config.c: Check if the usergac is enabled in the config
5634         file.
5635         * icall.c: New icall to determine whether or not an assembly has
5636         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
5637         * tabldefs.h: Add constant for assemblyref flag that specifies a
5638         full public key is used instead of a public token.
5639         * reflection.c: Remove mscorlib -> corlib mappings. Set
5640         PublicTokenValue instead of hash value. This value is a hex
5641         string so it does not need to be expanded.
5642
5643 2004-04-26  Martin Baulig  <martin@ximian.com>
5644
5645         * mono-debug-debugger.c (mono_debugger_initialize): Set
5646         `mono_debugger_initialized' before calling mono_debug_lock().
5647
5648 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
5649
5650         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
5651           InternalToUpper/InternalToLower.
5652         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
5653           removed invariant culture shortcut.  This is now done in managed code.
5654         * locales.c: (string_invariant_toupper/tolower) removed.
5655
5656 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5657
5658         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
5659         Added Poll internal call.
5660
5661         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
5662         call for Poll. Select was too heavy for polling a single socket.
5663
5664         * threadpool.[ch]: added mono_threadpool_cleanup.
5665         * threads.c: use it. Don't use Thread_Abort on windows.
5666
5667 2004-04-23  Martin Baulig  <martin@ximian.com>
5668
5669         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
5670
5671 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
5672
5673         * icall.c: Registred new icalls for key pair protection and added an
5674         icall for Environment.GetFolderPath on Windows.
5675         * security.c|h: Added new icalls for key pair protection.
5676
5677 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5678
5679         * socket-io.c: don't display the non-supported family warning for known
5680         families. Now this is not displayed on windows when checking support
5681         for IPv4/IPv6.
5682
5683 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5684
5685         * class.c: don't display the layout warning for static fields.
5686
5687 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
5688
5689         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
5690         * locales.c, locales.h: Added new icalls for culture-specific
5691         Char.ToLower and Char.ToUpper.
5692
5693 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5694
5695         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
5696         by David Waite.
5697
5698 2004-04-20  Martin Baulig  <martin@ximian.com>
5699
5700         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
5701         of the type name before passing it to mono_reflection_type_from_name().
5702
5703 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
5704
5705         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
5706         encodings here. Fixes #56965.
5707
5708 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
5709
5710         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5711         fix test on strstr result not that I can see anything that
5712         relies on the result.
5713
5714 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
5715
5716         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
5717         Fixes #57081.
5718
5719         * marshal.c (mono_marshal_get_string_encoding): New helper function.
5720
5721         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
5722         function to determine which marshalling to use for strings. Fixes
5723         #56965.
5724
5725         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
5726
5727         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
5728
5729 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
5730
5731         * icall.c: #include mono-config.h
5732
5733 2004-04-15  Jackson Harper  <jackson@ximian.com>
5734
5735         * culture-info-tables.h: Fix date formats for en-US culture.
5736         
5737 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
5738
5739         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
5740         ThreadPool.SetMinThreads.
5741         * threadpool.c: Implemented ThreadPool.GetMinThreads and
5742         ThreadPool.SetMinThreads.
5743
5744 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
5745
5746         * mono-config.c: also load the .config file in the directory
5747         where the assembly was found.
5748
5749 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
5750
5751         * assembly.c: load per-assembly config files.
5752         * icall.c: decrapified code to get the config dir and moved to
5753         mono-config.c.
5754         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
5755         per-assembly config files. When doing a dll map lookup give precedence
5756         to the per-assembly data.
5757
5758 2004-04-14  Martin Baulig  <martin@ximian.com>
5759
5760         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
5761         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
5762         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
5763
5764         * mono-debugger-debugger.c: While the debugger is locked, remember
5765         whether the symbol tables have changes and send one single
5766         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
5767
5768 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
5769
5770         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
5771
5772         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
5773         function.
5774
5775         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
5776         account when marshalling string arrays. Fixes #56965.
5777
5778 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
5779
5780         * icall.c: Add new icalls mapping for security.
5781         * security.c|h: Add internal calls for WindowsIdentity,
5782         WindowsImpersonationContext and WindowsPrincipal.
5783
5784 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
5785
5786         * class.c: Added comment to ensure the System.MonoDummy class
5787         is removed when no longer necessary
5788
5789 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
5790
5791         * appdomain.c: Pass arguments to the bootstraping exceptions to
5792         minimize JITed methods at boot
5793
5794         * metadata.c (mono_exception_from_name_two_strings): Allow for the
5795         second string to be null.
5796
5797         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5798         Change the protocol to minimize the JIT methods at startup.  Now
5799         it Returns the internal codepage, if the value of "int_code_page"
5800         is 1 at entry, and we can not compute a suitable code page
5801         number, returns the code page as a string.
5802
5803 2004-04-13  Jackson Harper  <jackson@ximian.com>
5804
5805         * culture-info-tables.h: Fix number of decimal digits for all
5806         english locales.
5807
5808 2004-04-13  Jackson Harper  <jackson@ximian.com>
5809
5810         * icall.c: Clairfy out of sync error message. It is not always
5811         your corlib that is out of sync.
5812
5813 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
5814
5815         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
5816         properties when only the set accessor is overriden. Fixes #55874.
5817
5818 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
5819
5820         * assembly.c (mono_assembly_load_references): Make this thread safe.
5821         Fixes #56327.
5822
5823 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
5824
5825         * monosn.c: Add missing initialization calls.
5826
5827 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
5828
5829         * locales.c:
5830         ves_icall_System_Globalization_CultureInfo_construct_number_format
5831         Fix g_assert so it compiles on fussier compilers re int/ptr
5832         mismatch
5833
5834 2004-04-08  Dick Porter  <dick@ximian.com>
5835
5836         * socket-io.h:
5837         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
5838         53992.  Also rearrange the code so that the internal calls return
5839         an error value and exceptions are thrown from managed code.
5840
5841         * icall.c: Add type info to the socket icalls.
5842
5843 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5844
5845         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
5846         owes me a beer.
5847
5848 2004-04-07  Martin Baulig  <martin@ximian.com>
5849
5850         * class.c (mono_class_from_generic_parameter): Don't default
5851         `klass->parent' to `mono_defaults.object_type'.
5852
5853 2004-04-07  Martin Baulig  <martin@ximian.com>
5854
5855         * reflection.c (mono_reflection_initialize_generic_parameter): Set
5856         `param->pklass->reflection_info'.       
5857
5858 2004-04-07  Jackson Harper  <jackson@ximian.com>
5859
5860         * culture-info-tables.h: Fix date separator symbol.
5861         
5862 2004-04-07  Martin Baulig  <martin@ximian.com>
5863
5864         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
5865         from System.Type to System.MonoType.
5866
5867 2004-04-07  Martin Baulig  <martin@ximian.com>
5868
5869         * reflection.h
5870         (MonoReflectionGenericParam): Added `has_reference_type' and
5871         `has_value_type' fields.
5872
5873         * reflection.c (mono_image_get_generic_param_info): Encode the
5874         correct flags if we have the `class' or `struct' constraint.
5875
5876 2004-04-07  Martin Baulig  <martin@ximian.com>
5877
5878         * reflection.h
5879         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
5880
5881 2004-04-07  Jackson Harper  <jackson@ximian.com>
5882
5883         * appdomain.c: Revert extra patches, just wanted to bump the
5884         version number.
5885         
5886 2004-04-07  Jackson Harper  <jackson@ximian.com>
5887
5888         * Makefile.am: Add culture-info private headers.
5889         * icall.c: Add new icalls for contructing locales.
5890         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
5891         * locales.h: Declare new culture info construction methods.
5892         * object.h: Add new fields used to avoid the CultureMap to
5893         MonoCultureInfo.
5894         * culture-info.h: Definition of structs used in the culture info
5895         tables.
5896         * culture-info-tables.h: Autogenerated tables that contain culture
5897         info data. This file was generated with the locale-builder tool.
5898         * appdomain.c: Incement corlib version number.
5899         
5900 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
5901
5902         * appdomain.c: (mono_runtime_init) move mono_thread_init
5903         to before mono_object_new calls so critical sections
5904         are initialized before use.
5905
5906 2004-04-07  Martin Baulig  <martin@ximian.com>
5907
5908         * icall.c
5909         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
5910         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
5911         (ves_icall_MonoGenericParam_initialize): Removed.
5912         (monogenericparam_icalls): Removed.
5913         (generictypeparambuilder_icalls): Added new table for
5914         System.Reflection.Emit.GenericTypeParameterBuilder.
5915
5916         * reflection.c
5917         (mono_reflection_define_generic_parameter): Removed.
5918         (mono_reflection_initialize_generic_parameter): This is now called
5919         from GenericTypeParameterBuilder's .ctor.
5920
5921 2004-04-06  Martin Baulig  <martin@ximian.com>
5922
5923         * class.c (mono_class_init): Don't inflate nested classes in a
5924         generic instance.
5925         (mono_type_get_name_recurse): Include the generic arguments for
5926         generic instances and generic type declarations.
5927         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
5928         (_mono_class_get_instantiation_name): Removed.
5929         (mono_class_create_generic): Always use `gklass->name' as our name.
5930
5931         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
5932
5933         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
5934         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
5935         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
5936         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
5937         closed generic methods here.
5938
5939         * reflection.c
5940         (mono_reflection_generic_inst_get_nested_types): Removed.
5941         (inflate_mono_method): Copy the generic parameters from the
5942         MonoMethodHeader into out MonoGenericMethod.
5943
5944 2004-04-06  Martin Baulig  <martin@ximian.com>
5945
5946         * row-indexes.h
5947         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
5948
5949         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
5950
5951         * reflection.c (build_compressed_metadata): If we have any entries
5952         in the GenericParam, MethodSpec or GenericParamConstraint tables,
5953         set the header version to 1.1.
5954
5955 2004-04-06  Martin Baulig  <martin@ximian.com>
5956
5957         * class.c (mono_class_init): If we're a generic instance,
5958         initialize our nested classes, too.
5959         (_mono_class_get_instantiation_name): Deal with the new `!%d'
5960         suffix. 
5961
5962 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5963
5964         * process.c: quote the argument passed to the shell on windows.
5965
5966 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
5967
5968         * threads.c (mono_alloc_special_static_data): Allow this to be
5969         called during startup.
5970
5971 2004-04-02  Martin Baulig  <martin@ximian.com>
5972
5973         * icall.c
5974         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
5975
5976 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
5977
5978         * icall.c: Fix build.
5979
5980 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
5981
5982         * Makefile.am: Added security.c|h.
5983         * icall.c: Added icall for get_UserName;
5984         * security.c: New file for security related icalls. Added function
5985         get_UserName for System.Environment (fix #56144).
5986         * security.h: New. Header file for security.c
5987
5988 2004-04-02  Dick Porter  <dick@ximian.com>
5989
5990         * icall.c: Deleted the icalls that were obsoleted some time ago
5991         by the ICU string code, and which were mixed into the icall
5992         rearranging.  Fixes bug 55969.
5993
5994         * string-icalls.h: 
5995         * string-icalls.c: Deleted the code that those icalls reference.
5996
5997 2004-04-01  Martin Baulig  <martin@ximian.com>
5998
5999         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
6000
6001         * class.c (mono_class_from_generic_parameter): Don't set 
6002         TYPE_ATTRIBUTE_INTERFACE.
6003         (my_mono_class_from_generic_parameter): Likewise.
6004
6005 2004-04-01  Martin Baulig  <martin@ximian.com>
6006
6007         * loader.c (find_method): Added an optional `MonoClass *ic'
6008         argument to search in a specific interface.
6009         (mono_get_method_constrained): New public function.
6010
6011 2004-04-01  Martin Baulig  <martin@ximian.com>
6012
6013         * reflection.c (mono_image_get_generic_field_token): Use the
6014         `handleref' cache here.
6015
6016 2004-04-01  Martin Baulig  <martin@ximian.com>
6017
6018         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
6019
6020         * reflection.c (create_generic_typespec): Use the `typespec' hash
6021         here, not the `typeref' one.    
6022
6023 2004-04-01  Martin Baulig  <martin@ximian.com>
6024
6025         * class.c (mono_class_inflate_generic_type): Moved the
6026         functionality into a new static inflate_generic_type() which
6027         returns NULL if it didn't do anything.  Only increment the
6028         `mono_stats.inflated_type_count' if we actually inflated
6029         something.
6030         (mono_class_get_full): Check the classes type to see whether we
6031         need to inflate it; also inflate MONO_TYPE_(M)VAR.
6032
6033 2004-04-01  Jackson Harper  <jackson@ximian.com>
6034
6035         * reflection.c: Set culture for assembly references.
6036         
6037 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
6038
6039         * reflection.[ch], icall.[ch], Fix support for pinning variables.
6040
6041 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6042
6043         * assembly.c:
6044         (do_mono_assembly_open): the critical section also covers
6045         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
6046
6047 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6048
6049         * threads.c:
6050         (mono_manage_threads): abort the background threads when finishing.
6051         Fixes bug #47232.
6052
6053 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6054
6055         * gc.c: only close the done_event handle if there was no timeout.
6056         C-ified comments.
6057
6058 2004-03-30  Martin Baulig  <martin@ximian.com>
6059
6060         * icall.c (icall_entries): It's called "System.Activator", not
6061         "System.Activation".    
6062
6063 2004-03-30  Martin Baulig  <martin@ximian.com>
6064
6065         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
6066         (mono_class_create_from_typespec): Likewise.
6067
6068 2004-03-30  Martin Baulig  <martin@ximian.com>
6069
6070         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
6071         `has_ctor_constraint' and `initialized'.
6072
6073 2004-03-30  Martin Baulig  <martin@ximian.com>
6074
6075         * reflection.c (encode_new_constraint): New static function to add
6076         the constructor constraint attribute to a type parameter.
6077         (encode_constraints): Call encode_new_constraint() if necessary.
6078
6079         * reflection.h
6080         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
6081
6082         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
6083         
6084 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
6085
6086         * reflection.c, icall.c: add support for pinning variables. 
6087
6088 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
6089
6090         * marshal.c (mono_marshal_get_managed_wrapper):
6091         init bool local with zero rather than null.
6092
6093 2004-03-29  Martin Baulig  <martin@ximian.com>
6094
6095         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
6096         the "official" behavior here.
6097         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
6098
6099 2004-03-29  Martin Baulig  <martin@ximian.com>
6100
6101         * icall.c: Reflect latest API changes.
6102
6103 2004-03-29  Martin Baulig  <martin@ximian.com>
6104
6105         * loader.c (mono_get_method_from_token): Also call
6106         mono_metadata_load_generic_params () for abstract and interface
6107         methods; replace the type arguments in the method signature with
6108         the ones which are loaded from the metadata.
6109
6110 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
6111
6112         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
6113         of the lock is not the current thread. MS.NET don't do it, in spite of
6114         what the documentation says. See bug #56157.
6115
6116 2004-03-28  Martin Baulig  <martin@ximian.com>
6117
6118         * class.c (mono_class_init): Don't call init_properties() and
6119         init_events() for generic instances; set `prop->parent' when
6120         inflating properties.
6121
6122         * reflection.c (mono_generic_inst_get_object): Call
6123         `mono_class_init (ginst->klass)'.
6124         (mono_type_get_object): Only create a MonoGenericInst if your
6125         generic type is a TypeBuilder.
6126         (do_mono_reflection_bind_generic_parameters): Only set
6127         `ginst->is_dynamic' if our generic type is a TypeBuilder.
6128
6129 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
6130
6131         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
6132         Fixes #56091.
6133
6134 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6135
6136         * icall.c: added Kill_internal icall.
6137         * process.[ch]: added Kill_internal icall.
6138
6139 2004-03-25  Martin Baulig  <martin@ximian.com>
6140
6141         * class.h (MonoStats): Added `generic_instance_count',
6142         `inflated_method_count', `inflated_type_count' and
6143         `generics_metadata_size'.       
6144
6145 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6146
6147         * reflection.c: no warnings now.
6148
6149 2004-03-25  Martin Baulig  <martin@ximian.com>
6150
6151         * class.c (mono_class_get_full): New public function; does a
6152         mono_class_get(), but also takes a `MonoGenericContext *'.
6153
6154         * loader.c (mono_field_from_memberref): Renamed to
6155         `field_from_memberref', made static and added `MonoGenericContext *'
6156         argument.
6157         (mono_field_from_token): Added `MonoGenericInst *' argument.
6158         (method_from_memberef): Likewise.
6159         (mono_get_method_from_token): Likewise.
6160         (mono_get_method_full): New public function; does a
6161         mono_get_method(), but also takes a `MonoGenericContext *'.
6162
6163         * verify.c (mono_method_verify): Get the method's generic context
6164         and pass it to mono_field_from_token(), mono_get_method_full() and
6165         mono_class_get_full().
6166
6167 2004-03-25  Martin Baulig  <martin@ximian.com>
6168
6169         * class.c (mono_class_inflate_generic_type): Take a
6170         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
6171         `MonoGenericMethod *'.
6172
6173 2004-03-25  Martin Baulig  <martin@ximian.com>
6174
6175         * loader.h (MonoMethodInflated): Store the MonoGenericContext
6176         instead of the MonoGenericMethod here.
6177
6178 2004-03-25  Martin Baulig  <martin@ximian.com>
6179
6180         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
6181         each time we create a new MonoGenericInst, we also create a new
6182         context which points back to us.
6183
6184         * class.c (inflate_method): Use `ginst->context' instead of
6185         creating a new context.
6186
6187         * loader.c (method_from_memberref): Use
6188         `klass->generic_inst->context' instead of creating a new context.
6189
6190 2004-03-25  Martin Baulig  <martin@ximian.com>
6191
6192         * class.h (MonoGenericContext): New struct.
6193         (MonoGenericMethod): Removed `generic_inst'.
6194
6195         * class.c (mono_class_inflate_generic_method): Take a
6196         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
6197
6198 2004-03-25  Martin Baulig  <martin@ximian.com>
6199
6200         * loader.h (MonoMethodInflated): New typedef.
6201
6202         * metadata.h (MonoMethodSignature): Removed `gen_method', make
6203         `generic_param_count' consume just 30 bits, added `is_inflated'
6204         and `has_type_parameters' flags (one bit each).
6205
6206         * class.c (mono_class_inflate_generic_method): Create a
6207         MonoMethodInflated instead of a MonoMethodNormal and set
6208         `is_inflated' in the method signature.
6209
6210         * class.h (MonoGenericMethod): Removed `generic_method'.
6211
6212 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
6213
6214         * image.c: Make sure the name of a MonoImage is always an absolute path.
6215           This fixes bug #54415.
6216
6217 2004-03-24  Martin Baulig  <martin@ximian.com>
6218
6219         * class.c (mono_class_setup_vtable): If we're a generic instance,
6220         use our generic type's vtable size.
6221
6222 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
6223
6224         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
6225         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
6226         problems.
6227
6228 2004-03-23  Martin Baulig  <martin@ximian.com>
6229
6230         * class.h (MonoDynamicGenericInst): Added `int count_events' and
6231         `MonoEvent *events'.
6232
6233         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
6234         (typebuilder_icalls): Added "get_event_info"; calls
6235         mono_reflection_event_builder_get_event_info(). 
6236
6237         * reflection.c (mono_reflection_generic_inst_initialize): Added
6238         `MonoArray *events'.
6239         (mono_reflection_event_builder_get_event_info): New function.
6240
6241 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
6242
6243         * object.h: add mono_type_initialization_init
6244
6245         * object.c (mono_runtime_class_init): 
6246         implement class constructor synchronization rules
6247         to cope with threading issues.  
6248         add mono_type_initialization_init
6249
6250         * appdomain.c (mono_runtime_init): call 
6251         mono_type_initialization_init
6252
6253         * class.h: removing initializing field from MonoVTable
6254
6255 2004-03-23  Martin Baulig  <martin@ximian.com>
6256
6257         * class.c (my_mono_class_from_generic_parameter): Use
6258         `param->name' if it's not NULL. 
6259
6260 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
6261
6262         * class.c: do not insert non-virtual methods in the vtable.
6263         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
6264         that means the method is non-virtual. This never would have
6265         happened before.
6266
6267 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
6268
6269         * profiler.c: Added lock for accessing coverage_hash.
6270
6271 2004-03-22  Martin Baulig  <martin@ximian.com>
6272
6273         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
6274         `method->method->signature->generic_param_count != 0' to make it
6275         work for interface methods.
6276
6277 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6278
6279         * process.c: quote the string passed to the shell using g_shell_quote.
6280
6281 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6282
6283         * threads.c:
6284         (mono_threads_manage): don't remove the finalizer thread and self
6285         from the threads hash table so that mono_thread_manage can be called
6286         more than once.
6287
6288 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6289
6290         * process.c: quote the arguments when UseShellExecute is true. Fixes
6291         bug #55790.
6292
6293 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6294
6295         * threads.c: set mono_thread_detach as a cleanup routine for every
6296         thread. This way it's always executed upon thread termination, either
6297         aborted or finished normally. No more xsp hangs!
6298
6299 2004-03-17  Martin Baulig  <martin@ximian.com>
6300
6301         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
6302         `int count_nested' and a `MonoType **nested'.
6303
6304         * reflection.c (mono_reflection_bind_generic_parameters): Moved
6305         most of the functionality into a new static
6306         do_mono_reflection_bind_generic_parameters() and don't take a
6307         `MonoType *nested_in' argument any more.  Don't compute nested
6308         types here.
6309         (mono_reflection_generic_inst_get_nested_types): New public method
6310         to get nested types.
6311
6312         * class.c (mono_class_create_generic): Set `klass->nested_in' if
6313         we're a nested class.
6314
6315         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
6316         mono_reflection_generic_inst_get_nested_types() to compute the
6317         nested types.
6318
6319 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
6320
6321         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
6322         descriptive error message under windows.
6323         
6324 2004-03-17  Martin Baulig  <martin@ximian.com>
6325
6326         * class.c (dup_type): Added `const MonoType *original' argument;
6327         copy the attrs from the original type.
6328
6329 2004-03-17  Martin Baulig  <martin@ximian.com>
6330
6331         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
6332         `m->generic_inst_cache' here.
6333
6334 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
6335
6336         * exception.h exception.c: Add stack_overflow_exception.
6337
6338 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6339
6340         * threadpool.c:
6341         (overlapped_callback): call SetEvent *after* invoking the callback.
6342         No need to call CloseHandle.
6343
6344 2004-03-16  Martin Baulig  <martin@ximian.com>
6345
6346         * reflection.c (mono_image_get_fieldref_token): Take a
6347         `MonoReflectionField *' instead of a `MonoClassField *' and a
6348         `MonoClass *'; store the `MonoReflectionField *' in the hash.
6349
6350 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6351
6352         * appdomain.c: don't add the culture to the filename we're looking for
6353         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
6354
6355 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6356
6357         * locales.c: don't ignore symbols when doing case insensitive compares.
6358         Thanks Dick! Fixes bug #54046.
6359
6360         * threads.c: surround 'threads' usage with enter/leave in
6361         mono_thread_manage.
6362
6363 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
6364
6365         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
6366         implicitly marshalled as [Out]. Fixes #55450.
6367
6368         (mono_marshal_get_runtime_invoke): Zero out the result if there is
6369         an exception.
6370
6371 2004-03-16  Martin Baulig  <martin@ximian.com>
6372
6373         * class.c (mono_class_from_generic_parameter): Use the actual
6374         parameter name. 
6375
6376 2004-03-16  Martin Baulig  <martin@ximian.com>
6377
6378         * reflection.c (type_get_signature_size): New static function.
6379         Compues the size of the type in a method signature.
6380         (method_get_signature_size): New static function; calls
6381         type_get_signature_size() to compute the actual size of the
6382         method's signature.
6383         (method_encode_signature): Use method_get_signature_size() to get
6384         the signature's size rather than using `nparams * 10'.
6385
6386 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6387
6388         * file-io.h: define here WapiOverlapped on windows. I don't want the
6389         regular OVERLAPPED one.
6390
6391         * file-io.c:
6392         * threadpool.c: somehow, BindIoCompletionCallback is not found.
6393         Disabling AIO on windows.
6394
6395 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6396
6397         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
6398         bug #55385.
6399
6400 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6401
6402         * appdomain.c: upgraded corlib version.
6403
6404         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
6405         and BeginWrite. Allow opening files for asynchrnous operations.
6406
6407         * file-io.h: new struct that maps FileStreamAsyncResult.
6408         * icall.c: added new icalls.
6409         * process.[ch]: support setting child process environment variables
6410         and use the SHELL or COMSPEC when UseShellExecute is true.
6411
6412         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
6413         callback for async. IO is here and also BindHandle.
6414
6415         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
6416         from here.
6417
6418 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
6419
6420         * reflection.c (create_custom_attr): Allow len == 0.
6421
6422         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
6423         computation on big-endian machines.
6424
6425 2004-03-13  Martin Baulig  <martin@ximian.com>
6426
6427         * class.h (MonoGenericInst): Added `int count_ifaces'.
6428
6429         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
6430         `ginst->count_ifaces' instead `klass->interface_count' since we
6431         may get called before the vtable is created.
6432
6433         * loader.c (mono_method_get_param_names): If we're a generic
6434         instance, return and don't initialize the class.
6435
6436         * reflection.c (mono_reflection_setup_generic_class): Don't call
6437         ensure_runtime_vtable().
6438         (mono_reflection_bind_generic_parameters): Set
6439         `ginst->count_ifaces'.
6440
6441 2004-03-11  Jackson Harper <jackson@ximian.com>
6442
6443         * icall.c:
6444         * unicode.c:
6445         * unicode.h: Remove unused System.Char icalls.
6446         
6447 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
6448
6449         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
6450         code when we P/Invoke the first library in Windows.Forms, instead
6451         of when we first open the assembly.
6452
6453         * assembly.c: Drop the lookup from here.
6454
6455 2004-03-10  Martin Baulig  <martin@ximian.com>
6456
6457         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
6458         class for properties, fields and events.  Finally fixes #54945.
6459
6460 2004-03-10  Martin Baulig  <martin@ximian.com>
6461
6462         * metadata.c (mono_metadata_class_equal): New static function;
6463         checks whether two generic instances or two generic parameters are
6464         equal.
6465         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
6466         compare classes.        
6467
6468 2004-03-10  Martin Baulig  <martin@ximian.com>
6469
6470         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
6471
6472         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
6473         argument and write it into the `reflection_info' field.
6474
6475         * icall.c
6476         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
6477         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
6478
6479 2004-03-09  Jackson Harper  <jackson@ximian.com>
6480
6481         * char-conversions.h: use 8 bits for numeric data its all we need
6482         * icall.c: numeric data is only 8 bits now.
6483
6484 2004-03-09  Martin Baulig  <martin@ximian.com>
6485
6486         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
6487
6488         * class.c (init_properties, init_events): Initialize the new
6489         `parent' field.
6490
6491         * reflection.c (typebuilder_setup_properties): Likewise.
6492         (typebuilder_setup_events): Likewise.
6493
6494         * reflection.h (MonoEventInfo): Replaced `parent with
6495         `declaring_type' and `reflected_type'.
6496
6497         * icall.c (ves_icall_get_property_info): Distinguish between
6498         declaring and reflected type.
6499         (ves_icall_get_event_info): Likewise.
6500
6501 2004-03-09  Martin Baulig  <martin@ximian.com>
6502
6503         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
6504         (ves_icall_Type_GetField): Correctly set field->klass.
6505
6506 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
6507
6508         * loader.h: Fix warning.
6509
6510 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
6511
6512         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
6513         library routine if present.  Notice that it will still continue
6514         executing even if its missing, for those working on the Gtk#
6515         edition of Windows.Forms.
6516
6517         * assembly.c (do_mono_assembly_open): If loading the
6518         System.Windows.Forms call mono_loader_wini_init.
6519
6520 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
6521
6522         * class.h: Added MonoRemoteClass struct.
6523         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
6524         function for MonoStrings.
6525         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
6526         Added internal call for getting the proxy type.
6527         * marshal.c: Get the type of transparent proxies from its remote_class.
6528         Added methods that generate the IL for type checks and casts:
6529         mono_marshal_get_isinst, mono_marshal_get_castclass, 
6530         mono_marshal_get_proxy_cancast.
6531         * marshal.h: Declaration of the previous new methods.
6532         * object.c: Added new moethods for creating and updating MonoRemoteClass
6533         instances: mono_remote_class, mono_upgrade_remote_class, 
6534         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
6535         * verify.c: FIx transparent_proxy_fields layout.
6536         * appdomain.c: Bump corlib version.
6537
6538 2004-03-04  Jackson Harper  <jackson@ximian.com>
6539
6540         * icall.c: Add icall to access char conversion tables.
6541         * char-conversions.h: Character conversion tables.
6542         * Makefile.am: Add char-conversions.h private header file.
6543         
6544 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
6545
6546         * appdomain.c (unload_thread_main): Increase unloading timeout to
6547         10 sec as a temporary workaround for Nant problems.
6548
6549 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
6550
6551         * gc.c: Add checks for GC_enable and GC_disable.
6552
6553         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
6554         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
6555         (bug #54988).
6556         
6557 2004-02-27  Martin Baulig  <martin@ximian.com>
6558
6559         * reflection.c (mono_reflection_bind_generic_parameters): Take a
6560         `MonoReflectionType *' instead of a `MonoType *'.
6561
6562 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
6563
6564         * gc.c (run_finalize): Avoid finalizing the object representing the
6565         finalizer thread.
6566         (finalizer_thread): Fix warning.
6567
6568 2004-02-25  Martin Baulig  <martin@ximian.com>
6569
6570         * class.c (_mono_class_get_instantiation_name): Added `int offset'
6571         argument for nested types.
6572         (mono_class_create_generic): Added support for nested generictypes.
6573
6574         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
6575         `GList *nested'.
6576
6577         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
6578
6579         * reflection.c (method_encode_signature): Increase the minimum
6580         value of `size' from 10 to 11.
6581         (mono_reflection_bind_generic_parameters): Take `int type_argc'
6582         and `MonoType **types' arguments instead of the `MonoArray
6583         *types'; added `MonoType *nested_in'.  Recursively instantiate
6584         nested classes. 
6585
6586 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
6587
6588         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
6589         stack_overflow_ex members which are used by exception handling.
6590
6591         * appdomain.c (mono_runtime_init): Initialize the new members.
6592
6593         * gc.c (mono_gc_enable): New helper function.
6594         * gc.c (mono_gc_disable): New helper function.
6595
6596 2004-02-23  Martin Baulig  <martin@ximian.com>
6597
6598         * icall.c: I must have been really stupid - make it actually work
6599         this time ;-)
6600
6601 2004-02-23  Martin Baulig  <martin@ximian.com>
6602
6603         * loader.c (method_from_memberref): Only inflate the method if
6604         it's in another klass.
6605
6606 2004-02-23  Martin Baulig  <martin@ximian.com>
6607
6608         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
6609         (mono_class_init): If we're a generic instance and an interface,
6610         compute `class->interface_id'; also create `class->interfaces'
6611         here and inflate them.
6612
6613         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
6614         `ginst->is_open'.
6615         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
6616
6617         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
6618
6619 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
6620
6621         * reflection.c (method_encode_code): Improved the error message
6622         generated by the exception.
6623
6624 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6625
6626         * icall.c: Martin did not do what he said in the ChangeLog for
6627         2004-02-18, but put back the changes for properties and events.
6628         Commenting those changes out again and adding comment to bug #54518.
6629         
6630         * process.c: removed warning.
6631
6632 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
6633
6634         * marshal.c (emit_struct_conv): Print an error message instead of
6635         asserting when a type does not have the StructLayout attribute.
6636
6637 2004-02-20  Martin Baulig  <martin@ximian.com>
6638
6639         * reflection.c (mono_type_get_object): Also use the cache for
6640         generic instances.
6641         (mono_reflection_bind_generic_parameters): Always compute
6642         `ginst->ifaces'.        
6643
6644 2004-02-20  Martin Baulig  <martin@ximian.com>
6645
6646         * class.h (MonoGenericMethod): Removed `klass'.
6647
6648         * class.c (mono_class_inflate_generic_method): Added `MonoClass
6649         *klass' argument.
6650
6651 2004-02-20  Martin Baulig  <martin@ximian.com>
6652
6653         * reflection.c (method_encode_methodspec): Actually use the
6654         uninflated signature for the memberref.
6655
6656 2004-02-20  Martin Baulig  <martin@ximian.com>
6657
6658         * class.h (MonoGenericMethod): Removed `declaring'.
6659
6660         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
6661         is NULL, compute it here.
6662
6663 2004-02-20  Martin Baulig  <martin@ximian.com>
6664
6665         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
6666
6667         * metadata.c (mono_metadata_generic_inst_hash): New method.
6668         (mono_metadata_generic_inst_equal): New method.
6669
6670         * reflection.c (mono_reflection_bind_generic_parameters): Use the
6671         `klass->image->generic_inst_cache' cache to avoid creating
6672         duplicate MonoGenericInst's.
6673
6674         * class.c (mono_class_inflate_generic_type): Use the cache.
6675
6676 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6677
6678         * object.c: fixed gc descriptor calculation for embedded valuetypes.
6679
6680 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6681
6682         * icall.c: added Socket.WSAIoctl icall.
6683
6684         * socket-io.[ch]: implemented
6685         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
6686
6687 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
6688
6689         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
6690
6691 2004-02-18  Urs C Muff  <umuff@quark.com>
6692
6693         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
6694         this work on PPC and other big-endian architectures.
6695
6696         * debug-mono-symfile.h: Prepended the names of all the `guint32'
6697         fields with an underscore to make sure they're only accessed by
6698         the read32() macro.
6699
6700 2004-02-18  Martin Baulig  <martin@ximian.com>
6701
6702         * icall.c: Put the klass->refclass changes back for methods and
6703         fields, but not for properties and events.  We're currently not
6704         distinguishing between DeclaringType and ReflectedType for
6705         properties and events, that's what caused the regressions.
6706
6707 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6708
6709         * object.c:
6710         (mono_async_result_new): the handle can be NULL.
6711
6712         * threadpool.c: Use an event instead of a semaphore, don't initialize
6713         it until needed. This saves quite a few semaphores from being created
6714         when using the threadpool.
6715
6716 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
6717
6718         * object.c (mono_string_is_interned_lookup): Fix interning of long
6719         strings. Fixes #54473.
6720
6721         * domain.c (ldstr_equal): Optimize if the two strings are equal.
6722
6723         * icall.c: Revert the klass->refclass changes since they introduce
6724         regressions (bug #54518).
6725
6726 2004-02-18  Martin Baulig  <martin@ximian.com>
6727
6728         * class.c (mono_class_init): If we're a generic instance and don't
6729         come from a TypeBuilder, inflate our members here.
6730         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
6731         (mono_class_create_generic): New public method.
6732         (mono_class_initialize_generic): Removed.
6733         (get_instantiation_name): Renamed to
6734         _mono_class_get_instantiation_name() and made it public.
6735
6736 2004-02-18  Martin Baulig  <martin@ximian.com>
6737
6738         * class.c (mono_class_inflate_generic_type): Clear the new
6739         instance's `nginst->klass' when inflating a generic instance.
6740         (mono_class_is_subclass_of): Added (basic) support for generic
6741         instances.
6742
6743 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
6744
6745         * appdomain.h, domain.c: use a MonoCodeManager instead of a
6746         MonoMempool to hold compiled native code.
6747
6748 2004-02-17  Martin Baulig  <martin@ximian.com>
6749
6750         * class.h (MonoDynamicGenericInst): Added `count_properties' and
6751         `properties'.
6752
6753         * reflection.c (mono_reflection_generic_inst_initialize): Added
6754         `MonoArray *properties' argument.
6755
6756         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
6757
6758 2004-02-17  Martin Baulig  <martin@ximian.com>
6759
6760         * icall.c (ves_icall_Type_GetFields): Renamed to
6761         ves_icall_Type_GetFields_internal() and added a
6762         `MonoReflectionType *rtype' argument; pass it to
6763         mono_field_get_object() to set the field's "reflected" type.
6764         (ves_icall_Type_GetConstructors): Likewise.
6765         (ves_icall_Type_GetEvents): Likewise.
6766         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
6767         argument; pass it to mono_method_get_object() to set the method's
6768         "reflected" type.       
6769
6770 2004-02-17  Martin Baulig  <martin@ximian.com>
6771
6772         * class.h (MonoDynamicGenericInst): New type.
6773         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
6774
6775         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
6776         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
6777         (ves_icall_MonoGenericInst_GetFields): New interncall.
6778
6779         * class.c (mono_class_from_generic): Don't call
6780         mono_class_initialize_generic() if this is a dynamic instance;
6781         ie. it's being created from a TypeBuilder.
6782         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
6783         `class->byval_arg.type'.
6784
6785         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
6786         to `inflate_method' and made static.
6787         (mono_reflection_inflate_field): Removed.
6788         (mono_reflection_generic_inst_initialize): New public method.
6789
6790         * reflection.h (MonoReflectionGenericInst): Removed `methods',
6791         `ctors' and `fields'; added `initialized'.
6792
6793 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
6794
6795         * debug-helpers.c (mono_method_full_name): Fix output for empty
6796         namespaces.
6797
6798 2004-02-12  Martin Baulig  <martin@ximian.com>
6799
6800         * class.h (MonoClassField): Added `MonoType *generic_type'.
6801
6802         * reflection.c (mono_image_get_fieldref_token): Added support for
6803         instantiated generic types.
6804         (field_encode_inflated_field): Removed.
6805         (mono_image_get_inflated_field_token): Removed.
6806         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
6807
6808         * reflection.h (MonoReflectionInflatedField): Removed.
6809
6810 2004-02-12  Martin Baulig  <martin@ximian.com>
6811
6812         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
6813         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
6814
6815         * reflection.c (mono_image_get_methodspec_token): Take a
6816         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
6817         (mono_image_create_token): Check whether we have a
6818         `method->signature->gen_method' and call
6819         mono_image_get_methodspec_token() if appropriate.
6820         (inflated_method_get_object): Removed.
6821         (mono_reflection_bind_generic_method_parameters): Return a
6822         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
6823         (mono_reflection_inflate_method_or_ctor): Likewise.
6824
6825         * reflection.h (MonoReflectionInflatedMethod): Removed.
6826
6827 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
6828
6829         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
6830         for custom valuetype marshalling.
6831
6832         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
6833
6834 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6835
6836         * icall.c: fixed WSAGetLastError_internal name.
6837
6838 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
6839
6840         * threads.c (mono_thread_attach): Allow this to be called multiple
6841         times for a thread.
6842         
6843         * threads.c (build_wait_tids): Do not wait for ourselves.
6844
6845         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
6846         appdomain list is empty.
6847
6848         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
6849         memory returned by mono_string_builder_to_utf16, since it points into
6850         managed memory. Thanks to Bernie Solomon for noticing this.
6851
6852         * icall.c: Add AppDomainSetup icalls.
6853
6854         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
6855
6856         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
6857         types.
6858
6859         * reflection.c (reflection_methodbuilder_to_mono_method): Save
6860         custom attributes to the method_aux struct. Also fix array indexes etc.
6861
6862         * loader.c (mono_method_get_param_names): Make dynamic case work again.
6863         
6864 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
6865
6866         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
6867         (both static and runtime) and reduce startup time.
6868
6869 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
6870
6871         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
6872         AsAny marshalling conversion instead of crashing.
6873
6874         * marshal.c: Fix warnings.
6875
6876 2004-02-09  Martin Baulig  <martin@ximian.com>
6877
6878         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
6879
6880         * reflection.h (MonoReflectionInflatedMethod): Removed the
6881         `declaring' field, it's now in the unmanaged MonoGenericMethod.
6882
6883         * reflection.c (method_encode_methodspec): Removed the `method'
6884         argument; we get it from `gmethod->declaring'.
6885         (inflated_method_get_object): Removed the `declaring' argument.
6886
6887 2004-02-09  Martin Baulig  <martin@ximian.com>
6888
6889         * class.h (MonoGenericMethod): New type.
6890         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
6891         `generic_method'.
6892
6893         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
6894         a `MonoGenericMethod *gen_method' one.
6895
6896         * class.c (mono_class_inflate_generic_type): Take an additional
6897         `MonoGenericMethod * argument.  This is only non-NULL if we're
6898         inflating types for a generic method.   
6899         (mono_class_inflate_generic_signature): Renamed to
6900         inflate_generic_signature() and made static; take a
6901         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
6902         (inflate_generic_header): Take a `MonoGenericMethod *' argument
6903         instead of a `MonoGenericInst *' one.
6904         (mono_class_inflate_generic_method): Likewise.
6905
6906         * reflection.c (encode_generic_method_sig): Take a
6907         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
6908         (method_encode_methodspec): Likewise.
6909         (inflated_method_get_object): Likewise. 
6910
6911         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
6912         field with a `MonoGenericMethod *gmethod' one.  
6913
6914 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
6915
6916         * class.h (mono_class_has_parent): add parens to expansion
6917         so you can ! this.
6918
6919 2004-02-08  Martin Baulig  <martin@ximian.com>
6920
6921         * image.h (MonoImage): Removed `generics_cache'.
6922
6923         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
6924         instead of a `MonoType *' argument; removed the `inflate_methods'
6925         argument.  Don't inflate methods here.
6926
6927         * loader.c (find_method): If it's a generic instance, call
6928         mono_class_init() on the `sclass->generic_inst->generic_type'.
6929
6930         * metadata.c (mono_type_size): Make this work on uninitialized
6931         generic instances; call it on the `ginst->generic_type's class.
6932
6933         * reflection.c (mono_reflection_bind_generic_parameters): Call
6934         mono_class_from_generic() to create the `ginst->klass'.
6935
6936 2004-02-08  Martin Baulig  <martin@ximian.com>
6937
6938         * class.h (MonoClass): Changed type of `generic_inst' from
6939         `MonoType *' to `MonoGenericInst *'.
6940
6941 2004-02-08  Martin Baulig  <martin@ximian.com>
6942
6943         * icall.c (ves_icall_Type_BindGenericParameters): Just call
6944         mono_type_get_object(), this is now creating a `MonoGenericInst'
6945         for MONO_TYPE_GENERICINST.
6946         (ves_icall_MonoGenericInst_GetParentType): Likewise.
6947         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
6948
6949         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
6950         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
6951         (inflated_method_get_object): Added `MonoClass *refclass' argument.
6952         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
6953         and reflected type.
6954
6955         * reflection.h (MonoReflectionInflatedMethod): Removed
6956         `declaring_type' and `reflected_type'.
6957
6958 2004-02-08  Martin Baulig  <martin@ximian.com>
6959
6960         * class.h (MonoGenericInst): Added `MonoType *parent' and
6961         `MonoType **ifaces'.
6962
6963         * reflection.h (MonoReflectionGenericInst): Removed `klass',
6964         `parent' and `interfaces'.
6965
6966         * reflection.c (mono_reflection_bind_generic_parameters): Take a
6967         `MonoType *' argument and return a `MonoType *'.
6968
6969         * icall.c
6970         (ves_icall_MonoGenericInst_GetParentType): New interncall.
6971         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
6972
6973 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
6974
6975         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
6976         valuetype marshalling.
6977
6978 2004-02-06  Martin Baulig  <martin@ximian.com>
6979
6980         * class.c
6981         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
6982         (my_mono_class_from_generic_parameter): Likewise.
6983
6984 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
6985
6986         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
6987         contents of the symbol files lazily.
6988
6989         * object.h (MonoThread): Add 'name' and 'name_len' fields.
6990
6991         * threads.h threads.c icall.c: New icalls for getting and setting the
6992         threads name.
6993
6994 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
6995
6996         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
6997         Raise an exception when the domain is not found.
6998
6999 2004-02-03  Martin Baulig  <martin@ximian.com>
7000
7001         * reflection.c (mono_image_get_methodspec_token): Use the
7002         uninflated signature; fixes gen-33.
7003
7004 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
7005
7006         * gc.c threads.c: Make the finalizer thread a normal managed thread so
7007         the finalizer code can use thread functionality.
7008
7009         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
7010         the finalizer thread.
7011
7012         * threads.c: Make some functions more robust.
7013
7014         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
7015
7016         * metadata.h: Add new marshalling conventions.
7017
7018         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
7019         stringbuilder marshalling. Fixes #53700.
7020
7021         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
7022
7023         * reflection.c (mono_image_get_type_info): Save declarative security
7024         info.
7025
7026         * reflection.c (mono_image_get_field_info): Handle uninitialized 
7027         unmanaged fields as well.
7028
7029         * appdomain.c: Bump corlib version.
7030
7031 2004-02-01  Martin Baulig  <martin@ximian.com>
7032
7033         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
7034         method type arguments.  
7035
7036 2004-01-30  Duncan Mak  <duncan@ximian.com>
7037
7038         * marshal.h: Add prototype for
7039         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
7040         and
7041         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
7042         fix the build.
7043
7044 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
7045
7046         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
7047         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
7048
7049 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7050
7051         * marshal.c (mono_marshal_get_native_wrapper): Add support for
7052         custom marshalling of valuetypes.
7053
7054         * marshal.c: Fix some warnings.
7055
7056 2004-01-29  Martin Baulig  <martin@ximian.com>
7057
7058         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
7059         for generic method parameters.
7060
7061         * reflection.c (method_encode_methodspec): Write the uninflated
7062         signature into the methodspec table.
7063         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
7064         is always the uninflated method.
7065         (reflection_methodbuilder_to_mono_method): Copy the generic
7066         parameters from the MethodBuilder into `header->gen_params'.
7067
7068 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7069
7070         * class.c (mono_class_from_generic_parameter): Fix warning.
7071
7072 2004-01-27  Martin Baulig  <martin@ximian.com>
7073
7074         * class.c (mono_class_from_generic_parameter): Don't create
7075         `klass->methods' here.  
7076
7077 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
7078
7079         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
7080         extension since it does not work with libraries named lib<FOO>.dll.so.
7081
7082 2004-01-25  Martin Baulig  <martin@ximian.com>
7083
7084         * class.c (mono_class_inflate_generic_type): Added support for
7085         MONO_TYPE_GENERICINST.
7086
7087         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
7088         inflate methods on open constructed types.      
7089
7090 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7091
7092         * object.c: fire ProcessExit event in the root AppDomain after running
7093         Main. Fixes bug #53299.
7094
7095 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
7096
7097         * socket-io.c: include the new socket-wrappers.h header.
7098         Use the wrappers instead of the unix socket functions to make the code
7099         more clear.
7100
7101 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
7102
7103         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
7104
7105         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7106         Fixes #22532.
7107
7108 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
7109
7110         * reflection.c (mono_image_create_pefile): Handle the case when the
7111         entry point is not a MethodBuilder.
7112
7113         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7114         field to ReflectionMethod since it is not allways a builder.
7115
7116         * reflection.c (type_get_fully_qualified_name): New helper function to
7117         return the fully qualified name of a type.
7118
7119         * reflection.c (encode_marshal_blob): Always emit the fully qualified
7120         type name for custom marshallers.
7121
7122         * reflection.c (mono_marshal_spec_from_builder): Ditto.
7123
7124         * class.c (mono_class_setup_vtable): If a parent class already 
7125         implements an interface, use the implementing methods from that class.
7126         Fixes #53148.
7127
7128 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7129
7130         * threadpool.c: just return instead of ExitThread to allow for thread
7131         clean up earlier.
7132
7133 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
7134
7135         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
7136         when closing resource modules.
7137
7138         * reflection.c (mono_image_create_pefile): Handle the case when the
7139         entry point is not a MethodBuilder.
7140
7141         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7142         field to ReflectionMethod since it is not allways a builder.
7143
7144 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7145
7146         * marshal.c (mono_marshal_get_managed_wrapper): 
7147         mono_marshal_alloc takes native int so CONV_I
7148         the arg for 64bits.
7149
7150 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
7151
7152         * reflection.c (fixup_cattrs): New function to fixup the methoddef
7153         tokens in the cattr table. Fixes #53108.
7154
7155 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7156
7157         * loader.c: don't trim ".dll" before looking up in the config file.
7158         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
7159
7160 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
7161
7162         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
7163         Return the module which contains the resource as well.
7164         (ves_icall_System_Reflection_Module_Close): New icall.
7165
7166         * appdomain.c: Bump corlib version number.
7167
7168         * image.c (mono_image_addref): New public function.
7169
7170         * assembly.c: Call mono_image_addref.
7171
7172         * reflection.c (mono_module_get_object): Increase reference count of 
7173         the image.
7174
7175         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7176         Fixes #22532.
7177
7178         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
7179         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
7180         proper exceptions on DllImport problems.
7181
7182 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
7183
7184         * class.c, metadata.c: eliminate CSIZE macro.
7185
7186 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
7187
7188         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
7189         * object.h: Added async_callback field in MonoAsyncResult.
7190         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
7191         * verify.c: Added async_callback in MonoAsyncResult layout.
7192
7193 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
7194
7195         * reflection.c (mono_reflection_get_custom_attrs): Add support
7196         for Modules.
7197
7198 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7199
7200         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
7201         marshalling.
7202         (mono_marshal_method_from_wrapper): Add null pointer check.
7203
7204 2004-01-16  Martin Baulig  <martin@ximian.com>
7205
7206         * debug-mono-symfile.h: Set version number to 36 and reflect
7207         latest symbol writer changes.
7208
7209 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7210
7211         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
7212         multi-dimensional arrays.
7213         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
7214         (mono_class_from_mono_type): Use bounded_array_class_get.
7215         
7216         * class.c (mono_bounded_array_class_get): New function which takes
7217         a 'bounded' bool argument to distinguish vectors from one dimensional
7218         arrays.
7219
7220         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
7221         bounded_array_class_get if the array has bounds.
7222
7223         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7224         Search modules loaded using AssemblyBuilder:AddModule as well.
7225
7226 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7227
7228         * appdomain.c: increased corlib version.
7229         * filewatcher.c: removed g_print.
7230         * icall.c:
7231         (get_property_info): only allocate what is actually requested.
7232         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
7233
7234 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7235
7236         * Makefile.am: added filewatcher.[ch]
7237         * filewatcher.[ch]: FileSystemWatcher runtime support.
7238         * icall.c: added new FSW icalls.
7239
7240 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
7241
7242         * string-icalls.c: fix stringbuilder regression as suggested by
7243         Iain McCoy <iain@mccoy.id.au>.
7244
7245 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
7246
7247         * process.c (process_read_stringtable_block): Recognize '007f' as
7248         a language neutral stringtable block.
7249
7250 2004-01-12  Patrik Torstensson
7251
7252         * object.h (MonoStringBuilder) : Changed layout to support our
7253         new stringbuilder class.
7254         * marshal.c: Change marshalling to support the new layout of 
7255         string builder.
7256         * appdomain.c: increased version number because new layout of
7257         string builder.
7258
7259 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
7260
7261         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
7262         assembly name as an string instead of an AssemblyName, since it is
7263         easier to extract info from it.
7264
7265         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
7266         the culture subdirectories too. Fixes #52231.
7267
7268 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7269
7270         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
7271         It takes 2 new parameters with an optional name for the method to look
7272         for and case ignoring info.
7273
7274         * threadpool.c: removed unused variable.
7275
7276 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7277
7278         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
7279         It takes 2 new parameters with an optional name for the property to look
7280         for and case ignoring info.
7281         Fixes bug #52753.
7282
7283 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
7284
7285         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
7286         Fix #52451.
7287
7288 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7289
7290         * appdomain.c:
7291         * assembly.c: escape the uri before passing it to g_filename_from_uri.
7292         Fixes bug #52630.
7293
7294 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
7295
7296         * reflection.c: Add support for more than one unmanaged resource.
7297
7298         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
7299         in field->def_value, as done in all other cases.
7300
7301         * reflection.c (mono_reflection_get_custom_attrs): Add support for
7302         TypeBuilders.
7303
7304         * reflection.c (mono_reflection_create_runtime_class): Remove 
7305         errorneous assignment to klass->element_class, since it is already
7306         done in mono_reflection_setup_internal_class.
7307
7308 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7309
7310         * gc.c: added missing LeaveCriticalSection.
7311         * icall.c: indented a couple of lines.
7312         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
7313         if we call EndInvoke inside a callback. Fixes bug #52601.
7314
7315 2004-01-07  Martin Baulig  <martin@ximian.com>
7316
7317         * mono-debug-debugger.h
7318         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
7319
7320 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
7321
7322         * appdomain.c: Use messages in NotImplementedException.
7323
7324         * exception.c (mono_get_exception_not_implemented): Now this takes
7325         a message argument.
7326
7327         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
7328         exception instead of g_asserting an aborting when something is not
7329         implemented.
7330
7331         Add some inline docs.
7332
7333 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
7334
7335         * reflection.h: Update after changes to object layout.
7336
7337         * reflection.c: Implement saving of unmanaged aka win32 resources.
7338
7339         * appdomain.c: Bump version number.
7340
7341         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
7342         Handle missing domains gracefully.
7343
7344 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
7345
7346         * file-io.c : On Windows, there are much more invalid_path_chars.
7347
7348 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
7349
7350         * class.h, object.c: prepare for GetType () speedup.
7351
7352 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
7353
7354         * profiler.c: workaround for --profile null reference exception on
7355           cygwin. Patch by Patrik Torstensson.
7356
7357 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
7358
7359         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
7360         make work for unaligned access.
7361
7362 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
7363
7364         * class.c: small cleanup (class->fields [i] -> field).
7365         * image.c: check address of metadata is valid.
7366
7367 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
7368
7369         * assembly.h assembly.c (mono_assembly_loaded): New public function to
7370         search the list of loaded assemblies.
7371
7372         * reflection.c (mono_reflection_type_from_name): Use 
7373         mono_assembly_loaded instead of mono_image_loaded.
7374
7375         * reflection.c: Fix warnings.
7376
7377 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
7378
7379         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
7380         is dynamic. This is needed since an assembly can contain both dynamic and
7381         non-dynamic images.
7382
7383         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
7384         assembly->dynamic.
7385
7386         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
7387
7388         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
7389         to store modules loaded using AddModule.
7390
7391         * reflection.c (mono_image_fill_file_table): Generalize this so it works
7392         on Modules.
7393
7394         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
7395
7396         * reflection.c (mono_image_fill_export_table_from_module): New function to
7397         fill out the EXPORTEDTYPES table from a module.
7398
7399         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
7400         into a separate function. Also handle loaded non-dynamic modules.
7401
7402         * reflection.c (mono_image_basic_init): Fix memory allocation.
7403
7404         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7405
7406         * assembly.c (mono_assembly_load_references): Make this public.
7407
7408 2003-12-19  Martin Baulig  <martin@ximian.com>
7409
7410         * class.c (mono_class_initialize_generic): Made this static, take
7411         a `MonoGenericInst *' instead of a `MonoClass *'.
7412         (mono_class_from_generic): Call mono_class_initialize_generic()
7413         unless we're already initialized or being called from
7414         do_mono_metadata_parse_generic_inst().
7415
7416         * class.h (MonoGenericInst): Added `initialized' and
7417         `init_pending' flags.
7418
7419         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
7420         `mono_class_init (gklass)' or mono_class_initialize_generic()
7421         here; set `generic_inst->init_pending' while parsing the
7422         `type_argv'.
7423
7424 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
7425
7426         * locales.c: include string.h for memxxx prototypes
7427
7428 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
7429
7430         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
7431         constructor when accessing literal fields.
7432
7433 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
7434
7435         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7436
7437         * reflection.c (assembly_add_resource_manifest): New function to fill
7438         the MANIFESTRESOURCE table.
7439
7440         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
7441
7442         * reflection.h: Update to changes in class layout.
7443
7444         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
7445         Reenable call to mono_runtime_is_shutting_down ().
7446
7447         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
7448         determine if the runtime is shutting down.
7449
7450 2003-12-16  Jackson Harper <jackson@ximian.com>
7451
7452         * icall.c: comment out call to mono_runtime_is_shutting_down to
7453         fix build.
7454         
7455 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
7456
7457         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
7458         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
7459
7460 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
7461
7462         * reflection.c: move definition of swap_with_size
7463         to before its first call
7464
7465 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
7466
7467         * appdomain.c (mono_runtime_is_shutting_down): New public function.
7468
7469         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
7470         icall.
7471
7472         * object.c: Fix warnings.
7473
7474         * icall.c (ves_icall_Type_Get...): Only consider inherited static
7475         members if FlattenHierarchy is set.
7476
7477         * reflection.c (mono_image_add_decl_security): New function to emit
7478         declarative security.
7479
7480         * reflection.h reflection.c: Add support for declarative security.
7481
7482         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7483         
7484 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
7485
7486         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7487         
7488         * appdomain.c verify.c: Moved corlib version checking into its own
7489         function in appdomain.c since it needs to create vtables etc.
7490
7491 2003-12-13  Patrik Torstensson <p@rxc.se>
7492
7493         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
7494         instead of unwrapped server.
7495
7496 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
7497
7498         * verify.c (check_corlib): Fix field index.
7499
7500 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
7501
7502         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
7503         GetGacPath icall.
7504
7505 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
7506
7507         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
7508         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
7509         cope with sizeof(size_t) != sizeof(guint32).
7510
7511 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7512
7513         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
7514         in case of failure.
7515
7516 2003-12-10  Mark Crichton <crichton@gimp.org>
7517
7518         * icall.c: removed the GetNonZeroBytes.  We now handle this case
7519         in managed code.
7520
7521         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
7522
7523 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
7524
7525         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
7526         marked as deleted.
7527
7528 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
7529
7530         * verify.c (check_corlib): Handle the case when the version field is 
7531         initialized by a static constructor.
7532
7533 2003-12-08  Patrik Torstensson  <p@rxc.se>
7534
7535     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
7536
7537 2003-12-08  Martin Baulig  <martin@ximian.com>
7538
7539         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
7540         a MonoReflectionGenericParameter, also take the parameter index
7541         and name as arguments.
7542         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
7543         (ves_icall_MonoGenericParam_initialize): New interncall.
7544         (ves_icall_Type_make_byref_type): New interncall.
7545
7546         * reflection.h (MonoReflectionGenericParam): Derive from
7547         MonoReflectionType, not just from MonoObject.  Added `refobj' and
7548         `index' fields.
7549
7550         * reflection.c (mono_reflection_define_generic_parameter): Create
7551         and return a new MonoReflectionGenericParam; don't initialize the
7552         constraints here.
7553         (mono_reflection_initialize_generic_parameter): New public method;
7554         initializes the constraints and creates the `param->pklass'.
7555
7556 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
7557
7558         * reflection.h reflection.c: Use the new fields 'num_types', 
7559         'num_fields' and 'num_methods' to track the number of types etc.
7560
7561         * verify.c (check_corlib): Check corlib version number.
7562
7563 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
7564
7565         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
7566         function works on all methods.
7567
7568 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
7569
7570         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
7571         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
7572         the custom_type_info flag of the transparent proxy.
7573         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
7574         objects that supports IRemotingTypeInfo.
7575         * object.h: Added custom_type_info field in transparent proxy.
7576
7577 2003-12-06  Martin Baulig  <martin@ximian.com>
7578
7579         * class.c (mono_class_create_from_generic): Removed.
7580         (mono_class_from_generic): Check `ginst->klass' before doing
7581         anything else.  This is important to fully support "recursive"
7582         generic types.
7583
7584         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
7585         empty `generic_inst->klass' before doing anything else.
7586
7587 2003-12-06  Dick Porter  <dick@ximian.com>
7588
7589         * verify.c: 
7590         * object.h:
7591         * icall.c:
7592         * locales.c: Use C structs to access class fields.  Don't do a
7593         conversion between MonoString and UChar because both are
7594         platform-endian UTF-16.  Compare now takes startindex and count
7595         parameters.  Add a char overload for IndexOf.  Speed up the
7596         invariant string IndexOf.
7597
7598 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
7599
7600         * Makefile.am (monosn_LDADD): Fix parallel build.
7601
7602 2003-12-04  Martin Baulig  <martin@ximian.com>
7603
7604         * icall.c
7605         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7606         (ves_icall_Type_make_array_type): New interncall.       
7607
7608 2003-12-04  Martin Baulig  <martin@ximian.com>
7609
7610         * locales.c: also change it in the !HAVE_ICU case.
7611
7612 2003-12-04  Dick Porter  <dick@ximian.com>
7613
7614         * icall.c:
7615         * locales.c: construct_compareinfo is now in CompareInfo, not
7616         CultureInfo.
7617
7618 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
7619
7620         * image.c (mono_image_load_file_for_image): Cache loaded images in the
7621         image->files array.
7622
7623         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
7624         table as well.
7625
7626         * assembly.c (mono_assembly_load_references): Only load references
7627         once.
7628
7629         * class.c (mono_class_from_name): Avoid linear search of the 
7630         EXPORTEDTYPE table.
7631
7632         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
7633
7634 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
7635
7636         * image.h (MonoImage): Add 'field_cache' field.
7637
7638         * loader.c (mono_field_from_token): Cache field lookups.
7639         
7640         * reflection.c (mono_module_get_object): Fix name property.
7641
7642         * icall.c (ves_icall_get_enum_info): Update after changes to 
7643         mono_metadata_get_constant_index ().
7644
7645         * icall.c: Get rid of get_type_info icall, use a separate icall for
7646         each type property to avoid needless memory allocations. Fixes #51514.
7647
7648         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
7649         to avoid needless binary searches.
7650
7651         * class.c (class_compute_field_layout): Move the initialization of
7652         field->def_value to mono_class_vtable ().
7653
7654         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
7655         non-corlib types.
7656
7657         * object.c (mono_object_allocate): Make it inline.
7658
7659         * object.c (mono_object_allocate_spec): Make it inline.
7660         
7661 2003-12-02  Dick Porter  <dick@ximian.com>
7662
7663         * locales.c (create_NumberFormat): NumberFormatInfo construction.
7664         Patch by Mohammad DAMT (mdamt@cdl2000.com).
7665
7666 2003-12-01  Dick Porter  <dick@ximian.com>
7667
7668         * threads.c: Fix signature and call in CreateMutex and
7669         CreateEvent.
7670
7671 2003-12-01  Dick Porter  <dick@ximian.com>
7672
7673         * icall.c: 
7674         * locales.c: Implement string compares and searching
7675
7676         * object.h: Add extra Thread field
7677
7678 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
7679
7680         * reflection.c (fixup_method): Add support for MonoCMethod.
7681
7682 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
7683
7684         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
7685
7686         * reflection.c (assembly_name_to_aname): Allow extra characters in
7687         assembly names. Fixes #51468.
7688
7689 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
7690
7691         * exception.c (mono_exception_from_name_domain): New helper function.
7692
7693         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
7694         exception object in the correct domain.
7695
7696         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
7697         formatting + make a copy a the input data.
7698
7699         * loader.c (mono_get_method_from_token): Methods which contain
7700         native code do not have entries in the ImplMap.
7701
7702         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
7703         Thanks to Gonzalo for spotting this.
7704         
7705         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
7706         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
7707
7708         * assembly.h (mono_assembly_load_from): Split the second part of 
7709         assembly loading into a new public function.
7710
7711         * exception.h (mono_get_exception_bad_image_format): New function.
7712
7713 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
7714
7715         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7716         Enumerate all modules inside a dynamic assembly. Fixes #51293.
7717         
7718         * icall.c: Add new icall for creating dynamic methods.
7719
7720         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
7721
7722         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
7723
7724         * reflection.c (mono_reflection_create_dynamic_method): New icall to
7725         create a dynamic method.
7726
7727         * reflection.c (resolve_object): New helper function.
7728
7729         * reflection.c: Generalize ReflectionMethodBuilder and the functions
7730         which manipulate it so they can also work on dynamic methods.
7731
7732         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
7733         creating the MonoReflectionMethodAux structure if it is not needed.
7734         
7735         * reflection.h verify.c: Update after changes to object layout.
7736
7737         * reflection.c (method_builder_encode_signature): Fix compilation on
7738         gcc 2.95.x.
7739
7740 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
7741
7742         * appdomain.h: Added support for context static fields. Added static_data
7743           field to MonoAppContext and renamed thread_static_fields to a more
7744           generic special_static_fields in MonoAppDomain, since it can now contain
7745           context static fields.
7746         * domain.c: Updated hashtable name.
7747         * object.c: Replaced field_is_thread_static() for a more generic
7748           field_is_special_static() which also checks for context static attribute.
7749           In mono_class_vtable(), added support for static context fields.
7750         * threads.c: Changed methods that manage thread static fields to more
7751           generic methods so they can be reused both for thread and context static
7752           data.
7753         * threads.h: Declared some new methods.
7754
7755 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
7756
7757         * reflection.h: Update after changes to the managed types.
7758
7759         * reflection.c (encode_custom_modifiers): New helper function.
7760
7761         * reflection.c (method_encode_signature): Emit custom modifiers.
7762
7763         * reflection.c (field_encode_signature): Emit custom modifiers.
7764
7765 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
7766
7767         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
7768
7769         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
7770         implementation.
7771
7772         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
7773         icall.
7774
7775         * object.c (mono_field_get_value_object): New function.
7776
7777         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
7778         specific.
7779
7780 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
7781
7782         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
7783         return a preallocated out-of-memory exception instance.
7784
7785         * object.c (out_of_memory): Use the new function.
7786
7787         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
7788         flag is before the custom modifiers. Fixes #49802.
7789
7790 2003-11-16  Martin Baulig  <martin@ximian.com>
7791
7792         * class.c (mono_class_is_open_constructed_type): Implemented the
7793         MONO_TYPE_GENERICINST case.
7794
7795 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
7796
7797         * assembly.c (mono_assembly_fill_assembly_name): New function to
7798         fill out the MonoAssemblyName structure.
7799         (mono_assembly_open): Use the new function.
7800
7801         * icall.c (fill_reflection_assembly_name): New helper function.
7802
7803         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
7804         new function.
7805
7806         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
7807
7808 2003-11-15  Martin Baulig  <martin@ximian.com>
7809
7810         * class.c (mono_class_is_open_constructed_type): New public
7811         function; checks whether a type is an open constructed type,
7812         ie. whether it still contains type parameters.
7813         (mono_class_inflate_generic_type): If we're a type parameter and
7814         the inflated type is also a MONO_TYPE_(M)VAR, return the original
7815         type.
7816
7817         * class.h (MonoGenericInst): Added `guint32 is_open'.
7818
7819         * loader.c (method_from_methodspec): Check whether we're an open
7820         or closed constructed type and set `ginst->is_open'.
7821
7822         * reflection.c (mono_reflection_bind_generic_parameters): Check
7823         whether we're an open or closed constructed type and set
7824         `ginst->is_open'.
7825         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
7826         from open constructed types.
7827
7828 2003-11-15  Martin Baulig  <martin@ximian.com>
7829
7830         * reflection.c (mono_reflection_bind_generic_parameters): If we're
7831         a generic instance (instead of a generic type declaration) with
7832         unbound generic parameters, bind them to our actual types.
7833
7834 2003-11-14  Martin Baulig  <martin@ximian.com>
7835
7836         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
7837
7838         * reflection.c (mono_reflection_bind_generic_parameters): If we're
7839         an interface type, populate `res->interfaces' with instantiated
7840         versions of all the interfaces we inherit.
7841
7842 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
7843
7844         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
7845         when MONO_PATH is set but doesn't contain the install dir.
7846
7847 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7848
7849         * icall.c:
7850         (ves_icall_Type_GetInterfaces): don't return an interface twice when
7851         it's also implemented in base classes. Fixes bug #50927.
7852
7853 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
7854
7855         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
7856         if this method is called from a finalizer. Fixes #50913.
7857
7858 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
7859
7860         * threads.c: Implement VolatileRead/VolatileWrite
7861
7862         * icall.c: Add new icalls for VolatileRead/VolatileWrite
7863
7864 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7865
7866         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
7867         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
7868         2.95.3.
7869
7870         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
7871         from Peter Ross (pro@missioncriticalit.com).
7872         
7873 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
7874
7875         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
7876
7877 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7878
7879         * assembly.c (mono_assembly_load_references): Disable check because it
7880         triggers on older corlibs which lots of people have.
7881
7882 2003-11-12  Jackson Harper  <jackson@ximian.com>
7883
7884         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
7885         load corlib.dll if mscorlib.dll is not found.
7886         * assembly.h: Remove corlib name define.
7887         * class.c:
7888         * domain.c:
7889         * image.c: Change corlib name to mscorlib.
7890         
7891 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7892
7893         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
7894
7895 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
7896
7897         * appdomain.h: Added loader_optimization here to sync with the C#
7898         code, and add disallow_binding_redirects field.
7899
7900 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
7901
7902         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
7903
7904         * reflection.c (mono_image_build_metadata): Fix crash on modules
7905         with no types.
7906
7907         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
7908
7909         * icall.c (ves_icall_get_method_info): Return callingConvention as
7910         well.
7911
7912         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
7913         namespaces from the EXPORTEDTYPE table as well.
7914
7915         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
7916         from all modules inside the assembly.
7917         
7918 2003-11-11  Martin Baulig  <martin@ximian.com>
7919
7920         * reflection.c (mono_reflection_bind_generic_parameters): Make
7921         this work for interfaces.
7922
7923 2003-11-11  Martin Baulig  <martin@ximian.com>
7924
7925         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
7926
7927 2003-11-11  Martin Baulig  <martin@ximian.com>
7928
7929         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
7930         "MonoInflatedMethod" and "MonoInflatedCtor".
7931
7932 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
7933
7934         * reflection.c (resolution_scope_from_image): Use the assembly table
7935         from the manifest module, since other modules don't have it.
7936
7937         * debug-helpers.c (mono_type_full_name): New helper function.
7938
7939         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
7940
7941         * image.c (mono_image_load_file_for_image): New public function which
7942         is a replacement for the load_file_for_image in class.c.
7943
7944         * assembly.c (mono_assembly_load_module): A wrapper for the function
7945         above which does assembly association and reference loading too.
7946
7947         * class.c (mono_class_from_name): Call mono_assembly_load_module.
7948
7949 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7950
7951         * appdomain.c: not all of the attributes for the full assembly name
7952         are required and the order doesn't matter. Fixes bug #50787.
7953
7954 2003-11-10  Dick Porter  <dick@ximian.com>
7955
7956         * locales.c: Use platform-endian UTF16
7957
7958 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
7959
7960         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
7961         
7962 2003-11-10  Martin Baulig  <martin@ximian.com>
7963
7964         * metadata.c
7965         (mono_metadata_load_generic_params): Make this actually work.
7966
7967         * reflection.c (mono_reflection_bind_generic_parameters): If our
7968         parent is a generic instance, pass all the `types' to it, no
7969         matter whether it has the same number of type parameters or not.
7970
7971 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
7972
7973         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
7974
7975         * assembly.c (mono_assembly_load_references): Move the image<->assembly
7976         assignment code to this function so it gets called recursively for all
7977         modules.
7978
7979         * image.c (load_modules): Remove the assembly assignment since it is
7980         now done by mono_assembly_load_references.
7981         
7982         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7983         Add 'module' argument.
7984         (mono_module_get_types): New helper function.
7985         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
7986
7987 2003-11-08  Martin Baulig  <martin@ximian.com>
7988
7989         * class.c (mono_class_inflate_generic_method): Interface method
7990         don't have a header.
7991
7992         * reflection.c (mono_image_get_methodspec_token): Take an
7993         additional `MonoGenericInst *' argument instead of reading it from
7994         the header; this is necessary to support interfaces.
7995         (mono_image_create_token): Pass the `MonoGenericInst *' from the
7996         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
7997         (inflated_method_get_object): Take an additional `MonoGenericInst *'
7998         argument.
7999
8000         * reflection.h (MonoReflectionInflatedMethod): Added
8001         `MonoGenericInst *ginst'.
8002
8003 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
8004
8005         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
8006
8007 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
8008
8009         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
8010
8011 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
8012
8013         * reflection.c 
8014         (reflection_methodbuilder_from_method_builder):
8015         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
8016         initialize a ReflectionMethodBuilder structure.
8017         (mono_image_get_methodbuilder_token):
8018         (mono_image_get_ctorbuilder_token): New functions to emit memberref
8019         tokens which point to types in another module inside the same assembly.
8020
8021         * reflection.c: Use the new helper functions.
8022         
8023         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
8024
8025         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
8026         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
8027
8028         * reflection.c (resolution_scope_from_image): Emit a moduleref if
8029         neccesary.
8030
8031         * reflection.c (mono_image_build_metadata): Emit metadata only for the
8032         current module. Emit the manifest only for the main module.
8033
8034         * reflection.c (mono_image_create_token): Add assertion when a 
8035         memberref needs to be created.
8036
8037         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
8038
8039         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
8040         larger buffer for the custom attribute blob. Fixes #50637.
8041         
8042 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8043
8044         * threadpool.c: notify listener on async processing handles after
8045         invoking the async callback. Thanks to Zoltan.
8046
8047 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8048
8049         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
8050         avoid code duplication.
8051
8052         * reflection.h (MonoDynamicImage): New type which is currently unused,
8053         but will be used through the ref.emit code in place of 
8054         MonoDynamicAssembly.
8055
8056         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8057         object layout.
8058
8059         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
8060         a MonoDynamicImage instead of just a MonoImage.
8061         
8062         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
8063         icalls to ModuleBuilder but keep their semantics, so they will work
8064         with moduleb->assemblyb. This will change later.
8065         
8066 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8067
8068         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8069         object layout.
8070
8071         * reflection.c (mono_image_build_metadata): Avoid creation of a default
8072         main module, since it is now done by the managed code.
8073
8074 2003-11-03  Martin Baulig  <martin@ximian.com>
8075
8076         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
8077         `ginst->klass' here.
8078         (method_encode_methodspec): Don't use the `ginst->generic_method's
8079         klass if it's a generic instance, use `ginst->klass' in this case.
8080
8081 2003-11-03  Martin Baulig  <martin@ximian.com>
8082
8083         * reflection.c (mono_image_get_generic_method_param_info):
8084         Removed, use mono_image_get_generic_param_info() instead.
8085         (mono_image_get_type_info): Write the GenericParam table before
8086         the Method table.  This is neccessary because in the GenericParam
8087         table, type parameters of the class (ie. '!0' etc.) must come
8088         before the ones from its generic methods (ie. '!!0' etc).
8089
8090 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8091
8092         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
8093
8094 2003-11-02  Martin Baulig  <martin@ximian.com>
8095
8096         * reflection.c (create_generic_typespec): Take a
8097         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
8098         the generic parameters from it.
8099
8100 2003-11-02  Martin Baulig  <martin@ximian.com>
8101
8102         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
8103         instead of a `MonoClassField *' since we just need the type.
8104         (create_generic_typespec): New static function.  Creates a
8105         TypeSpec token for a generic type declaration.
8106         (mono_image_get_generic_field_token): New static function.
8107         (mono_image_create_token): If we're a FieldBuilder in a generic
8108         type declaration, call mono_image_get_generic_field_token() to get
8109         the token.
8110
8111 2003-11-02  Martin Baulig  <martin@ximian.com>
8112
8113         * reflection.h
8114         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
8115         `MonoReflectionGenericInst *declaring_type' and
8116         `MonoReflectionGenericInst *reflected_type' fields.
8117
8118         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
8119         `MonoReflectionGenericInst *declaring_type' and a
8120         `MonoReflectionGenericInst *reflected_type' argument instead of a
8121         single `MonoReflectionGenericInst *type' one.  Set
8122         `res->declaring_type' and `res->reflected_type' from them.
8123         (mono_reflection_inflate_field): Likewise.      
8124
8125 2003-11-02  Martin Baulig  <martin@ximian.com>
8126
8127         * class.c (mono_class_setup_vtable): Don't store generic methods
8128         in the vtable.  
8129
8130 2003-11-02  Martin Baulig  <martin@ximian.com>
8131
8132         * reflection.h (MonoReflectionGenericInst): Added
8133         `MonoReflectionType *declaring_type'.
8134
8135         * reflection.c (mono_reflection_bind_generic_parameters): Use
8136         `if (tb->parent)' instead of `klass->parent'.
8137
8138 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
8139
8140         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
8141         with an empty ASSEMBLY table.
8142
8143         * reflection.c (mono_image_build_metadata): Avoid using the same loop
8144         variable in the inner and outer loops.
8145
8146 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
8147
8148         * metadata.h (mono_metadata_make_token): Put parentheses around macro
8149         argument.
8150
8151         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
8152         
8153         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
8154         icalls. Instead, do everything in managed code. This is needed since
8155         it is hard to restore the original domain etc. in unmanaged code in the
8156         presence of undeniable exceptions.
8157
8158         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
8159         New icalls to push and pop appdomain refs.
8160
8161 2003-10-31  Martin Baulig  <martin@ximian.com>
8162
8163         * class.c (inflate_generic_type): Renamed to
8164         mono_class_inflate_generic_type() and made it public.
8165
8166         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
8167         New interncall.
8168
8169         * loader.c (mono_field_from_memberref): Also set the retklass for
8170         typespecs.
8171
8172         * fielder.c (mono_image_get_inflated_field_token): New static
8173         method; creates a metadata token for an inflated field.
8174         (mono_image_create_token, fixup_method): Added support for
8175         "MonoInflatedField".
8176         (fieldbuilder_to_mono_class_field): New static function.
8177         (mono_reflection_inflate_field): New public function.
8178
8179         * reflection.h
8180         (MonoReflectionGenericInst): Added `MonoArray *fields'.
8181         (MonoReflectionInflatedField): New typedef.     
8182
8183 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
8184
8185         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
8186         for Solaris and other platforms without s6_addr16
8187
8188 2003-10-30  Martin Baulig  <martin@ximian.com>
8189
8190         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
8191         argument instead of two.
8192         (mono_class_inflate_generic_signature): Likewise.
8193         (inflate_generic_header): Likewise.
8194         (mono_class_inflate_generic_method): Likewise.  In addition, if
8195         `ginst->klass' is set, it becomes the new `method->klass'.
8196
8197         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
8198         field.
8199
8200         * reflection.c (encode_generic_method_sig): Write a 0xa as the
8201         first byte. [FIXME]
8202         (method_encode_methodspec): If we have generic parameters, create
8203         a MethodSpec instead of a MethodRef.
8204         (fixup_method): Added support for "MonoInflatedMethod" and
8205         "MonoInflatedCtor".
8206         (mono_image_create_token): Added support for "MonoInflatedMethod"
8207         and "MonoInflatedCtor".
8208         (inflated_method_get_object): New static function; returns a
8209         managed "System.Reflection.MonoInflatedMethod" object.
8210         (mono_reflection_bind_generic_method_parameters): Return a
8211         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
8212         (mono_reflection_inflate_method_or_ctor): Likewise.
8213         (mono_image_get_generic_method_param_info): Initialize unused
8214         fields to zero.
8215         (mono_image_get_generic_param_info): Likewise.
8216
8217         * reflection.h (MonoReflectionInflatedMethod): New public
8218         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
8219         "S.R.MonoInflatedCtor" classes.
8220
8221         * loader.c (method_from_memberref): If we're a TypeSpec and it
8222         resolves to a generic instance, inflate the method.
8223
8224 2003-10-28  Dick Porter  <dick@ximian.com>
8225
8226         * object.c (mono_runtime_run_main): Convert command-line arguments
8227         into utf8, falling back to the user's locale encoding to do so.
8228
8229 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
8230
8231         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
8232         at this time.
8233
8234         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
8235
8236         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
8237         up icalls at method definition time. Partially fixes #33569.
8238
8239 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
8240
8241         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
8242         marshalling of arrays. Fixes #50116.
8243
8244         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
8245
8246         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
8247         points to a vtable in the dying appdomain.
8248
8249         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
8250         listeners into unmanaged code inside the lock.
8251
8252         * object.c (mono_class_vtable): Turn off typed allocation in non-root
8253         domains and add some comments.
8254
8255 2003-10-25  Martin Baulig  <martin@ximian.com>
8256
8257         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
8258
8259         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
8260
8261         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
8262         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
8263         currently parsing.  Create the generic class and store it in
8264         `generic_inst->klass' before parsing the type arguments.  This is
8265         required to support "recursive" definitions; see mcs/tests/gen-23.cs
8266         for an example.
8267         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
8268         to support recursive typespec entries.
8269
8270         * class.c (mono_class_setup_parent): If our parent is a generic
8271         instance, we may get called before it has its name set.
8272         (mono_class_from_generic): Splitted into
8273         mono_class_create_from_generic() and mono_class_initialize_generic().
8274
8275 2003-10-25  Martin Baulig  <martin@ximian.com>
8276
8277         * icall.c (ves_icall_Type_BindGenericParameters): Return a
8278         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
8279         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
8280         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
8281
8282         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
8283         (create_typespec): Likewise.
8284         (mono_reflection_bind_generic_parameters): Return a
8285         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
8286         (mono_reflection_inflate_method_or_ctor): New public function.
8287
8288         * reflection.h (MonoReflectionGenericInst): New typedef.        
8289
8290 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
8291
8292         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
8293         inside the domain lock. Fixes #49993.
8294         
8295         * object.c (mono_class_vtable): When typed allocation is used, 
8296         allocate vtables in the GC heap instead of in the mempool, since the
8297         vtables contain GC descriptors which are used by the collector even
8298         after the domain owning the mempool is unloaded.
8299
8300         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
8301
8302         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
8303         reflect what it does. Also invalidate mempools instead of freeing
8304         them if a define is set.
8305
8306         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
8307         of the appdomain.
8308         
8309         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
8310         hold the finalizable objects in this domain.
8311
8312         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
8313         appdomain.
8314
8315         * appdomain.c (mono_domain_set): New function to set the current
8316         appdomain, but only if it is not being unloaded.
8317
8318         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
8319         appdomain which is being unloaded.
8320         
8321         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
8322         unloading of the root appdomain.
8323
8324         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
8325         icall to execute a method in another appdomain. Intended as a 
8326         replacement for InternalSetDomain, which can confuse the code 
8327         generation in the JIT.
8328
8329         * appdomain.c (mono_domain_is_unloading): New function to determine
8330         whenever an appdomain is unloading.
8331
8332         * appdomain.c (mono_domain_unload): New function to correctly unload
8333         an appdomain.
8334
8335         * assembly.c (mono_assembly_load_references): Check that an assembly
8336         does not references itself.
8337
8338         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
8339         domain manually, it asks the finalizer thread to do it, then waits for
8340         the result. Also added a timeout.
8341
8342         * icall.c: Register the new icalls.
8343
8344         * threads.h threads.c: Export the mono_gc_stop_world and 
8345         mono_gc_start_world functions.
8346         
8347         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
8348         function to fill out the mempool with 0x2a.
8349
8350 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
8351
8352         * reflection.h (MonoReflectionMethodAux): New structure to store
8353         information which is rarely used, thus is not in the MonoMethod
8354         structure.
8355
8356         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
8357         store the aux info.
8358
8359         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
8360         and marshalling info into the aux structure.
8361
8362         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
8363         from the aux structure.
8364
8365         * loader.c (mono_method_get_param_names): Retrieve the param names from
8366         the aux structure.
8367         
8368 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
8369
8370         * exception.h exception.c: Add AppDomainUnloadedException && fix 
8371         warning.
8372
8373 2003-10-21  Dick Porter  <dick@ximian.com>
8374
8375         * socket-io.c
8376         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
8377         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
8378
8379 2003-10-21  Martin Baulig  <martin@ximian.com>
8380
8381         * reflection.c (mono_reflection_bind_generic_parameters):
8382         `klass->parent' is NULL for interfaces.
8383
8384 2003-10-21  Martin Baulig  <martin@ximian.com>
8385
8386         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8387
8388 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
8389
8390         * exception.c (mono_exception_from_name_msg): New helper function for
8391         creating exceptions and initializing their message field.
8392
8393         * exception.c: Simplify functions using the new helper.
8394
8395         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
8396         New function.
8397
8398         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
8399         mono_raise_exception, since otherwise gcc doesn't generate the function
8400         epilog for raise_exception, confusing the stack unwinding in the JIT.
8401         Fixes #45043.
8402
8403         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
8404         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
8405         Fixes #49499.
8406
8407 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8408
8409         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
8410         utf8.
8411
8412 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
8413
8414         * icall.c: Removed GetUninitializedObject method because
8415           AllocateUninitializedClassInstance does the same.
8416
8417 2003-10-18  Martin Baulig  <martin@ximian.com>
8418
8419         * class.c (inflate_generic_signature): Renamed to
8420         mono_class_inflate_generic_signature() and made it public.
8421         (my_mono_class_from_generic_parameter): New static function; if we
8422         don't already have the generic parameter's MonoClass, create a
8423         very simple one which is just used internally in the runtime and
8424         not passed back to managed code.
8425
8426         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
8427
8428         * metadata.h (MonoMethodSignature): Moved the
8429         `MonoGenericParam *gen_params' to the MonoMethodHeader.
8430         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
8431
8432         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
8433         ves_icall_MonoMethod_GetGenericArguments(); this is now an
8434         interncall on the MonoMethod class, not on MethodInfo.
8435         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
8436         calling mono_reflection_bind_generic_method_parameters() directly.
8437
8438         * loader.c (mono_method_get_signature): If this is a MethodSpec;
8439         return the already computed `method->signature'.
8440         (method_from_methodspec): New static function to load a method
8441         from a MethodSpec entry.
8442         (mono_get_method_from_token): Call the new method_from_methodspec()
8443         for MethodSpec tokens.  
8444         (mono_get_method_from_token): If we're a generic method, load the
8445         type parameters.
8446
8447         * reflection.c (mono_image_get_memberref_token): Allow
8448         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
8449         table.
8450         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
8451         (mono_image_create_token): First check whether it's a generic
8452         method (so we'd need to create a MethodSpec), then do the other
8453         two alternatives.
8454         (mono_reflection_bind_generic_method_parameters): Return a
8455         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
8456         called directly from the interncall.
8457
8458 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
8459
8460         * reflection.c (load_public_key): Move loading of the public key
8461         into managed code.
8462
8463         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
8464
8465         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
8466         fields.
8467
8468         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
8469         culture, hash_alg and public_key. Fixes #49555.
8470
8471 2003-10-17  Martin Baulig  <martin@ximian.com>
8472
8473         * class.h (MonoGenericInst): Moved this declaration here and added
8474         `MonoMethod *generic_method'.
8475
8476         * icall.c
8477         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
8478         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
8479
8480         * metadata.c (mono_metadata_type_equal): Two types of
8481         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
8482         index; ie. don't compare the address of the `MonoGenericParam'
8483         structure.
8484         (mono_metadata_load_generic_params): Removed the `MonoMethod
8485         *method' argument.
8486
8487         * metadata.h (MonoGenericInst): Moved declaration to class.h.
8488         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
8489
8490         * reflection.c (method_encode_signature): Encode the number of
8491         generic parameters.
8492         (encode_generic_method_sig): New static function.
8493         (method_encode_methodspec): New static function; creates an entry
8494         in the MethodSpec table for a generic method.
8495         (mono_image_get_methodspec_token): New static function.
8496         (mono_image_create_token): Call mono_image_get_methodspec_token()
8497         for generic methods.
8498         (mono_reflection_bind_generic_method_parameters): New public
8499         function.  Instantiates a generic method.
8500
8501 2003-10-16  Martin Baulig  <martin@ximian.com>
8502
8503         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
8504         *gen_params' here from MonoMethodHeader.
8505
8506         * metadata.c (mono_metadata_parse_method_signature): If we have
8507         generic parameters, initialize `method->gen_params' and then set
8508         the correct `type->data.generic_param' in all the parameters.
8509
8510 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
8511
8512         * threads.c (mono_threads_get_default_stacksize): New function to 
8513         return the default stacksize.
8514
8515         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
8516         termination of the finalizer thread, since the previous method had
8517         race conditions. Fixes #49628.
8518
8519         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
8520         as for the other managed threads.
8521
8522 2003-10-16  Martin Baulig  <martin@ximian.com>
8523
8524         * class.c (inflate_generic_signature): Copy `generic_param_count'
8525         and `gen_params'.
8526
8527         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
8528         New interncall.
8529
8530         * metadata.c (mono_metadata_parse_method_signature): Actually set
8531         the `method->generic_param_count' here.
8532         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
8533
8534 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
8535
8536         * object.h: Add a new field to TypedRef to simplify the implementation
8537         of the REFANY opcodes in the JIT.
8538
8539         * icall.c: Make use of the new field.
8540
8541         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
8542         dynamically.
8543
8544 2003-10-15  Martin Baulig  <martin@ximian.com>
8545
8546         * class.c (mono_class_from_gen_param): Renamed to
8547         mono_class_from_generic_parameter() and moved most of the
8548         functionality from mono_reflection_define_generic_parameter()
8549         here; ie. we create a "real" class here.
8550         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
8551         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
8552         previously been called.
8553
8554         * class.h (MonoGenericParam): Moved the declaration of this struct
8555         here from metadata.h and added `MonoMethod *method'.
8556
8557         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
8558         interncall.
8559
8560         * loader.c (mono_get_method_from_token): If we have any generic
8561         parameters, call mono_metadata_load_generic_params() to read them
8562         from the MONO_TABLE_GENERICPAR.
8563
8564         * metadata.c (mono_metadata_load_generic_params): Added
8565         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
8566
8567         * metadata.h (MonoMethodSignature): Replaced
8568         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
8569         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
8570
8571         * reflection.c (mono_reflection_define_generic_parameter): Moved
8572         most of the functionality into the new
8573         mono_class_from_generic_parameter(); set the `method' field if
8574         we're a method parameter.       
8575
8576 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
8577
8578         * marshal.c (emit_struct_conv): if native size is 0
8579         emit no code.
8580
8581 2003-10-14  Martin Baulig  <martin@ximian.com>
8582
8583         * icall.c: The generics API has changed in the spec since it was
8584         added to System.Type; these modifications make it match the spec
8585         again.
8586         (ves_icall_Type_GetGenericParameters): Renamed to
8587         `ves_icall_Type_GetGenericArguments'.
8588         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
8589         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
8590         `ves_icall_MonoType_get_HasGenericArguments'.
8591         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
8592         `ves_icall_MonoType_get_IsGenericParameter'.
8593         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
8594         this is no interncall anymore.
8595         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
8596         `ves_icall_TypeBuilder_get_IsGenericParameter'.
8597
8598 2003-10-14  Martin Baulig  <martin@ximian.com>
8599
8600         * reflection.c (mono_reflection_bind_generic_parameters): Also
8601         inflate generic methods if we're reading the class from IL.
8602
8603 2003-10-13  Martin Baulig  <martin@ximian.com>
8604
8605         * reflection.c (mono_reflection_define_generic_parameter): This
8606         method isn't called directly from the icall anymore; take a
8607         `MonoReflectionAssemblyBuilder *' so we can use this for type and
8608         method generic parameters.
8609         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
8610         (method_builder_encode_signature): Encode generic parameters.
8611         (mono_image_get_method_info): Write generic params to the
8612         MONO_TABLE_GENERICPARAM table.
8613
8614         * reflection.h (MonoReflectionMethodBuilder): Added
8615         `MonoArray *generic_params'.
8616
8617         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
8618
8619         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
8620         wrapper for mono_reflection_define_generic_parameter().
8621         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
8622
8623 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
8624
8625         * marshal.h: Add missing function to fix build.
8626
8627         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
8628         the SetLastError pinvoke attribute.
8629
8630         * marshal.c (mono_marshal_set_last_error): New helper function called
8631         by the generated code.
8632         
8633         * marshal.c (mono_mb_emit_branch): New helper function.
8634
8635         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
8636
8637         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8638         classes as parameters and return values of delegates. Fixes #29256. 
8639
8640 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
8641
8642         * locales.c: use gint32 in non HAVE_ICU case
8643
8644 2003-10-11  Martin Baulig  <martin@ximian.com>
8645
8646         * mono-debug.c (mono_debug_add_method): Added a workaround for
8647         bug #48591.
8648
8649 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
8650
8651         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
8652         delegates passed to native code must use the STDCALL calling 
8653         convention. Fixes #35987.
8654
8655 2003-10-10  Martin Baulig  <martin@ximian.com>
8656
8657         * class.c (inflate_generic_type): If we're inflating for a generic
8658         type instance (and not for a generic method), return
8659         MONO_TYPE_MVAR unchanged.
8660
8661 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8662
8663         * string-icalls.c: Join ignores null strings in the source array.
8664         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
8665         * threads.c: GetAvailableTheads is slightly more accurate.
8666
8667 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
8668
8669         * threads.h threads.c : add mono_threads_set_default_stacksize
8670         and pass default to CreateThread calls.
8671
8672 2003-10-09  Dick Porter  <dick@ximian.com>
8673
8674         * icall.c:
8675         * locales.h:
8676         * locales.c: Internal calls for constructing CultureInfo and
8677         related objects from libicu (if its available.)
8678
8679 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
8680
8681         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
8682
8683 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8684
8685         * threadpool.c: added an argument to async_invoke_thread that is the
8686         item to process, pass the MonoAsyncResult to the thread start function
8687         when creating a new thread. This way we don't need to acquire any lock
8688         when we're creating a new thread. Readded a semaphore for faster
8689         response times (instead of that Sleep i added).
8690
8691 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
8692
8693         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
8694         get daylight change dates better on Windows, fix handling
8695         of platforms without tm_gmtoff.
8696
8697 2003-10-06  Martin Baulig  <martin@ximian.com>
8698
8699         * class.c (inflate_generic_method): Renamed to
8700         mono_class_inflate_generic_method() and made public.
8701         (mono_class_init): Don't inflate the generic methods here.
8702         (mono_class_from_generic): Added `gboolean inflate_methods'
8703         argument.  Inflate the methods here.
8704
8705         * loader.c (mono_method_get_param_names): Ignore instances of
8706         generic types for the moment.
8707
8708         * reflection.c (fixup_method): Added support for inflated methods.
8709         (mono_image_create_token): Use mono_image_get_methodref_token()
8710         for inflated methods.
8711         (mono_custom_attrs_from_param): Ignore instances of generic types
8712         for the moment.
8713         (mono_reflection_bind_generic_parameters): New public function.
8714         Moved all the functionality from
8715         ves_icall_Type_BindGenericParameters() here and added support for
8716         dynamic types.
8717         (mono_reflection_define_generic_parameter): Initialize
8718         `klass->methods' here.
8719
8720         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
8721         functionality into mono_reflection_define_generic_parameter().
8722         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
8723         TypeBuilder, return that TypeBuilder.
8724
8725 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8726
8727         * appdomain.c: removed mono_delegate_semaphore.
8728
8729         * threadpool.c:
8730         (mono_thread_pool_add): moved hash table creation inside and the thread 
8731         creation outside of the critical region.
8732         (mono_thread_pool_finish): removed obsolete code.
8733         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
8734         continue or exit the thread depending on the queue.
8735
8736 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
8737
8738         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
8739         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
8740         handle more bool marshalling options
8741
8742 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
8743
8744         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
8745         arrays of structs. Also add a more descriptive error message when
8746         a structure member is marshalled as LPArray.
8747
8748 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
8749
8750         * marshal.c (mono_marshal_get_native_wrapper): Add support for
8751         marshalling arrays of complex types. Fixes #29098. Also remove an
8752         usused and incomplete function.
8753
8754 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
8755
8756         * gc.c: report heap_size - free_bytes as total memory allocated
8757         (bug#49362).
8758
8759 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
8760
8761         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
8762         fix timezone handling problems on Windows.
8763         
8764         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
8765         asserts when the year is outside the range handled by ms the functions.
8766
8767         * class.c (setup_interface_offsets): If the class is an interface,
8768         fill out its interface_offsets slot.
8769
8770 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8771
8772         * threadpool.c: mark threadpool threads as background.
8773
8774 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
8775
8776         * decimal.c - define DECINLINE to nothing if not using GCC
8777
8778 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
8779
8780         * assembly.c: More refcount fixes.
8781
8782 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8783
8784         * string-icalls.c: if we're not trimming, return the same string.
8785         When not splitting, don't create a new string.
8786
8787 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8788
8789         * image.c:
8790         (mono_image_open): increment the ref_count inside the critical section.
8791
8792 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
8793
8794         * image.c (mono_image_open): Fix reference counting bug.
8795
8796 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
8797
8798         * marshal.c (mono_marshal_type_size) struct alignment changed for 
8799         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
8800         64bits. Avoid leak in mono_marshal_get_native_wrapper when
8801         mono_lookup_pinvoke_call throws.        
8802
8803 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
8804
8805         * reflection.c (mono_reflection_parse_type): Fix #49114.
8806
8807         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
8808         temporary workaround for cygwin header problem.
8809
8810         * object.c (mono_object_isinst): Synchronize this with the code
8811         generated by the JIT for casts.
8812
8813 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
8814
8815         * reflection.c (encode_type): Fix #38332.
8816
8817 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
8818
8819         * marshal.c (mono_marshal_method_from_wrapper): New function to return
8820         the original method from the wrapper method.
8821
8822 2003-09-25  Martin Baulig  <martin@ximian.com>
8823
8824         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
8825         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
8826         (ves_icall_Type_get_IsGenericInstance): New interncall.
8827
8828 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
8829
8830         * object.c: fix cast warning in big endian code.
8831
8832 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
8833
8834         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
8835         
8836 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8837
8838         * assembly.c: don't call check_env from mono_assembly_load. It's
8839         already done once in mono_assemblies_init and may cause headaches when
8840         multiple threads are loading assemblies.
8841
8842 2003-09-19  Martin Baulig  <martin@ximian.com>
8843
8844         * reflection.c (mono_reflection_define_generic_parameter): Don't
8845         allocate `klass->methods', set `klass->flags' to
8846         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
8847
8848 2003-09-18  Martin Baulig  <martin@ximian.com>
8849
8850         * class.c (mono_class_init): Don't create `class->methods' if it's
8851         already initialized.
8852
8853         * metadata.c (mono_metadata_load_generic_params): Make this
8854         actually work.
8855
8856         * reflection.c (mono_reflection_define_generic_parameter): Set
8857         parent class and interfaces from the constraints.
8858
8859         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
8860         to keep this struct in sync with the declaration in TypeBuilder.cs.
8861
8862 2003-09-17  Martin Baulig  <martin@ximian.com>
8863
8864         * metadata.h (MonoType): Replaced the data's `int type_param'
8865         field with `MonoGenericParam *generic_param'.
8866         (MonoGenericParam): Added `MonoClass *klass'.
8867
8868         * class.c (mono_class_from_gen_param): Removed the
8869         `MonoImage *image' and `int type_num' arguments.
8870
8871         * metadata.c (mono_metadata_parse_generic_param): New static
8872         method; creates a MonoGenericParam which just contains the index.
8873         (do_mono_metadata_parse_type): Call
8874         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
8875         MONO_TYPE_MVAR.
8876
8877         * reflection.c (mono_image_typedef_or_ref): Generic type
8878         parameters may be in the same assembly, but never use a typedef
8879         for them.
8880         (mono_reflection_define_generic_parameter): We're now creating a
8881         "real" class for the type parameter; it's now safe to call
8882         mono_class_from_mono_type() on the class'es type, it'll do the
8883         right thing.
8884
8885 2003-09-16  Martin Baulig  <martin@ximian.com>
8886
8887         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
8888         `symfile->range_entry_size' and `symfile->class_entry_size' here;
8889         the `symfile' data structure must be fully initialized before it
8890         gets added to the table.
8891
8892 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
8893
8894         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
8895
8896         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
8897         class init trampolines.
8898
8899 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
8900
8901         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
8902         to the built-in profiler to turn off time and allocation profiling
8903         respectively.
8904
8905 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
8906
8907         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
8908         g_direct_equal.
8909
8910         * debug-helpers.c (mono_method_full_name): Print the wrapper type
8911         in human readable form.
8912
8913 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
8914
8915         * reflection.c icall.c: Fixed warnings.
8916
8917         * image.c (load_class_names): Use a temporary hash table to hold the
8918         namespaces in order to avoid doing many string comparisons.
8919
8920         * image.h: Fix typo.
8921
8922         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
8923         Pass NULL instead of g_direct_equal to the GHashTable constructor 
8924         since the NULL case is short-circuited inside g_hash_table_lookup, 
8925         leading to better performance.  
8926
8927         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
8928         obtain the first custom attribute for a given index. Depends on the
8929         CustomAttribute table being sorted by the parent field.
8930
8931         * reflection.c (mono_custom_attrs_from_index): Use the new function 
8932         for better performance.
8933
8934 2003-09-07  Martin Baulig  <martin@ximian.com>
8935
8936         * class.c (mono_class_init): If we're a generic instance, inflate
8937         all our methods instead of loading them from the image.
8938         (mono_class_from_generic): Set `class->methods = gklass->methods'.
8939
8940 2003-09-07  Martin Baulig  <martin@ximian.com>
8941
8942         * mono-debug-debugger.c: Added support for constructors.
8943
8944 2003-09-06  Martin Baulig  <martin@ximian.com>
8945
8946         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
8947         New interncall.
8948
8949         * reflection.c (mono_reflection_setup_generic_class): Call
8950         ensure_runtime_vtable() to create the vtable.
8951
8952 2003-09-05  Martin Baulig  <martin@ximian.com>
8953
8954         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
8955         MONO_TYPE_MVAR.
8956
8957 2003-09-04  Martin Baulig  <martin@ximian.com>
8958
8959         * reflection.c (mono_reflection_define_generic_parameter): Generic
8960         parameters start with zero.
8961
8962 2003-09-04  Martin Baulig  <martin@ximian.com>
8963
8964         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8965
8966         * reflection.h (MonoReflectionGenericParam): New typedef.
8967         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
8968         the generic parameters from the managed TypeBuilder.
8969
8970         * reflection.c (mono_reflection_define_generic_parameter): New function.
8971         (mono_reflection_create_runtime_class): Encode generic parameters.
8972         (mono_reflection_setup_generic_class): New function; this is
8973         called after adding adding all generic params to the TypeBuilder.
8974         (encode_type): Added MONO_TYPE_VAR.
8975
8976 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
8977
8978         * class.h class.c (mono_class_needs_cctor_run): Moved this method
8979         here from the JIT.
8980
8981         * assembly.h assembly.c: Moved the AOT loading code into an assembly
8982         load hook.
8983
8984 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
8985
8986         * reflection.h reflection.c class.h class.c: Delete duplicate 
8987         definition of mono_type_get_name () from reflection.c and export the
8988         one in class.c.
8989
8990         * class.c: Class loading fixes from Bernie Solomon 
8991         (bernard@ugsolutions.com).
8992
8993         * reflection.c: Endianness fixes from Bernie Solomon 
8994         (bernard@ugsolutions.com).
8995         
8996 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
8997
8998         * assembly.h assembly.c: Define a file format version for AOT
8999         libraries.
9000         
9001         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
9002
9003         * appdomain.h (MonoJitInfo): New field to determine whenever the
9004         code is domain neutral.
9005         
9006 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
9007
9008         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
9009
9010 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
9011
9012         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
9013         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
9014         Avoid caching the result since strings must be domain specific. Fixes
9015         #48050.
9016
9017 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
9018
9019         * marshal.c (mono_marshal_init): Make this callable multiple times
9020         since it is hard to find a correct place to call it.
9021
9022         * object.c (mono_runtime_class_init): Execute static constructors in
9023         the correct appdomain.
9024
9025         * image.c (build_guid_table): Handle the case when multiple images have
9026         the same GUID.
9027
9028 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9029
9030         * icall.c: added a couple of icalls for System.Web.
9031
9032 2003-08-28  Martin Baulig  <martin@ximian.com>
9033
9034         * icall.c (ves_icall_Type_BindGenericParameters): Use
9035         `klass->generic_inst' instead of `&klass->byval_arg' in the
9036         mono_type_get_object() call.  The returned type must be
9037         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
9038
9039 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
9040
9041         * NOTES: New file.
9042
9043         * object.c (mono_class_proxy_vtable): Make it thread safe.
9044
9045         * pedump.c: Fix warning.
9046
9047         * object.c appdomain.h: Get rid of metadata_section. 
9048         It is no longer needed and it was causing deadlocks with domain->lock.
9049
9050         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
9051
9052 2003-08-26  Martin Baulig  <martin@ximian.com>
9053
9054         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
9055
9056 2003-08-26  Martin Baulig  <martin@ximian.com>
9057
9058         * pedump.c (main): Call mono_metadata_init(),
9059         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
9060         and mono_loader_init().
9061
9062 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
9063
9064         * loader.h: Add missing include to fix build.
9065
9066         * image.h: mono_image_load_references is no more.
9067
9068         * assembly.c: Reworked assembly loading to make it really thread safe.
9069         After these changes, the assembly returned by mono_assembly_open is
9070         fully initialized, i.e. all its references assemblies are loaded.
9071
9072         * assembly.c (mono_image_load_references): Renamed to 
9073         mono_assembly_load_references, and made private, since clients no
9074         longer need to call it.
9075
9076         * class.c: Removed calls to mono_assembly_load_references, since it was
9077         a source of deadlocks.
9078
9079         * loader.h loader.c class.h class.c: Protect data structures using a 
9080         new lock, the loader lock.
9081
9082         * class.c (mono_class_setup_vtable): Create temporary hash tables and
9083         GPtrArrays only when needed.
9084
9085         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
9086         into empty structures by mcs. Fixes pinvoke7.cs.
9087         
9088         * domain.c (mono_init): Call a new initialization function.
9089
9090         * appdomain.c (mono_runtime_init): Call the new initializer function
9091         of the marshal module.
9092
9093         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
9094         inserted into empty structures by mcs. Fixes pinvoke7.cs.
9095
9096         * marshal.h marshal.c: Added locks around the wrapper caches to make
9097         this module thread safe.
9098
9099         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
9100         this argument. Fixes pinvoke1.exe.
9101
9102 2003-08-25  Lluis Sanchez <lluis@ximian.com>
9103
9104         * object.h: Added call_type field to MonoMethodMessage and the corresponding
9105         enumeration of values. Removed fields to store remote call output values in
9106         MonoAsyncResult. Not needed any more.
9107         * object.c: Initialize call_type and async_result fields in mono_message_init.
9108         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
9109         dispatching the message.
9110         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
9111         async call to finish. To do it use a message with EndInvoke call type.
9112
9113 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
9114
9115         * loader.h loader.c (mono_method_hash_marhal_info): New function which
9116         determines whenever a method has marshalling info.
9117
9118 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9119
9120         * assembly.c: fix the build on windows.
9121
9122 2003-08-22 Lluis Sanchez <lluis@ximian.com>
9123
9124         * object.cs: Fixed bug #47785.
9125
9126 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
9127
9128         * string-icalls.c (StringReplace): If their are no occurances of
9129         the old string found return a reference to the supplied
9130         string. This saves some memory and matches MS behavoir.
9131         
9132 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9133
9134         * socket-io.c: fixed compilation for systems that define AF_INET6
9135         and don't define SOL_IP/SOL_IPV6.
9136
9137 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
9138
9139         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
9140         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
9141
9142         * rawbuffer.c rawbuffer.h: Make this module thread safe.
9143
9144         * domain.c: Make this module thread safe.
9145
9146         * domain.c (mono_init): Call new initialization function.
9147
9148         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
9149         reference types too. Fixes #38812.
9150
9151         * image.c (mono_image_init): Fixed warnings.
9152
9153         * class.c (mono_class_from_typeref): Handle assembly load failure
9154         correctly.
9155
9156         * appdomain.c (add_assemblies_to_domain): Handle the case when
9157         the references of an assembly are not yet loaded.
9158
9159         * metadata.c image.c assembly.c: Moved initialization of global
9160         variables to a separate function called at startup since lazy 
9161         initialization of these variables is not thread safe.
9162         
9163         * image.c assembly.c: Made this module thread safe by adding locks in 
9164         the appropriate places.
9165
9166         * domain.c (mono_init): Call the new initialization functions of the
9167         three modules.
9168
9169 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
9170
9171         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
9172           make a direct call. It is proxy's work to make the call asynchronous.
9173           mono_delegate_end_invoke(): If the targe is a proxy, just collect
9174           the return values.
9175         * object.cs: mono_method_call_message_new(): read AsyncResult and
9176           state object from parameters list, if this info is requested.
9177         * object.h: Added fields to store remote call output values in
9178           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
9179
9180 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9181
9182         * object.h: add needed fields to MonoThread.
9183         * threads.c, threads.h: allow registering a function to cleanup data
9184         allocated per thread by the JIT.
9185
9186 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9187
9188         * loader.h: portability fix by Bernie Solomon
9189         * <bernard@ugsolutions.com>.
9190
9191 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
9192
9193         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
9194         return a MonoArray. This simplifies the code and also ensures that
9195         the cache allways contains an object reference as a value.
9196
9197         * icall.c (ves_icall_get_parameter_info): Simplified using the new
9198         function.
9199
9200 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9201
9202         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
9203         fixes a problem with byte ordering when getting the address family for
9204         a socket.
9205
9206 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
9207
9208         * .cvsignore: Added monosn.
9209
9210         * reflection.h reflection.c loader.c: Added support for parameter
9211         marshalling to dynamically created types. Fixes #47295.
9212
9213 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
9214
9215         * rand.c: remove useless warnings.
9216
9217 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9218
9219         * class.c: implemented ldtoken for methods and fieldrefs.
9220
9221 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9222
9223         * threadpool.c: when mono_async_invoke was called, no one took care of
9224         monitoring the queue. So if the method invoked took some time and we
9225         got new async invoke requests after 500 ms (the thread created waited
9226         that long in WaitForSingleObject), the new async invoke was not called
9227         until the previous one finished.
9228
9229         This is fixed now. Thanks to Totte for helping with it.
9230
9231 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9232
9233         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
9234
9235 2003-08-11  Martin Baulig  <martin@ximian.com>
9236
9237         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
9238
9239 2003-08-06  Martin Baulig  <martin@ximian.com>
9240
9241         * mono-debug-debugger.c: Added support for static fields,
9242         properties and methods.
9243
9244 2003-08-06  Martin Baulig  <martin@ximian.com>
9245
9246         * mono-debug-debugger.c: Don't store the MonoString's vtable to
9247         make this work for applications with multiple application domains.
9248
9249 2003-08-04  Martin Baulig  <martin@ximian.com>
9250
9251         * mono-debug-debugger.c: Completely reworked the type support; the
9252         most important thing is that we're now just using one single
9253         `MonoType' instance per type.
9254
9255 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
9256
9257         * mono-endian.h, mono-endian.c, icall.c: Added icall
9258         ves_icall_System_Double_AssertEndianity to assert double word endianity
9259         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
9260
9261 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9262
9263         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
9264         support, icalls and fixes.
9265
9266 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
9267
9268         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
9269         classes that are a punctuation character in .NET is not the same a
9270         g_unichar_ispunct.
9271
9272 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9273
9274         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
9275
9276 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
9277
9278         * icall.c: Add new MemCopy internalcall.
9279         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
9280         Simplified code; It is not necessary to handle all the cases here,
9281         as the C# code takes care of it.  Only handle the case of the name
9282         resource embedded into the assembly.
9283
9284         Changed signature to return the data pointer and the size of the
9285         data. 
9286
9287 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
9288
9289         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
9290         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
9291
9292 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
9293
9294         * socket-io.c: ignore EINTR error in select.
9295
9296 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
9297
9298         * class.h, class.c: removed unused subclasses field in MonoClass.
9299
9300 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
9301
9302         * icall.c: improve fix of get_base_definition(). If the parent class
9303           doesn't have the mehod, look at the parent of the parent.
9304         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
9305           to check if a parameter is an in or out parameter
9306           (PARAM_ATTRIBUTE_IN is not set by default).
9307           mono_method_return_message_restore(): Use mono_class_value_size to
9308           get the size of a value type. mono_type_stack_size (parameterType)
9309           does not return the correct value if parameterType is byRef.
9310           mono_load_remote_field(), mono_load_remote_field_new(),
9311           mono_store_remote_field(), mono_store_remote_field_new():
9312           raise exception if the remote call returns an exception.
9313
9314 2003-07-28  Martin Baulig  <martin@ximian.com>
9315
9316         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
9317         method.  This is a wrapper around mono_runtime_invoke() which
9318         boxes the instance object if neccessary.
9319
9320 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9321
9322         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
9323         metadata.h, row-indexes.h, verify.c: first cut of generics support.
9324
9325 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9326
9327         * icall.c: disable mcs bug workaround.
9328
9329 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
9330
9331         * object.c (mono_runtime_class_init): Take the metadata_section
9332         mutex before obtaining the domain mutex.
9333
9334         * appdomain.h: Added definition of metadata_section mutex here. 
9335
9336         * object.c: define metadata_mutex here.
9337
9338 2003-07-24  Ravi Pratap  <ravi@ximian.com>
9339
9340         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
9341         fixed.
9342
9343 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
9344
9345         * reflection.c: Fix bug #46669
9346
9347 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9348
9349         * exception.c:
9350         * exception.h:
9351         * icall.c:
9352         * object.h: fill in the type name for TypeLoadException.
9353
9354 2003-07-23  Ravi Pratap  <ravi@ximian.com>
9355
9356         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
9357         relationship between TypeBuilders while compiling corlib) and bug
9358         45993 (Array types returned from the runtime while compiling
9359         corlib were from the loaded corlib).
9360
9361 2003-07-22  Martin Baulig  <martin@ximian.com>
9362
9363         * mono-debug-debugger.c: Reworked the type support a bit more;
9364         distinguish between types and classes.
9365
9366 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
9367
9368         * icall.c: add IsArrayImpl icall.
9369
9370 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
9371
9372         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
9373         initializing real_size only once. Also fix bug #46602.
9374
9375 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
9376
9377         * object.c: Renamed mono_metadata_section to metadata_section.
9378
9379 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
9380
9381         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
9382           empty array if the type is an array. Fixed.
9383           ves_icall_MonoMethod_get_base_definition: if the base method
9384           is abstract, get the MethodInfo from the list of methods of
9385           the class.
9386         * reflection.c: ParameterInfo.PositionImpl should be zero-based
9387           and it was 1-based. Fixed in mono_param_get_objects.
9388
9389 2003-07-20  Martin Baulig  <martin@ximian.com>
9390
9391         * mono-debug.h: Set version number to 31.
9392         (mono_debug_init): Added `MonoDomain *' argument.
9393
9394         * mono-debug-debugger.c: Reworked the type support; explicitly
9395         tell the debugger about builtin types; pass the `klass' address to
9396         the debugger.
9397
9398 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
9399
9400         * image.c: Allow new metadata tables to be loaded without a
9401         warning. Also update the warning message to give the new constant value.
9402                 
9403 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
9404
9405         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
9406         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
9407         array type representation changes.
9408
9409 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9410
9411         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
9412         on Environment.Exit () call.
9413
9414 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9415
9416         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
9417         requires a matching corlib.
9418
9419 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
9420
9421         * Changelog: My editor decided to add a CR to each line. Sorry about that.
9422           Committed again without the CRs.
9423         
9424 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
9425
9426         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
9427           getting it from the "this" socket instance. Did not work
9428           if the socket is a subclass of Socket.
9429           Also fixed bug #35371.
9430
9431 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9432
9433         * metadata.c: fixed size for TypedByRef.
9434         * loader.c: when searching for a method, consider the vararg amrker.
9435         * unicode.c, decimal.c: constify some arrays.
9436
9437 2003-07-15  Dick Porter  <dick@ximian.com>
9438
9439         * socket-io.c: Fixed compilation for gcc < 3.2.
9440
9441         Fixed compilation for machines that don't have AF_INET6 (thanks to
9442         Bernie Solomon <bernard@ugsolutions.com> for that part.)
9443
9444         Fixed compile warnings.
9445         
9446         Fixed formatting and line endings.
9447
9448 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
9449
9450         * socket-io.h:
9451         * socket-io.c: Added IPv6 support.
9452
9453 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
9454
9455         * class.c (mono_class_is_assignable_from): New function to implement
9456         the is_assignable_from logic. Used by mono_object_isinst, 
9457         Type::IsAssignableFrom () and the interpreter.
9458
9459         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
9460         Object, even interfaces.
9461         
9462         * object.c (mono_object_isinst): Implement in terms of 
9463         is_assignable_from.
9464
9465         * icall.c (ves_icall_type_is_assignable_from): New icall.
9466
9467 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
9468
9469         * domain.c (foreach_domain): fix compiler warning.
9470
9471 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
9472
9473         * image.c (load_metadata_ptrs): use g_strndup because strndup is
9474         not available on all plattforms
9475
9476 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
9477
9478         * image.h image.c: Store the metadata version string in MonoImage.
9479         * icall.c: New icall to retrieve the image version.
9480         * reflection.c (create_dynamic_image): Fill in the image version field
9481         * reflection.c (build_compressed_metadata): Use the image version
9482         from the image structure.
9483
9484 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9485
9486         * appdomain.c: modified comment.
9487         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
9488         That will be its last iteration when mono_gc_cleanup is called from
9489         mono_runtime_cleanup and before the domain is unloaded.
9490
9491         Fixes bug #45962.
9492
9493 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
9494
9495         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
9496         attributes.
9497
9498 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9499
9500         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
9501         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
9502         Bernie Solomon <bernard@ugsolutions.com>.
9503
9504 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9505
9506         * object.c, object.h: provide mono_object_new_fast() for faster
9507         allocation in some special cases.
9508
9509 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
9510
9511         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
9512         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
9513
9514 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
9515
9516         * threadpool.c: fix leaks.
9517
9518 2003-07-01  Dick Porter  <dick@ximian.com>
9519
9520         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
9521         using MonoGHashTables.  Fixes threadpool bug posted to list.
9522
9523 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
9524
9525         * image.h, image.c: added support to load an assembly from a byte array.
9526         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
9527         assembly bundle support.
9528
9529 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
9530
9531         * threadpool.c (mono_thread_pool_add): keep a reference to the
9532         AsyncResult to prevent GC
9533
9534 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
9535
9536         * class.c: leak fix.
9537
9538 2003-06-25  Dick Porter  <dick@ximian.com>
9539
9540         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
9541         for the async object, the WaitHandle object will close the handle.
9542         Fixes bug 45321.
9543
9544 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9545
9546         * class.c: in mono_array_class_get (), lookup from the hash with the
9547         same type we insert: this works around a bug in
9548         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
9549         lluis. The real fix will have to wait for after the release.
9550
9551 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9552
9553         * icall.c: fix memory leak when getting type members.
9554
9555 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9556
9557         * reflection.c: added more pubtoken special cases.
9558
9559 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
9560
9561         * class.c: handle field offset correctly when class size
9562         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
9563
9564 2003-06-20  Martin Baulig  <martin@ximian.com>
9565
9566         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
9567         *image' field.
9568
9569 2003-06-20  Martin Baulig  <martin@ximian.com>
9570
9571         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
9572
9573 2003-06-20  Martin Baulig  <martin@ximian.com>
9574
9575         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
9576         just distinguish between variables in registers and variables at
9577         an offset relative to a register.
9578
9579 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9580
9581         * icall.c: #ifdef out latest changes until mcs is fixed.
9582
9583 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9584
9585         * icall.c: return members in metadata order.
9586
9587 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9588
9589         * icall.c: avoid infinite loop in GetTimeZoneData.
9590
9591 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
9592
9593         * icall.c: added Marshal.Prelink/All icalls.
9594
9595 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9596
9597         * object.c, object.h: fix warnings and do some overflow checking
9598         when creating arrays.
9599
9600 2003-06-17  Dick Porter  <dick@ximian.com>
9601
9602         * file-io.h:
9603         * file-io.c: File attributes need to be tweaked slightly when
9604         passed from the managed to the w32 world.
9605
9606 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9607         * profiler.h profiler-private.h profiler.c: Rework last patch
9608         based on suggestion by Paolo.
9609         
9610 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9611
9612         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
9613         instruction level coverage data collection.
9614         * profiler.h profiler.c (: Added new callback function which can be
9615         used by the profiler to limit which functions should have coverage
9616         instrumentation.
9617         * profiler.c (mono_profiler_load): Call g_module_build_path to
9618         generate the file name of the profiler library.
9619
9620 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9621
9622         * profiler.c, profiler.h, profiler-private.h: added basic block 
9623         coverage profiling API.
9624
9625 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
9626
9627         * reflection.c (mono_reflection_create_runtime_class): Add support
9628         for events in dynamically generated code.
9629
9630         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
9631         not allocated.
9632
9633 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9634
9635         * icall.c: when getting timezone info, return reasonable values if we
9636         can't get the actual data.
9637
9638 2003-06-14  Dick Porter  <dick@ximian.com>
9639
9640         * threads.c (start_wrapper): Remove the reference to the thread
9641         object in the TLS data, so the thread object can be finalized.
9642         This won't be reached if the thread threw an uncaught exception,
9643         so those thread handles will stay referenced :-( (This is due to
9644         missing support for scanning thread-specific data in the Boehm GC
9645         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
9646
9647 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
9648
9649         * reflection.c: ensure streams and tables are first allocated with
9650         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
9651
9652 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9653
9654         * icall.c: fixed GetElementType for byrefs (bug# 44792).
9655
9656 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
9657
9658         * reflection.c (mono_reflection_create_runtime_class): Add support for
9659         properties to dynamically created classes.
9660         * reflection.c: Fix a few places where non-MonoObjects were inserted
9661         into the tokens hashtable.
9662
9663 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9664
9665         * object.c: some support to handle out of memory exceptions.
9666
9667 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
9668
9669         * marshal.c (mono_marshal_get_native_wrapper): support reference
9670         return types
9671
9672 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9673
9674         * object.h, object.c: more portability stuff from Bernie Solomon.
9675         Unexport mono_object_allocate(). Added mono_object_unbox ().
9676         Set exitcode when an unhandled exception is thrown.
9677
9678 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
9679
9680         * marshal.c (mono_marshal_get_native_wrapper): use custom
9681         marshaler for return types.
9682
9683 2003-06-10  Dick Porter  <dick@ximian.com>
9684
9685         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
9686         ip_mreq is available
9687
9688 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
9689
9690         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
9691         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
9692         by Bernie Solomon <bernard@ugsolutions.com>.
9693
9694 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
9695
9696         * gc.c (mono_gc_init): Avoid error message on shutdown when
9697         GC_DONT_GC=1 is used.
9698
9699         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
9700         New icall to return the GUID of a module.
9701
9702 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9703
9704         * class.c: ensure instance size always includes the parent's size
9705         even whem class size is set explicitly (fixes bug#44294).
9706
9707 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9708
9709         * profiler.h, profiler.c: made the simple profiler thread-safe,
9710         get more accurate timing info. Allow the loading of an
9711         externally-developed profiler module.
9712
9713 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
9714
9715         * marshal.c (mono_marshal_get_native_wrapper): improved
9716         class/byref arguments.
9717         (mono_marshal_get_native_wrapper): better string marshaling support.
9718
9719 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
9720
9721         * class.c: ensure .pack and .size are handled correctly and
9722         simplified layout of static fields.
9723
9724 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
9725
9726         * appdomain.c
9727         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
9728
9729         * loader.c (mono_lookup_pinvoke_call): look for modules in the
9730         current directory (fix bug 44008)
9731
9732 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
9733
9734         * marshal.c (mono_marshal_get_native_wrapper): started support for
9735         custom marshalers.
9736         (mono_delegate_to_ftnptr): consider marshalling specifications
9737
9738 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
9739
9740         * reflection.c, reflection.h: emit custom marshal info.
9741
9742 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9743
9744         * object.c: free the GError.
9745         * icall.c: added CloseEvent_internal.
9746         * threads.[ch]:
9747         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
9748         call.
9749
9750 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
9751
9752         * loader.c (mono_method_get_signature): Add support for dynamic
9753         assemblies.
9754
9755 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
9756
9757         * reflection.c: fixed bug #43905.
9758
9759 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9760
9761         * class.c, domain.c, icall.c, metadata.h, object.h: support for
9762         handling TypedReference and ArgIterator.
9763         * loader.c, loader.h: added function to get signature at call site.
9764
9765 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9766
9767         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
9768         data readonly. Buglets and warning fixes. Some MethodSpec support.
9769
9770 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9771
9772         * class.h, class.c, object.c: remove relative numbering support.
9773
9774 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
9775
9776         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
9777         free the string, until we get a chance to fix Gtk#
9778
9779 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9780
9781         * marshal.c: revert last patch.
9782
9783 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
9784
9785         * icall.c: updates for new mono_class_vtable() not calling
9786         the type constructor anymore.
9787
9788 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
9789
9790         * object.h, object.c: separate vtable creation from type
9791         initialization. Make running the .cctor thread safe.
9792
9793 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
9794
9795         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
9796
9797 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
9798
9799         * loader.c (mono_get_method): consider calling convention
9800
9801 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
9802
9803         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
9804         to return the invisible global type for a module.
9805
9806         * reflection.c (mono_image_build_metadata): Emit global fields too.
9807
9808 2003-05-20  Peter Williams  <peterw@ximian.com>
9809
9810         * loader.c (mono_lookup_internal_call): Add a few newlines.
9811
9812 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
9813
9814         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
9815         literal strings.
9816
9817         * appdomain.c (set_domain_search_path): Recalculate search path when
9818         AppDomainSetup.PrivateBinPath changes.
9819
9820         * object.c (mono_class_compute_gc_descriptor): It turns out some
9821         parts of the class libs (like System.Thread) holds pointers to
9822         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
9823         to treat native int a pointer type here.
9824         
9825 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
9826
9827         * appdomain.h, domain.c: add hashtable for jump target resolution.
9828
9829 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
9830
9831         * reflection.h reflection.c icall.c: Added new icalls 
9832         GetManifestResourceInfoInternal, GetModulesInternal and support
9833         infrastructure.
9834
9835 2003-05-16  Dick Porter  <dick@ximian.com>
9836
9837         * icall.c:
9838         * file-io.h:
9839         * file-io.c: Implement System.IO.MonoIO::GetTempPath
9840
9841 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
9842
9843         * object.c: mono_store_remote_field: little fix to previous patch.
9844
9845 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9846
9847         * class.c: add constructors to array classes.
9848         * icall.c: special case array construction for InternalInvoke (),
9849
9850 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
9851
9852         * class.h class.c reflection.c object.c: Added support for field
9853         defaults in dynamically generated classes.
9854
9855 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
9856
9857         * reflection.c: properly encode charset for ddlimport.
9858
9859 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
9860
9861         * threads.c: allow compiling without GC.
9862
9863 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9864
9865         * appdomain.h, object.c, object.h, threads.c, threads.h: added
9866         handling of thread static data.
9867
9868 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9869
9870         * reflection.h, reflection.c: added mono_custom_attrs_free ().
9871
9872 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
9873
9874         * class.c (mono_array_class_get): always set the serializable flags
9875         (mono_array_class_get): always set the SEALED attribute for array types
9876
9877 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
9878
9879         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
9880         attributes (fix for bug 42021).
9881
9882 2003-05-12  Dick Porter  <dick@ximian.com>
9883
9884         * gc.c: Don't run finalizers when the finalizer thread is
9885         finishing up, because the default domain has already been
9886         destroyed.
9887
9888 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
9889
9890         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
9891         value is null, we should throw an exception.   This is slightly
9892         different than the other conventions used for the constructor.
9893
9894 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9895
9896         * socket-io.c: fixed windows build.
9897
9898 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9899
9900         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
9901
9902 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
9903
9904         * object.c (mono_string_new_wrapper): Compatibility fix for MS
9905         compilers.
9906
9907 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
9908
9909         * class.c (mono_class_layout_fields): Add experimental GC aware
9910         auto layout facility. Requires class library changes to work correctly.
9911
9912         (mono_class_setup_vtable): Avoid overriding explicit interface
9913         method implementations. Fixes iface3.exe test.
9914
9915         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
9916         object reference.
9917         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
9918         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
9919
9920         * metadata.h: Add new type classification macro which determines
9921         whenever the type holds an object reference.
9922
9923 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
9924
9925         * marshal.c (mono_marshal_get_native_wrapper): cleanups
9926
9927 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
9928
9929         * gc.c (finalizer_thread): Work around a GC bug.
9930
9931 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
9932
9933         * marshal.c (emit_struct_conv): allow unions
9934
9935         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
9936
9937 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
9938
9939         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
9940
9941 2003-05-06  Martin Baulig  <martin@ximian.com>
9942
9943         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
9944
9945 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9946
9947         * socket-io.c:
9948         (Select_internal): allow NULLs, don't create arrays if not needed.
9949         Coupled with Socket.cs changes.
9950
9951         * threadpool.c:
9952         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
9953         register a finalizer for it that will close the semaphore handle. This
9954         fixes the leak and make Lupus' test run with > 4080 loops.
9955
9956 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
9957
9958         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
9959         Jerome Laban (bug #42287)
9960
9961 2003-05-02  Martin Baulig  <martin@ximian.com>
9962
9963         * debug-mono-symfile.h
9964         (MonoSymbolFile): Moved declaration into mono-debug.h.
9965         (MonoDebugMethodJitInfo): Likewise.
9966         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
9967         argument.
9968         (_mono_debug_address_from_il_offset): Take a
9969         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
9970
9971         * mono-debug.h
9972         (MonoDebugDomainData): New struct.
9973         (mono_debug_get_domain_data): New function.
9974         (mono_debug_add_method): Take an additional `MonoDomain *'
9975         argument.
9976         (mono_debug_source_location_from_address): Likewise.
9977         (mono_debug_il_offset_from_address): Likewise.
9978         (mono_debug_address_from_il_offset): Likewise.
9979
9980 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
9981
9982         * reflection.c: one more check for null type in custom attrs.
9983
9984 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9985
9986         * reflection.c: avoid warning (comparison is always false due to limited
9987         range of data type).
9988
9989 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9990
9991         * icall.c: throw an exception in Type.GetField if the argument 'name'
9992         is NULL.
9993
9994 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
9995
9996         * reflection.c: fixed handling of enums in named arguments to custom
9997         attributes (bug #42123).
9998
9999 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
10000
10001         * reflection.c: use the right array element type and handle
10002         a null for a Type argument, too.
10003
10004 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
10005
10006         * reflection.c: handle arrays as arguments to custom attributes.
10007
10008 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
10009
10010         * reflection.c: handle a string value in a custom attr
10011         ctor that takes an object.
10012
10013 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
10014
10015         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
10016         (fix bug #42063)
10017
10018 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
10019
10020         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
10021
10022 2003-04-27  Martin Baulig  <martin@ximian.com>
10023
10024         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
10025         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
10026         MONO_DEBUGGER_EVENT_BREAKPOINT.
10027         (mono_breakpoint_trampoline_code): Removed.
10028         (mono_debugger_event_handler): The last argument is now a
10029         `guint32'.
10030         (mono_debugger_insert_breakpoint_full): Removed the
10031         `use_trampoline' argument.
10032         (mono_debugger_method_has_breakpoint): Likewise.
10033         (mono_debugger_trampoline_breakpoint_callback): Renamed to
10034         mono_debugger_breakpoint_callback(); take the method and
10035         breakpoint number as arguments.
10036
10037 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
10038
10039         * metadata.c: fix off by one when loading parameters attributes.
10040
10041 2003-04-24  Martin Baulig  <martin@ximian.com>
10042
10043         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
10044
10045 2003-04-24  Martin Baulig  <martin@ximian.com>
10046
10047         * mono-debug-debugger.c: Moved all code which interacts with the
10048         Mono Debugger here.
10049
10050         * debug-mono-symfile.c: This code now just deals with the symbol
10051         file itself, the debugger code is now in mono-debug-debugger.c.
10052
10053 2003-04-23  Martin Baulig  <martin@ximian.com>
10054
10055         * mono-debug.c (mono_debug_source_location_from_il_offset):
10056         New method; like mono_debug_source_location_from_address(), but
10057         takes an IL offset instead of a machine address.
10058
10059 2003-04-23  Martin Baulig  <martin@ximian.com>
10060
10061         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
10062         `line' field; this is now computed by the debugger.
10063
10064 2003-04-23  Martin Baulig  <martin@ximian.com>
10065
10066         * mono-debug.[ch]: New files.  This is the new debugging interface.
10067
10068         * mono-debug-debugger.[ch]: New files.  Moved all code which
10069         interacts with the Mono Debugger here.
10070
10071 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
10072
10073         * domain.c (mono_init): initialize mono_defaults.monitor_class
10074
10075 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
10076
10077         * reflection.c (method_encode_code): Add a spicy exception to help
10078         future compiler authors.
10079
10080 2003-04-21  Martin Baulig  <martin@ximian.com>
10081
10082         * icall.c
10083         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10084         Make this work with relative pathnames; g_filename_to_uri() needs
10085         an absolute filename.
10086
10087 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
10088
10089         * icall.c: Track name changes in Object and ValueType.
10090
10091 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
10092
10093         * metadata.c (mono_type_stack_size): size should be a multiple of
10094         sizeof (gpointer)
10095
10096 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10097
10098         * gc.c:
10099         (internal_domain_finalize): moved into mono_domain_finalize. No need
10100         to create another thread because the finalizers will be run in the
10101         finalizer thread.
10102         
10103         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
10104         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
10105         to be run (MS does this too).
10106
10107 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
10108
10109         * object.c (mono_class_compute_gc_descriptor): Update comment.
10110
10111         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
10112
10113         * image.h: Add synchronized wrapper cache.
10114
10115         * image.c (do_mono_image_open): Initialize cache.
10116
10117         * reflection.c (create_dynamic_mono_image): Initialize cache.
10118
10119 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10120
10121         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
10122         ves_icall_System_Buffer_ByteLengthInternal.
10123
10124 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10125
10126         * reflection.c: setup klass->nested_in earlier. Allow
10127         a dash in the assembly name.
10128
10129 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
10130
10131         * metadata.c (mono_type_to_unmanaged): dont access
10132         type->data.klass for MONO_TYPE_OBJECT
10133         (mono_type_to_unmanaged): consider System.Delegate class
10134
10135 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
10136
10137         * class.c: just setup supertypes in the proper place instead of
10138         initializing the full element class for arrays.
10139
10140 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
10141
10142         * class.c: ensure the element class of arrays is initialized.
10143         Setup the supertype info for array classes, too.
10144
10145 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
10146
10147         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
10148
10149 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10150
10151         * Makefile.am: re-added -m option when running cygpath. This way,
10152         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
10153         separator.
10154         * mono-config.c: same codepath for locating mono config file for WIN32
10155         and the rest.
10156         * assembly.c: if mono_assembly_setrootdir is called, don't override
10157         the value set.
10158
10159 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10160
10161         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
10162         MONO_ASSEMBLIES variable.
10163
10164 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
10165
10166         * icall.c: added Assembly::GetNamespaces() icall.
10167
10168 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10169
10170         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
10171
10172 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
10173
10174         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
10175         * object.c: fixed bug in the construction of vtable for proxies
10176
10177 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
10178
10179         * object.c (mono_array_new): Mark mono_array_new as an icall.
10180
10181 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10182
10183         * class.c: fixed test for public method when overriding interfaces.
10184         Closes bug #40970.
10185
10186 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
10187
10188         * appdomain.h, domain.c: added mono_domain_foreach() to
10189         be able to access the currently loaded appdomains.
10190         * object.c: make string interning work across sppdomains.
10191         Mark some functions for use as icalls.
10192
10193 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
10194
10195         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
10196
10197         * reflection.h reflection.c: Allocate long living data using 
10198         GC_MALLOC_ATOMIC so the collector does not need to scan it.
10199
10200         * reflection.c: Double the allocation size in streams instead of
10201         increasing it, to prevent unneccesary copying on large assemblies.
10202         
10203         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
10204         creation if the assembly does not have the Run flag set.
10205
10206 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
10207
10208         * class.h: avoid the C++ keywords in header files (Jerome Laban
10209         spotted and fixed this).
10210
10211 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10212
10213         * object.c:
10214         (mono_unhandled_exception): fill in the arguments for the
10215         UnhandledException event. Only trigger that event for the default
10216         domain (as MS does).
10217
10218 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
10219
10220         * object.c: Improve typed allocation stuff based on suggestions from
10221         Paolo. Also turn it on if the GC library supports it.
10222
10223 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10224
10225         * object.c object.h class.h: Added experimental typed allocation
10226         facility using the interfaces in gc_gcj.h.
10227
10228         * os/gc_wrapper.h: Added new include files.
10229         
10230 2003-04-03  Martin Baulig  <martin@ximian.com>
10231
10232         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
10233         which is not yet enabled by default.
10234
10235         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
10236         functions.
10237         (mono_gc_lock, mono_gc_unlock): New static functions.
10238
10239         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
10240         functions; stop/start the world for the garbage collector.  This
10241         is using the windows API; we need to complete the SuspendThread()/
10242         ResumeThread() implementation in the io-layer to make this work on Unix.
10243         (mono_gc_push_all_stacks): New public function; tells the garbage
10244         collector about the stack pointers from all managed threads.
10245
10246 2003-04-03  Martin Baulig  <martin@ximian.com>
10247
10248         * object.h (MonoThread): Added `gpointer stack_ptr'.
10249
10250         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
10251
10252 2003-04-03  Martin Baulig  <martin@ximian.com>
10253
10254         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
10255
10256 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10257
10258         * reflection.c (typebuilder_setup_fields): Initialize field.first and
10259         field.last.
10260
10261 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
10262
10263         * loader.c (mono_lookup_internal_call): Report the corlib that is
10264         out of sync.
10265
10266 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
10267
10268         * icall.c (ves_icall_type_GetTypeCode): fixed check for
10269         System.DBNull (it's class not valuetype).
10270
10271 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
10272
10273         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
10274         if the array method was already assigned a token (fixes bug#40646).
10275
10276 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
10277
10278         * reflection.c (mono_reflection_get_type): Attempt type resolve even
10279         if no assembly is given.
10280
10281 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
10282
10283         * metadata.h: Added the new tables.
10284
10285         * row-indexes.h: Added definitions for new tables.
10286
10287         * metadata.c: Add schemas for new tables, and add support for
10288         computing the sizes of them.
10289
10290         * class.c: Update for handling the new type cases.
10291
10292 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
10293
10294         * metadata.h (MONO_TYPE_IS_VOID): new macro
10295
10296 2003-03-31  Martin Baulig  <martin@ximian.com>
10297
10298         * threads.h (MonoThreadCallbacks): Added `thread_created'.
10299
10300         * threads.c (mono_thread_new_init): Call `thread_created' in the
10301         mono_thread_callbacks.
10302
10303 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
10304
10305         * loader.h: added marshalbyrefobject_class to mono_defaults
10306         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
10307         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
10308           generation of output parameters.
10309           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
10310         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
10311           contextbound and the target object belongs to the context of the caller.
10312         * object.h: added context and unwrapped_server variables in MonoRealProxy.
10313         * object.c: Implemented support for interfaces and abstract classes
10314           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
10315           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
10316
10317 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
10318
10319         * class.h class.c (mono_class_is_subclass_of): New function.
10320         
10321         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
10322         routines for most common case (calls from ArrayList::ToArray).
10323
10324         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
10325         routine so programs which call Environment::Exit() can be profiled.
10326
10327         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
10328         Added MONO_ARCH_SAVE_REGS.
10329
10330         * icall.c (ves_icall_type_is_subtype_of): Use new function.
10331
10332 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
10333
10334         * blob.h: Add a couple of new MonoType types definitions.
10335
10336         * tabledefs.h: Add a couple of new call convs.
10337
10338 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
10339
10340         * reflection.h (MonoReflectionDynamicAssembly): track changes in
10341         the layout of the class.
10342
10343         * reflection.c (alloc_table): double the size on overflow to avoid
10344         unnecessary copying.
10345
10346         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
10347         avoid filling out metadata tables and blobs. Also set mb->ilgen to
10348         null so it can be garbage collected.
10349         
10350 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
10351
10352         * reflection.c (mono_reflection_get_type): Return the resolved type
10353         only if it is in the assembly we searched.
10354
10355         * reflection.c (ensure_runtime_vtable): Initialize method slots.
10356
10357         * class.c (mono_class_setup_vtable): Set the slot of the overriding
10358         method.
10359
10360 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10361
10362         * appdomain.c:
10363         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
10364         the right one is 'file:///blah', but MS allows it.
10365         * assembly.c:
10366         (mono_assembly_open): allow 'file://blah'
10367
10368         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
10369
10370 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
10371
10372         * socket-io.c: fixes bug #40310.
10373
10374 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
10375
10376         * reflection.c (mono_reflection_parse_type): handle deeply nested
10377         types correctly.
10378
10379         * reflection.c (mono_image_create_token): Use unique token values
10380         since they will be put into a hash table.
10381
10382         * class.c (mono_class_setup_vtable): If a method occurs in more than
10383         one place in the vtable, and it gets overriden, then change the
10384         other occurances too.
10385
10386         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
10387         object as return type.
10388
10389 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10390
10391         * icall.c: Deleted "ToString" implementation for double and float
10392         because they are full implemented in managed code.
10393
10394 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10395
10396         * reflection.c, reflection.h: implemented and exported functions
10397         to retrieve info about custom attributes.
10398
10399 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10400
10401         * appdomain.c: moved Uri handling to assembly.c
10402         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
10403         work when using a file Uri in *nix and windows.
10404
10405         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
10406         GetReferencedAssemblies.
10407
10408 2003-03-18  Dick Porter  <dick@ximian.com>
10409
10410         * icall.c: Rename a couple of internal calls
10411
10412         * threads.c: Set the thread state to Stopped when a thread exits.
10413         Fixes bug 39377.
10414
10415 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
10416
10417         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
10418         New icall.
10419
10420         * object.c (mono_class_vtable): fix warning.
10421
10422 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
10423
10424         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
10425
10426         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
10427         memory.
10428         (method_encode_clauses): Create exception info structures in the right
10429         order.
10430         (mono_reflection_setup_internal_class): Initialize supertypes field.
10431
10432         * class.c object.c: Handle interfaces which implement other interfaces 
10433         correctly.
10434
10435         * class.h class.c: Move the supertypes array initialization code into 
10436         a separate function so it can be used for dynamic types too. Also call
10437         it earlier, in mono_class_init(), since it can be used before the
10438         type is initialized.
10439
10440 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10441
10442         * Makefile.am:
10443         * assembly.c:
10444         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
10445
10446         * appdomain.c:
10447         * appdomain.h:
10448         * marshal.c:
10449         * object.c: remove warnings.
10450
10451 2003-03-13  Martin Baulig  <martin@ximian.com>
10452
10453         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
10454         (MonoDebugLexicalBlockEntry): New types.
10455
10456         * debug-mono-symfile.c
10457         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
10458
10459 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10460
10461         * process.c: ret can be any non-zero value accroding to MS doc.
10462
10463 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
10464
10465         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
10466         fixing a warning for a miss-used prototype, would have cause
10467         random memory corruption.
10468
10469 2003-03-07  Martin Baulig  <martin@ximian.com>
10470
10471         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
10472         getting really annoying ....
10473
10474 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
10475
10476         * reflection.c (fixup_method): added support for array methods.
10477
10478 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
10479
10480         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
10481         (pointed out by Michael Adams).
10482
10483 2003-03-04  Dick Porter  <dick@ximian.com>
10484
10485         * icall.c: Temporarily reverted the Double and Single ToString()
10486         change, because it broke nunit.
10487
10488 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
10489
10490         * object.h, threads.h: make include files compatible with C++
10491         (patch by Jerome Laban <jlaban@wanadoo.fr>).
10492
10493 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10494
10495         * icall.c: Erased ToString helper functions for Double and Single.
10496         Now, that implementations ar all in managed code (Double and Single
10497         Formatters).
10498
10499 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
10500
10501         * appdomain.c: Added method for initializing the default context of
10502         a domain. Added internal call for getting the default context.
10503         * appdomain.h: Added context variable in MonoDomain struct.
10504         * domain.c: mono_domain_set also sets the default context of the domain
10505         * icall.c: Mapped internal method InternalGetDefaultContext.
10506         * object.c: mono_object_get_virtual_method returns always a remoting
10507         wrapper if the object is a transparent proxy.
10508         mono_runtime_invoke_array: when creating an object by calling the
10509         constructor, if the created object is a proxy, then the constructor should
10510         be called using the a remoting wrapper.
10511
10512 2003-03-03  Dick Porter  <dick@ximian.com>
10513
10514         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
10515         variable so it compiles on solaris.  Problem spotted by
10516         Christopher Taylor <ct@cs.clemson.edu>
10517
10518 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10519
10520         * appdomain.c:
10521         (get_info_from_assembly_name): don't leak value.
10522
10523         * icall.c:
10524         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
10525         result.
10526
10527 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
10528
10529         * assembly.c: export mono_image_load_references ().
10530         * class.c: handle function pointers. mono_class_from_name() now
10531         supports nested type names directly.
10532
10533 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
10534
10535         * reflection.h reflection.c: Encode already created dynamic methods 
10536         and fields correctly as a DEF instead of a REF.
10537
10538         * reflection.c: Get rid of the force_ref argument to 
10539         mono_image_typedef_or_ref since it was wrong in the first place.
10540
10541         * string-icalls.c: add error checking to string constructors according
10542         to the MSDN docs.
10543
10544         * reflection.c: Emit types in the order their TypeBuilders were 
10545         created. Previously, a new table index was assigned to each type before
10546         the tables were emitted. This was wrong because the signature blob
10547         might already refer to a type by its original table index.
10548
10549 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
10550
10551         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
10552         change.
10553         
10554 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10555
10556         * Makefile.am: make assemblies dir have \ instead of / on windows.
10557
10558 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
10559
10560         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
10561         iterate over the NESTEDCLASS table using a linear search since the
10562         table is not guaranteed to be sorted by the secondary key.
10563
10564         * class.c (mono_class_create_from_typedef): fixed up call to
10565         mono_metadata_nesting_typedef.
10566         
10567 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
10568
10569         * marshal.c (mono_string_to_byvalstr): clear the memory as
10570         suggested by Jerome Laban <jlaban@wanadoo.fr>
10571
10572 2003-02-26  Dick Porter  <dick@ximian.com>
10573
10574         * process.c: Cope with padding in .rsrc blocks
10575
10576 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
10577
10578         * metadata.h: reverted the filter_len change, it breaks reflection
10579         
10580 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
10581
10582         * metadata.h: added a new field to store the filter_len
10583         
10584
10585 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
10586
10587         * reflection.c: handle custom attributes for types and members
10588         created with Reflection.Emit (bug#38422).
10589
10590 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
10591
10592         * reflection.c: define RTSpecialName automatically for constructors for
10593         compatibility with MS.NET.
10594
10595         * reflection.c (mono_reflection_create_runtime_class): initialize
10596         nested_in field of dynamically created classes.
10597
10598 2003-02-22  Martin Baulig  <martin@ximian.com>
10599
10600         * debug-mono-symfile.h: Incremented version number.
10601
10602 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
10603
10604         * object.h icall.c process.c: fix warnings.
10605
10606 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
10607
10608         * appdomain.h appdomain.c:
10609         (mono_domain_try_type_resolve): split the 
10610         name_or_tb argument into a name and a tb argument.
10611         (mono_domain_has_type_resolve): new function to check whenever the
10612         application has registered a TypeResolve event handler.
10613         
10614         * icall.c reflection.h reflection.c: move the type resolve logic into
10615         mono_reflection_get_type () so it will be invoked when 
10616         Assembly::GetType () is called.
10617
10618         * reflection.c:
10619         (mono_reflection_get_type): renamed to get_type_internal.
10620         (mono_reflection_get_type): fixed type name generation so it works 
10621         for nested types too.
10622         (mono_reflection_get_type): call has_type_resolve () to avoid the 
10623         costly type name generation if there is no resolve event handler.
10624
10625 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10626
10627         * class.c, image.c: load exported types from file references.
10628
10629 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
10630
10631         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
10632           used to cache the managed methods used to create proxies and make 
10633           remote invocation of methods.
10634         * class.h: Added in MonoVTable a flag to indicate that a class needs 
10635           to be remotely created.
10636         * object.c: Modified the method mono_class_vtable(). It now initializes 
10637           the remote flag of the vtable. Modified mono_object_new_specific(), 
10638           so now it checks the remote flag.
10639         * icall.c: Added a couple of internal methods, one for enabling instance 
10640           creation interception for a type, and one for creating objects bypassing
10641           the remote check.
10642
10643 2003-02-18  Martin Baulig  <martin@ximian.com>
10644
10645         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
10646         New interncall to get a method's metadata token.
10647
10648         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
10649         New interncall for the debugger.
10650
10651 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
10652
10653         * class.c (mono_class_setup_vtable): allocate supertype array
10654
10655 2003-02-18  Martin Baulig  <martin@ximian.com>
10656
10657         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
10658
10659 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10660
10661         * reflection.c:
10662         (assembly_name_to_aname): jump over unknown properties (i've found
10663         something like: 'type, assembly, version=xxx, custom=null, public...',
10664         so now will ignore custom=null and still get the rest of the values).
10665
10666 2003-02-17  Dick Porter  <dick@ximian.com>
10667
10668         * threads.c: Have Thread.Start() wait for a semaphore to signal
10669         that the thread has set up all its local data.  This fixes bug
10670         34323, where Abort() raced the new thread's TLS data.
10671
10672         Also removes the handle_store() call from start_wrapper, because
10673         threads are now always created suspended and there is no longer a
10674         race between the parent and child threads to store the info.
10675
10676 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
10677
10678         * image.c: explain the #- heap issue in a message, hopefully
10679         avoiding FAQs on mono-list.
10680
10681 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10682
10683         * icall.c:
10684         (GetEntryAssembly): if the domain has not invoked
10685         AppDomain.ExecuteAssembly yet, return the assembly of the default
10686         AppDomain.
10687
10688 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
10689
10690         * class.c (mono_ldtoken): make it work in dynamic assemblies.
10691
10692 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
10693
10694         * metadata.c, reflection.c: simple speedup to type hash
10695         and equals code.
10696
10697 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
10698
10699         * image.c, image.h, class.c, assembly.c: move module loading
10700         to MonoImage. When loading metadata, consider alignemnet from
10701         the start of metadata, not from the metadata address in memory.
10702
10703 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
10704
10705         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
10706         AssemblyBuilder objects. Factored out custom attribute creation into
10707         a separate function.
10708         (create_custom_attr): new function to create custom attributes.
10709
10710 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
10711
10712         * Makefile.am: Got tired of typing the full pathname to pedump.
10713         Until there is another option, am installing this.
10714
10715 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
10716
10717         * class.c (class_compute_field_layout): always set field->parent 
10718         (mono_ldtoken): use mono_defaults.fieldhandle_class;
10719
10720 2003-02-11  Dick Porter  <dick@ximian.com>
10721
10722         * threads-types.h:
10723         * monitor.c: Rewrote Monitor, making lock much faster and
10724         Pulse/Wait work as specified.  Also uses much fewer handles, and only
10725         creates them as needed.
10726
10727         * exception.c: Added SynchronizationLockException
10728
10729         * threads.c: Deleted old Monitor implementation.  The new one is
10730         in a new file.
10731
10732 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
10733
10734         * class.c: handled TypedReference type code. Set the correct size for
10735         class data. Setup interface_offsets for interface classes, too.
10736
10737 2003-02-09  Martin Baulig  <martin@ximian.com>
10738
10739         * debug-mono-symfile.h: Reflect latest symbol writer changes.
10740
10741 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
10742
10743         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
10744         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
10745         * object.c: fixed mono_object_get_virtual_method () for interfaces.
10746         * verify.c: check for code that runs after the end of the method.
10747
10748 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10749
10750         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
10751         "System.Math::Round2".
10752         * sysmath.h: Added Floor, Round and Round2 definitions.
10753         * sysmath.c: Modified certain functions that were not 100% compliant
10754         with MS.NET (math precision) and added the implementation of Floor,
10755         Round and Round2.
10756
10757 2003-02-07  Martin Baulig  <martin@ximian.com>
10758
10759         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
10760
10761 2003-02-07  Martin Baulig  <martin@ximian.com>
10762
10763         * debug-mono-symfile.c: Reflected latest symwriter changes.
10764         (mono_debug_create_mono_symbol_file): Removed.
10765         (mono_debug_open_mono_symbol_file): Take an argument which
10766         specifies whether to create a dynamic symbol file.
10767
10768 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
10769
10770         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
10771
10772 2003-02-05  Martin Baulig  <martin@ximian.com>
10773
10774         * reflection.c (mono_image_build_metadata): Make this public,
10775         protect it against being called multiple times, don't create
10776         resources and don't build the compressed metadata here.
10777         (mono_image_create_pefile): Do this here.
10778
10779         * icall.c
10780         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
10781
10782 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10783
10784         * socket-io.c: fixed bug #36322.
10785
10786 2003-02-06  Piers Haken <piersh@friskit.com>
10787
10788         * appdomain.[ch]:
10789         * class.h:
10790         * debug-mono-symfile.c:
10791         * icall.c:
10792         * loader.c:
10793         * mono-config.c:
10794         * monosn.c:
10795         * reflection.c:
10796         * socket-io.c: warning cleanups
10797
10798 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
10799
10800         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
10801         function. works like remoting invoke, but does a check for the Proxy first.
10802
10803 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
10804
10805         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
10806
10807 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
10808
10809         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
10810         array of pointers.
10811         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
10812         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
10813
10814         * object.c (mono_store_remote_field_new): used by the new jit
10815         instead of mono_store_remote_field
10816         (mono_load_remote_field_new): used by the new jit
10817         instead of mono_load_remote_field
10818
10819 2003-02-05  Patrik Torstensson
10820
10821         * appdomain.c: changed unload to take the domain id instead
10822         of domain
10823         
10824         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
10825
10826
10827 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10828
10829         * appdomain.c: don't look for assemblies in ApplicationBase if
10830         PrivateBinPathProbe is set.
10831
10832 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10833
10834         * object.c: make the first argument in main_args contain the absolute
10835         path to the assembly. Fixes bug #37511.
10836
10837 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10838
10839         * icall.c: get correct UTC offset for countries not using daylight
10840         time saving. Fixes bug #30030.
10841
10842 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10843
10844         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
10845         and 1 are the family).
10846
10847 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
10848
10849         * icall.c (ves_icall_InternalExecute): removed wrong assertion
10850
10851         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
10852
10853 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
10854
10855         * reflection.c: added support for SignatureHelper tokens, which is
10856         needed by the Calli opcode.
10857
10858         * reflection.h: track changes to SignatureHelper class.
10859
10860         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
10861
10862 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10863
10864         * appdomain.c: fixed loading assemblies from PrivateBinPath.
10865
10866 2003-02-03  Patrik Torstensson
10867         * appdomain.[c|h], domain.c : 
10868          - Added support for getting a domain via domain id
10869          - Support for setting and getting domain from System.AppDomain 
10870            (used in cross appdomain channel)
10871          - Added support for get/set for a MonoAppContext on a thread 
10872            (Context class in System.Runtime.Remoting.Contexts),
10873          - Removed hack in Get/SetData and ExecuteAssembly.
10874         
10875         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
10876         the managed world to get control when a proxy is created.
10877
10878         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
10879         
10880 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
10881
10882         * icall.c
10883         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10884         Populate the codebase field as well.
10885
10886 2003-02-02  Martin Baulig  <martin@ximian.com>
10887
10888         * debug-mono-symfile.c
10889         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
10890         (mono_debug_symfile_add_method): Allow interncalls.
10891
10892 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10893
10894         * icall.c: throw parse exception if strtod fails or the string is empty.
10895
10896 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
10897
10898         * marshal.c: handle object type separately from defined
10899         class types.
10900
10901 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
10902
10903         * marshal.c: handle NATIVE_LPSTR for strings when it's
10904         explicitly specified.
10905
10906 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
10907
10908         * reflection.c, reflection.h, icall.c: setup the reflection
10909         handle cache for ModuleBuilders and AssemblyBuilders.
10910
10911 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
10912
10913         * reflection.c (reflection_methodbuilder_to_mono_method): set
10914         pinvoke flag
10915
10916 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10917
10918         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
10919
10920 2003-01-29  Dick Porter  <dick@ximian.com>
10921
10922         * threads.c: No need for the fake_thread kludge now that Thread
10923         doesn't run a class constructor
10924         
10925 2003-01-29  Dick Porter  <dick@ximian.com>
10926
10927         * threads.c: Use g_direct_hash instead of the rather bogus
10928         g_int_hash
10929
10930 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
10931
10932         * marshal.c (mono_marshal_get_native_wrapper): add check for null
10933         (fix pinvoke12.exe)
10934         (mono_marshal_get_struct_to_ptr): generate valid IL code
10935         (mono_marshal_get_ptr_to_struct): generate valid IL code
10936         (*): correctly set sig->pinvoke, we need to memdup the signature
10937         to do that
10938
10939 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10940
10941         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
10942         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
10943
10944 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
10945
10946         * profiler.c: provide more callers information.
10947
10948 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
10949
10950         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
10951
10952         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
10953
10954         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
10955
10956 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
10957
10958         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
10959         exception instead of going into an infinite loop on dates which it 
10960         can't yet handle.
10961
10962         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
10963         out-of-range exception if needed.
10964
10965         * class.c (mono_class_setup_vtable): allow a virtual method to provide
10966         an implementation for an interface method and to override an inherited
10967         method at the same time. 
10968         Imagine a scenario when a virtual method is used to override a
10969         virtual abstract method in a parent class, and this same method 
10970         provides an implementation for an method inherited from an interface. 
10971         In this case, the interface resolution code will set im->slot, which 
10972         means that the virtual method override pass will skip this method 
10973         which means a pointer to the abstract method inherited from the parent
10974         will remain in the vtable of this non-abstract class.
10975
10976         * class.c: (mono_class_setup_vtable): continue search for a real 
10977         method if only an abstract method is found.     
10978
10979 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
10980
10981         * reflection.c: add size to encoding for ByValStr and ByValArray
10982         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
10983
10984 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
10985
10986         * class.c (mono_class_setup_vtable): pass the override info as an
10987         argument.
10988
10989         * class.c (mono_class_setup_vtable): set the slot of overriding methods
10990         correctly.
10991         
10992         * reflection.c (ensure_runtime_vtable); add support for method 
10993         overrides.
10994         
10995 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
10996
10997         * reflection.c (resolution_scope_from_image): Hack to work to work with
10998         dynamic assemblies.
10999
11000         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
11001         added a 'force_ref' argument to force this function to allways return 
11002         a TypeRef. This is needed by mono_image_get_memberref_token ().
11003         
11004 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11005
11006         * reflection.c (mono_image_get_type_info): interfaces really don't have
11007         a parent.
11008
11009         * reflection.c (mono_image_basic_init): fill out missing fields of
11010         image structure.
11011
11012         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
11013         dynamic assemblies. This is required so dynamic assemblies show up in
11014         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
11015         Type::GetType() etc. This is consistent with MS behaviour.
11016
11017         * image.c image.h reflection.c: add newly created classes to the name 
11018         cache so mono_class_get () will find them.      
11019
11020 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11021
11022         First part of changes to get IKVM.NET running under mono.
11023         
11024         * appdomain.h, appdomain.c: added new function 
11025         mono_domain_try_type_resolve() which will emit TypeResolve events. 
11026         This function will call AppDomain::DoTypeResolve to do the actual work.
11027
11028         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
11029         moved existing code dealing with dynamic tokens to a new function 
11030         called mono_reflection_lookup_dynamic_token (). This function will 
11031         raise TypeResolve events when appropriate. Since reflection.c is not 
11032         part of libmetadata, a new hook function called 
11033         mono_lookup_dynamic_token() is added to class.c which will call this.
11034
11035         * assembly.h assembly.c: make the invoke_load_hook function public,
11036         so it can be called for dynamic assemblies.
11037
11038         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
11039
11040         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
11041         type isn't found.
11042
11043         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
11044         MonoGHashTable, since it contains pointers to objects which the GC 
11045         needs to track.
11046
11047         * assembly.c (search_loaded): remove unused variable.
11048         
11049 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
11050
11051         * object.c: fixed issue exposed by gcc-generated IL programs
11052         that use RVA data for pointers.
11053
11054 2003-01-25  Martin Baulig  <martin@ximian.com>
11055
11056         * threads.c (start_wrapper): Moved the initialization of
11057         `start_func' above the mono_new_thread_init() call to which we
11058         pass it as argument.
11059
11060 2003-01-24  Martin Baulig  <martin@ximian.com>
11061
11062         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
11063         the MonoThread pointer.
11064
11065 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
11066
11067         * icall.c: Rename `PowImpl' to Pow.
11068
11069 2003-01-23  Dick Porter  <dick@ximian.com>
11070
11071         * threads.c (start_wrapper): Create a Thread object if needed, so
11072         the Main() thread can do the class initialisation in a subthread
11073         that has been set up to allow managed code execution.
11074
11075         Pass the thread ID instead of the MonoThread pointer to the thread
11076         start and attach callbacks.  This change is required, because the
11077         jit thread start callback must be called _before_ the Thread
11078         object can be created.
11079         
11080         (mono_thread_init): Removed much object creation code that is no
11081         longer needed.  No managed code is called from here now.
11082
11083         * object.c (mono_runtime_exec_managed_code): Create a subthread
11084         for Main, and call back to the runtime to use it.
11085         Set the exit code when Main exits.
11086
11087         * gc.c: Make sure domain finalisation happens in a subthread.
11088         Re-enable threaded GC, fixing bug 31333 (again).
11089
11090         * environment.c: System.Environment internall calls (so far just
11091         ExitCode is here, the others are still in icall.c)
11092
11093         * appdomain.c (mono_runtime_cleanup): All threads running managed
11094         code should have finished before mono_runtime_cleanup() is
11095         reached, so no need to clean up threads.
11096
11097 2003-01-22  Martin Baulig  <martin@ximian.com>
11098
11099         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
11100         `gpointer func' arguments.      
11101         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
11102         but added `MonoThread *thread' argument.
11103         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
11104
11105         * threads.c (mono_new_thread_init): Added `gpointer func' argument
11106         and pass it to the mono_thread_start_cb callback.
11107         (mono_install_thread_callbacks): New public function to install a
11108         set of callbacks which are set by the debugger.
11109         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
11110
11111 2003-01-22  Martin Baulig  <martin@ximian.com>
11112
11113         * Makefile.am: Install debug-mono-symfile.h.
11114
11115 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
11116
11117         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
11118
11119 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
11120
11121         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
11122         * class.c (mono_ptr_class_get): correctly set access levels of pointers
11123         (mono_array_class_get): correctly set access levels of arrays
11124
11125 2003-01-20      Patrik Torstensson
11126         * image.h (MonoAssemblyName): changed major, minor, build, revision
11127         from signed to unsigned.
11128
11129 2003-01-20  sean kasun <skasun@azstarnet.com>
11130
11131         * reflection.c (load_cattr_value): Now this handles
11132         MONO_TYPE_SZARRAY.  Fixes bug #35629
11133
11134 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
11135
11136         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
11137         integer value
11138
11139 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11140
11141         * decimal.c: fixed bug #26056.
11142
11143 2003-01-17  Martin Baulig  <martin@ximian.com>
11144
11145         * gc.c: Raise an ExecutionEngineException instead of using g_error().
11146
11147 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11148
11149         * exception.[ch]:
11150         (mono_get_exception_type_initialization): new function.
11151
11152         * object.c: throw a TypeInitializationException when an exception is
11153         thrown invoking the class constructor.
11154
11155 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11156
11157         * reflection.c: fixed attribute reading.
11158
11159 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11160
11161         * icall.c:
11162         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
11163         provided, look for the type in the calling assembly and then in
11164         mscorlib; if the assembly name is provided, only try that one.
11165
11166 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
11167
11168         * object.c: register the vtable before there is a chance it's
11169         queried again recursively.
11170
11171 2003-01-13  Duncan Mak  <duncan@ximian.com>
11172
11173         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
11174         gc-internal.h. 
11175         
11176 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
11177
11178         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
11179
11180 2003-01-11  Martin Baulig  <martin@ximian.com>
11181
11182         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
11183         this to 20 for the release.
11184
11185 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
11186
11187         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
11188
11189         * loader.c (mono_method_get_marshal_info): bug fix
11190
11191         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
11192         structures with explicit layout
11193
11194 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11195
11196         * profiler.c: made the output more readable (and sorted). 
11197         Added caller information for the allocation profiler.
11198
11199 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
11200
11201         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
11202
11203 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11204
11205         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
11206         to get value types.
11207         
11208 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
11209
11210         * object.c, profiler.h, profiler.c, profiler-private.h:
11211         Added object allocation profiler.
11212
11213 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
11214
11215         * reflection.h, reflection.c: handle global methods.
11216         Compress blob entries.
11217
11218 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
11219
11220         * marshal.c: fix compilation.
11221
11222 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
11223
11224         * loader.c (mono_method_get_marshal_info): impl.
11225
11226         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
11227
11228 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11229
11230         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
11231         for reference types.
11232
11233 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
11234
11235         * loader.c: fixed off by one error in loaded parameter names.
11236
11237 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
11238
11239         * marshal.c (mono_marshal_get_icall_wrapper): like
11240         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
11241         instead of a MonoMethod.
11242
11243 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11244
11245         * decimal.c: fixed bug #36537.
11246
11247 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
11248
11249         * marshal.c: throw a missing method exception if a
11250         P/Invoke method is not found.
11251
11252 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11253
11254         * icall.c: allow a null this for constructors.
11255
11256 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
11257
11258         * icall.c: raise the proper exceptions if the arguments to the
11259         internal Invoke are incorrect.
11260
11261 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
11262
11263         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
11264
11265 2003-01-03  Martin Baulig  <martin@ximian.com>
11266
11267         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11268
11269 2002-12-31  Martin Baulig  <martin@ximian.com>
11270
11271         * debug-mono-symfile.c: Completely rewrote the type section.
11272         Instead of using individual malloc()ed fields, we use one big
11273         continuous memory area and offsets into this area.
11274         See the comments in the source code for details.
11275
11276 2002-12-30  Martin Baulig  <martin@ximian.com>
11277
11278         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
11279
11280 2002-12-30  Martin Baulig  <martin@ximian.com>
11281
11282         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
11283         line number table in this data blob instead of using an external
11284         pointer.
11285
11286 2002-12-28  Martin Baulig  <martin@ximian.com>
11287
11288         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11289
11290 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
11291
11292         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
11293         as a boxed return type.
11294
11295 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
11296
11297         * appdomain.c
11298         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
11299         g_build_filename to properly get separators on the filename created.
11300
11301         * object.h: Small change, introduce MonoMarshalByRefObject to
11302         track the layout of that structure in the C# universe as we make
11303         changes there.
11304
11305 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
11306
11307         * object.c: removed assert to allow static fields on interfaces.
11308         * loader.c: a TypeSpec may be used for any type, not just arrays.
11309
11310 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11311
11312         * class.c, class.h: added mono_class_array_element_size ().
11313         Ignore static methods in interfaces.
11314
11315 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11316
11317         * threads.c: fixed the build under cygwin.
11318
11319 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
11320
11321         * reflection.c: handle nullref constants. Allocate keys for
11322         reflection handles with the GC.
11323
11324 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11325
11326         * threads.c, threads.h: added mono_thread_get_abort_signal()
11327         to get a suitable signal for thread abort.
11328
11329 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11330
11331         * metadata.c: fix handling of ExportedType table.
11332
11333 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11334
11335         * icall.c: added WriteWindowsDebugString internal call.
11336
11337 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11338
11339         * reflection.h: added fields to match C# implementation.
11340
11341 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11342
11343         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
11344
11345 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
11346
11347         * gc.h, gc-internal.h: Rename header for GC internal calls to
11348         gc-internal.h from gc.h as to not clash with Boehm GC having its
11349         header installed as <gc.h> in outside include paths.
11350         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
11351         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
11352
11353 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11354
11355         * icall.c: assign minor, build and revision in FillName.
11356
11357 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
11358
11359         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
11360         Added support for running code generated by Reflection.Emit.
11361
11362 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11363
11364         * appdomain.c: check for NULL argument in LoadFrom.
11365
11366 2002-12-10  Dick Porter  <dick@ximian.com>
11367
11368         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
11369
11370 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11371
11372         * appdomain.c: fix buglet when building exe file name.  Handle full
11373         assembly name (needed after latest changes to AssemblyName).
11374         * image.c:
11375         (mono_image_close): free some hashtables.
11376
11377 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
11378
11379         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
11380         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
11381         on some systems (redhat 7.3) 
11382
11383 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
11384
11385         * threads.c: delete the critical section of a sync block,
11386         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
11387
11388 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
11389
11390         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
11391
11392 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11393
11394         * appdomain.[ch]: handle the assembly preload event to try loading the
11395         assemblies using the paths we have in the current domain.
11396
11397         * assembly.[ch]: created an assembly preload hook that is called to try
11398         loading the assembly by other means that the ones provided here.
11399
11400         * domain.c: initialize the domain search path.
11401
11402         From now on, assemblies (TODO: except corlib and System) are loaded
11403         according to these rules when using mono_assembly_load ():
11404
11405                 1. It tries to load the assembly from the ApplicationBase
11406                 of the current domain appending .dll and .exe (TODO: have to
11407                 try loading from name/name.dll and name/name.exe).
11408
11409                 2. It tries the search path specified in PrivateBinPath for the
11410                 current domain (if any).
11411
11412                 3. Previous behavior.
11413
11414 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
11415
11416         * icall.c: implemented GetInterfaceMap() related icall.
11417         * domain.c, loader.h: load MethodInfo in mono_defaults.
11418
11419 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11420
11421         * gc.c: disable the finalizer thread for now, untill all the issues
11422         with it are resolved.
11423
11424 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11425
11426         * string-icalls.c: handle embedded nulls in string ctor when the
11427         length is specified.
11428
11429 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11430
11431         * class.c: look for explicit interface implementation in parent
11432         classes, too.
11433
11434 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
11435
11436         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
11437
11438 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
11439
11440         * gc.c: protect handles with a critical section.
11441
11442 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11443
11444         * icall.c:
11445         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
11446         parameters. If no assembly specified, try getting the type from all
11447         the assemblies in the current domain, else, load the assembly and get
11448         the type from it.
11449
11450 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11451
11452         * marshal.c: applied patch from Aleksey Demakov that fixes
11453         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
11454
11455 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11456
11457         * icall.c: fixed get_location.
11458
11459 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
11460
11461         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
11462         declarations to make it work with older gcc. 
11463
11464         * loader.c (mono_get_method): set signature->pinvoke for native calls
11465
11466 2002-11-20  Dick Porter  <dick@ximian.com>
11467
11468         * threads.c (mono_thread_init): Set the main thread's handle
11469
11470 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11471
11472         * gc.c: allow compilation without GC support. Changed to match the
11473         mono coding style.
11474
11475 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11476
11477         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
11478
11479 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
11480
11481         * reflection.c: set a public key token on the core assemblies.
11482
11483 2002-11-18  Dick Porter  <dick@ximian.com>
11484
11485         * threads.c: Split out some thread initialisation so that other
11486         files can set the start callback function.
11487
11488         * gc.c: Run finalisers in a separate thread, to avoid stack
11489         overflow.  Fixes bug 31333.
11490
11491         * appdomain.c: Set up GC finalisation thread.
11492
11493         * reflection.c: 
11494         * object.c: 
11495         * domain.c: Use gc.h macros for GC_malloc
11496         
11497 2002-11-15  Dick Porter  <dick@ximian.com>
11498
11499         * threadpool.c: 
11500         * threads.c:
11501         * appdomain.c: Removed mono_runtime_init_with_attach(),
11502         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
11503         merging the extra parameter with the existing function.  Removed
11504         unneeded code in mono_thread_attach().
11505
11506 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
11507
11508         * image.c (mono_image_loaded_by_guid): a method to get loaded
11509         images by guid. 
11510         (load_metadata_ptrs): we store the guid as string.
11511
11512 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
11513
11514         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
11515
11516         * metadata.c (mono_guid_to_string): imported method form Zoltan
11517         Varga (slightly modified)
11518
11519         * assembly.c (mono_assembly_open): load precompiled code
11520
11521         * loader.h (MonoMethod): we store the method token for use in the
11522         aot compiler. 
11523
11524 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11525
11526         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
11527         the hook function called when an assembly is loaded.
11528         
11529         * domain.c: Modified file.
11530         (mono_domain_assembly_load): removed hash table insertion of assemblies.
11531
11532         Fixes bug #33196.
11533
11534 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
11535
11536         * reflection.c: Map PEFileKind to the value expected by the WinNT
11537         image loader. 
11538
11539 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11540
11541         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
11542         Read until the buffer is filled completely.
11543
11544 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11545
11546         * icall.c: implemented MonoType.InternalGetEvent ().
11547
11548 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11549
11550         * appdomain.c: implemented InitAppDomainSetup. Delayed
11551         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
11552         the entry_assembly.
11553
11554         * assembly.c: base_dir is now an absolute path ending with
11555         G_DIR_SEPARATOR.
11556
11557         * icall.c: modified get_location according to the above changes.
11558
11559         * object.c: init AppDomain.SetupInformation for the default domain after
11560         we have the entry assembly.
11561
11562         * domain.c: when unloading a domain, setup = NULL.
11563
11564 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
11565
11566         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
11567
11568 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
11569
11570         * object.h, object.c: introduced mono_object_get_virtual_method ()
11571         to lookup the method invoked on an object when a callvirt is done on
11572         a method.
11573         * icall.c: make MethodInfo::Invoke() always do a virtual call.
11574
11575 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11576
11577         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
11578         current domain when loaded an assembly and failed to load it.
11579
11580         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
11581
11582 2002-10-31  Dick Porter  <dick@ximian.com>
11583
11584         * icall.c: 
11585         * file-io.h: 
11586         * file-io.c: Return the error status in a parameter, as the
11587         GetLastError() value has long since been blown away if we try and
11588         look it up in a subsequent internal call invocation.  Delete the
11589         GetLastError() internal call, because it's useless.
11590
11591 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
11592
11593         * class.[ch]: added cast_class to fix bug 29517
11594
11595 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
11596
11597         * marshal.c: create valid IL code in the filter clause:
11598         the new JIT is less forgiving:-)
11599
11600 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11601
11602         * icall.c: removed get_property internal call.
11603
11604 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
11605
11606         * appdomain.h domain.c: Added an ID to appdomains.
11607         
11608         * threads.c threads.h icall.c: Implement icall
11609         Thread:GetDomainID(), and remove unused icall 
11610         CurrentThreadDomain_internal.
11611
11612 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11613
11614         * icall.c: Don't recurse through the base types in GetConstructor.
11615         Fixes bug #32063. 
11616
11617 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
11618
11619         * mempool.h, mempool.c: added mono_mempool_empty() and
11620         mono_mempool_stats().
11621
11622 2002-10-23  Dick Porter  <dick@ximian.com>
11623
11624         * file-io.c: 
11625         * file-io.h: 
11626         * icall.c: Added MonoIO.GetFileType internal call
11627
11628 2002-10-17  Dick Porter  <dick@ximian.com>
11629
11630         * appdomain.c (mono_runtime_cleanup): Don't signal the async
11631         delegate semaphore before waiting for all threads to finish,
11632         because new threads can also call async delegates.  Fixes bug
11633         32004.
11634
11635         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
11636         of 3 seconds, in case another async job is queued.  (This part is
11637         needed because the bug fix reintroduced the 3s exit lag.)  This
11638         makes the mono_runtime_shutdown flag superfluous.
11639
11640 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11641
11642         * reflection.c: include ehader size in method section headers.
11643         Really check for suplicated modules entries.
11644
11645 2002-10-17  Martin Baulig  <martin@gnome.org>
11646
11647         * debug-mono-symfile.c: Added back support for locals.
11648
11649 2002-10-14  Martin Baulig  <martin@gnome.org>
11650
11651         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
11652         MONO_TYPE_VOID.
11653
11654 2002-10-14  Martin Baulig  <martin@gnome.org>
11655
11656         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
11657         mono_class_get() instead of looking in the class cache. 
11658
11659 2002-10-13  Martin Baulig  <martin@gnome.org>
11660
11661         * debug-mono-symfile.c: Set version number to 28, include the
11662         signature in method names.
11663
11664 2002-10-13  Martin Baulig  <martin@gnome.org>
11665
11666         * debug-mono-symfile.h: Set version number to 27.
11667
11668 2002-10-11  Martin Baulig  <martin@gnome.org>
11669
11670         * gc.c: Don't register/unregister NULL pointers as disappearing links.
11671
11672 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11673
11674         * metadata.c, metadata.h: added helper function to allocate signatures.
11675
11676 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11677
11678         * icall.c: added internal call to get the location of machine.config.
11679
11680 2002-10-08  Martin Baulig  <martin@gnome.org>
11681
11682         * debug-mono-symfile.c: Ignore classes with a pending init for the
11683         moment.
11684
11685 2002-10-03  Dick Porter  <dick@ximian.com>
11686
11687         * threads.c: Freebsd pthread_t is a pointer
11688
11689 2002-10-03  Dick Porter  <dick@ximian.com>
11690
11691         * socket-io.c: Implemented GetHostName_internal
11692
11693 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11694
11695         * mono-config.c:
11696         (mono_config_parse_file): don't leak the text.
11697
11698 2002-10-02  Martin Baulig  <martin@gnome.org>
11699
11700         * debug-mono-symfile.c: Added support for methods.
11701
11702 2002-10-01  Martin Baulig  <martin@gnome.org>
11703
11704         * debug-mono-symfile.c: Don't emit methods and line numbers for
11705         the dynamic symbol file, just write the type table.  We can easily
11706         have an external helper program which creates a symbol file for an
11707         IL file.        
11708
11709 2002-10-01  Dick Porter  <dick@ximian.com>
11710
11711         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
11712         Only add the handle to the cleanup array when we're about to
11713         launch the thread.  Bug 31425 deadlocked when the test was run on
11714         mono under w32.
11715
11716 2002-10-01  Martin Baulig  <martin@gnome.org>
11717
11718         * debug-mono-symfile.c: Added support for properties.
11719
11720 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11721
11722         * reflection.c: unaligned store fix from Mark Crichton
11723         <crichton@gimp.org>.
11724
11725 2002-09-27  Martin Baulig  <martin@gnome.org>
11726
11727         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
11728         New interncall.
11729
11730 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11731
11732         * assembly.h, assembly.c: use a sane API to hook into the assembly
11733         loading process instead of a useless special-purpouse hack
11734         (ngen needs a hook, too, for example).
11735
11736 2002-09-27  Dick Porter  <dick@ximian.com>
11737
11738         * threads.c (mono_thread_init): Call GetCurrentProcess() so
11739         io-layer can set up some process handle info.  Not needed on w32,
11740         but doesn't hurt either.
11741
11742         * process.c: Pass the program name in the second parameter to
11743         CreateProcess, so the path is searched.  Include the working
11744         directory. Implemented process name, process enumeration, and some
11745         process detail internal calls.
11746         
11747         * icall.c: Added internal calls for process lookup, and some
11748         process details
11749
11750 2002-09-26  Martin Baulig  <martin@gnome.org>
11751
11752         * assembly.c (mono_install_open_assembly_hook): New global
11753         function to install a function to be invoked each time a new
11754         assembly is loaded.
11755         (mono_assembly_open): Run this callback function if set.
11756
11757         * debug-mono-symfile.c: Put back line numbers for the dynamic
11758         symbol file and also record the .il file as source file.  This
11759         allows us to install the temporary symbol file as `file.dbg' just
11760         like a compiler-generated one.
11761
11762 2002-09-26  Nick Zigarovich <nick@chemlab.org>
11763
11764         * Corrected typo in gc.c (BOHEM vs BOEHM).
11765
11766 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11767
11768         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
11769         GetProperties. Also avoid calling g_slist_length in GetProperties and
11770         GetMethods.
11771
11772 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11773
11774         * reflection.c: avoid unaligned stores (bug spotted by
11775         Mark Crichton  <crichton@gimp.org>).
11776
11777 2002-09-25  Martin Baulig  <martin@gnome.org>
11778
11779         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
11780         instead of guint64 for addresses and added prologue/epilogue info.
11781
11782 2002-09-25  Martin Baulig  <martin@gnome.org>
11783
11784         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
11785         store line number info.  For the dynamic symbol file, we only need
11786         to provide the JIT generated dynamic line number info for the dynamic
11787         symbol file.
11788
11789 2002-09-25  Martin Baulig  <martin@gnome.org>
11790
11791         * debug-mono-symfile.h: Incremented version number.
11792
11793 2002-09-24  Martin Baulig  <martin@gnome.org>
11794
11795         * class.c (mono_debugger_class_init_func): New global function
11796         pointer variable.
11797         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
11798         call it.
11799
11800         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
11801         function.  This is called via the mono_debugger_class_init_func
11802         hook to add all types to the dynamic type table.
11803         (ves_icall_MonoDebugger_GetType): New interncall to get a class
11804         from its metadata token.
11805
11806         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
11807         New interncall for the debugger.
11808
11809 2002-09-24  Nick Drochak <ndrochak@gol.com>
11810
11811         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
11812         before using it in case it is null.
11813         
11814 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11815
11816         * metadata.c: allow custom modifiers in local var signatures
11817         (bug spotted by Zoltan Varga).
11818
11819 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11820
11821         * class.c: deal with the <Module> class that may have a NULL vtable.
11822         Eliminate warnings.
11823
11824 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11825
11826         * image.c, image.h: more strong name helpers.
11827         * monosn.c: more work: convert pem keys to cryptoapi format.
11828
11829 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11830
11831         * string-icalls.c: speedup IndexOf.
11832
11833 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11834
11835         * icall.c: updates from Zoltan.2.Varga@nokia.com.
11836
11837 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
11838
11839         * icall.c: cleanup: use mono_object_domain ().
11840
11841 2002-09-23  Martin Baulig  <martin@gnome.org>
11842
11843         * debug-mono-symfile.c: Improved type support.
11844
11845 2002-09-22  Martin Baulig  <martin@gnome.org>
11846
11847         * debug-mono-symfile.c: Added support for reference types and strings.
11848
11849 2002-09-22  Martin Baulig  <martin@gnome.org>
11850
11851         * debug-mono-symfile.c: Started to work on the type table.
11852
11853 2002-09-21  Martin Baulig  <martin@gnome.org>
11854
11855         * debug-mono-symfile.c: Largely reworked the symbol table format.
11856         The symbol table is now incrementally updated each time a new
11857         method is added.  We're now also using our own magic and version
11858         so that you don't need to recompile all your classes if the
11859         dynamic table changes.
11860         (mono_debug_update_mono_symbol_file): Removed.
11861         (mono_debug_symfile_add_method): New function to add a method.
11862
11863 2002-09-21  Martin Baulig  <martin@gnome.org>
11864
11865         * icall.c
11866         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
11867         New interncall.
11868
11869         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
11870         New interncall to get a method from its metadata token.
11871
11872 2002-09-21  Martin Baulig  <martin@gnome.org>
11873
11874         * debug-mono-symfile.c: Create type table.
11875
11876 2002-09-20  Martin Baulig  <martin@gnome.org>
11877
11878         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
11879
11880 2002-09-20  Martin Baulig  <martin@gnome.org>
11881
11882         * debug-mono-symfile.c: Provide information about params and locals.
11883
11884 2002-09-20  Martin Baulig  <martin@gnome.org>
11885
11886         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
11887         New interncall.
11888
11889         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
11890         interncall to get a method from its metadata token.
11891
11892 2002-09-20  Martin Baulig  <martin@gnome.org>
11893
11894         * debug-mono-symfile.c: Added a few checks for method->header
11895         being non-NULL.  This should never happen, but for the moment
11896         let's use a g_warning() rather than a g_assert().
11897
11898 2002-09-19  Mark Crichton  <crichton@gimp.org>
11899
11900         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
11901         even if support for it isn't present.  Added an #ifdef to fix this.
11902
11903         * socket-io.c: Added checks back for Solaris support.
11904
11905 2002-09-19  Martin Baulig  <martin@gnome.org>
11906
11907         * debug-mono-symfile.c (read_string, write_string): Reflect latest
11908         changes in the symbol file format.
11909
11910 2002-09-18  Martin Baulig  <martin@gnome.org>
11911
11912         * debug-mono-symfile.c: Set version number to 21.
11913
11914 2002-09-18  Dick Porter  <dick@ximian.com>
11915
11916         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
11917         on netbsd.  Fixes bug 30051.
11918
11919 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11920
11921         * reflection.c:
11922         (set_version_from_string): little fix.
11923
11924 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11925
11926         * monosn.c, Makefile.am: added strong name utility.
11927         * reflection.h, reflection.c: implemented delayed signing,
11928         locale, version and hash id assembly attributes.
11929
11930 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11931
11932         * loader.c, metadata.c: load param attributes in signatures.
11933
11934 2002-09-16  Martin Baulig  <martin@gnome.org>
11935
11936         * debug-mono-symfile.c: Added string table with all method names.
11937
11938 2002-09-14  Martin Baulig  <martin@gnome.org>
11939
11940         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
11941         fast method lookup.
11942
11943 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11944
11945         * reflection.c: record the public key token of referenced assemblies.
11946
11947 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11948
11949         * image.c, image.h: added functions to get the strong name and the
11950         public key of an assembly.
11951         * pedump.c: use them.
11952
11953 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
11954
11955         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
11956
11957 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
11958
11959         * marshal.c (mono_marshal_get_managed_wrapper): Added
11960         MONO_TYPE_BOOLEAN 
11961
11962 2002-09-11  Martin Baulig  <martin@gnome.org>
11963
11964         * gc.c: Call GC_unregister_disappearing_link() on all links when
11965         finalizing them, this is necessary to aviod a crash in boehm's
11966         finalize handler.
11967
11968 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11969
11970         * gc.c: handle GetTarget for finalized objects spotted and fixed by
11971         nick@chemlab.org.
11972
11973 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
11974
11975         * icall.c: implemented MonoType::Module.
11976         * reflection.c, reflection.h: mono_module_get_object () from
11977         Tomi Pakarinen <tomi.pakarinen@welho.com>.
11978
11979 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11980
11981         * icall.c: ignore overridden methods in GetMethods ().
11982         Fix for FieldInfo::SetValue().
11983         * object.c: handle float/double in runtime invoke.
11984
11985 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11986
11987         * object.c: allow a constructor to be called again on an object.
11988
11989 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11990
11991         * class.h, class.c: move field layout code to it's own function and
11992         export it. Get an interface id earlier. Move fields in MonoClass
11993         so they are more cache friendly and align the bitfields.
11994         * loader.c: temporary handle get_param_names() for a runtime method.
11995         * reflection.c, reflection.h: more code to handle runtime creation of
11996         types.
11997
11998 2002-09-09  Martin Baulig  <martin@gnome.org>
11999
12000         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
12001         signature with the pinvoke field being set for the actual call.
12002
12003 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12004
12005         * icall.c: removed some unused icalls. Start of map of glib charsets
12006         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
12007
12008 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12009
12010         * debug-helpers.c: break infinite loop (found and fixed by
12011         Holger Arnold <harnold@gmx.de>).
12012
12013 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12014
12015         * icall.c: target may be null in create_delegate.
12016
12017 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12018
12019         * marshal.c: handle a boolean return type.
12020
12021 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12022
12023         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
12024
12025 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12026
12027         * gc.c: fix weakreferences.
12028
12029 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12030
12031         * icall.c: added icall to get default codepage.
12032
12033 2002-09-03  Dick Porter  <dick@ximian.com>
12034
12035         * threads.h: 
12036         * threads.c: Use MonoThread instead of MonoObject where
12037         apropriate.
12038
12039         Store running thread objects in a hash table, so that we have all
12040         the info to hand when waiting for them to finish
12041         (means we don't need OpenThread() any more, so mingw builds should
12042         be fully functional again.)
12043
12044         * verify.c:
12045         * object.h: Added thread ID to MonoThread
12046
12047 2002-09-03  Martin Baulig  <martin@gnome.org>
12048
12049         * icall.c (System.Reflection.Assembly::get_location): New interncall.
12050
12051 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12052
12053         * icall.c: fixed leak in get_temp_path. Thanks lupus.
12054
12055 2002-09-03  Martin Baulig  <martin@gnome.org>
12056
12057         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
12058         argument to store the end address of the disassembled instruction.
12059
12060         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
12061         here from debug-symfile.h.
12062         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
12063         JIT into this struct.
12064         (MonoSymbolFile): Added `char *image_file' field.
12065         (MonoDebugGetMethodFunc): Removed.
12066         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
12067         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
12068         (mono_debug_find_method): New method.
12069
12070         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
12071         create a full symbol file.
12072         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
12073         and static symbol files.
12074         (mono_debug_find_method): The symbol file keeps an internal method hash,
12075         call this to get a MonoDebugMethodInfo from a MonoMethod.
12076
12077         * debug-symfile.[ch]: Removed.
12078
12079 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
12080
12081         * image.c (do_mono_image_open): Remove linker version check.
12082
12083 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
12084
12085         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
12086         wrappers for instance methods.
12087         
12088 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12089
12090         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
12091
12092 2002-08-28  Dick Porter  <dick@ximian.com>
12093
12094         * Makefile.am: Export HOST_CC for w32 builds
12095
12096 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12097
12098         * file-io.c process.c: MonoString are null terminated, no
12099         need for mono_string_to_utf16() anymore.
12100
12101 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12102
12103         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
12104
12105 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
12106
12107         * icall.c, reflection.h: speedup System.MonoType.
12108
12109 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
12110
12111         * reflection.c: allow null as the value of a string argument in
12112         custom attributes constructors.
12113
12114 2002-08-27  Martin Baulig  <martin@gnome.org>
12115
12116         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
12117         `trampoline_address' field.
12118
12119 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
12120
12121         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
12122         check (fixes bug #29486) 
12123
12124 2002-08-27  Martin Baulig  <martin@gnome.org>
12125
12126         * debug-mono-symfile.c: Changed the file format in a way that allows us
12127         open it read-only and to use a specially malloced area for all the
12128         dynamic data.  We can now also generate a symbol file on-the-fly if we're
12129         debugging IL code and there is no MCS generated symbol file for it.
12130
12131 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
12132
12133         * object.c: added a define for a good string and array
12134         creation speedup (not enabled by default because we need to deal with
12135         the synch stuff).
12136
12137 2002-08-26  Martin Baulig  <martin@gnome.org>
12138
12139         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
12140         function to create a dynamic symbol file.  This is used by the
12141         debugger to create a symbol file for IL code on-the-fly.
12142
12143 2002-08-26  Martin Baulig  <martin@gnome.org>
12144
12145         * loader.c (mono_lookup_pinvoke_call): Include the error message
12146         from g_module_error() in the error message.
12147
12148 2002-08-24  Martin Baulig  <martin@gnome.org>
12149
12150         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
12151         function to update the symbol file.  The symbol file is mmap()ed
12152         writable, but private.  This allows us to install the symbol file
12153         together with the assembly.
12154
12155 2002-08-24  Martin Baulig  <martin@gnome.org>
12156
12157         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
12158         but they can read the new symbol file format which mcs is now creating.
12159
12160         * debug-symfile.c (mono_debug_find_source_location): Moved to
12161         debug-mono-symfile.c; this is now operating on the new symbol file.
12162
12163 2002-08-23  Martin Baulig  <martin@gnome.org>
12164
12165         * debug-helpers.c (mono_method_desc_from_method): New function to get
12166         a MonoMethodDesc from a MonoMethod.
12167
12168 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12169
12170         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
12171         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
12172
12173 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
12174
12175         * string-icalls.[ch]: make helper methods static.
12176
12177 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12178
12179         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
12180         types to it and to SetValueInternal.
12181
12182         * object.c: Moved handle_enum label to its proper place. This was the
12183         f... bug! ;-)
12184
12185         This time i compiled mcs and gtk-sharp and they both work.
12186
12187 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12188
12189         * icall.c: reverted partially my previous patch until 
12190         object.c:set_value handles enums correcly.
12191
12192 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12193
12194         * icall.c:
12195         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
12196         (ves_icall_System_Environment_get_MachineName): removed warning when
12197         compiling under cygwin.
12198
12199 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12200
12201         * object.c: fixed field_get_value() for reference types.
12202
12203 2002-08-22  Dick Porter  <dick@ximian.com>
12204
12205         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
12206         Don't free a buffer while it's still needed.  Patch from Jonathan
12207         Liger <Jonathan.liger@wanadoo.fr>
12208
12209 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
12210
12211         * icall.c (ves_icall_System_Environment_get_Platform): Add new
12212         internal call.
12213
12214 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
12215
12216         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
12217         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
12218
12219         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
12220         we call unmanaged code which throws exceptions.
12221
12222 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12223
12224         * appdomain.h: added per-domain entry_assembly.
12225         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
12226         arguments.
12227         * icall.c: Assembly::GetEntryAssembly icall.
12228         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
12229         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
12230
12231 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12232
12233         * appdomain.h, gc.c: added mono_domain_finalize ().
12234
12235 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12236
12237         * object.c:
12238         (mono_print_unhandled_exception): changed g_warning by g_printerr
12239         because g_log has a 1024 characters limit (yeah, i got a big stack
12240         trace). Don't print exception name, that should be in ToString 
12241         returned string.
12242
12243 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12244
12245         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
12246         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
12247
12248 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12249
12250         * object.c:
12251         (mono_print_unhandled_exception): after previous commit, i realized
12252         that MS calls ToString on the exception. I changed this function to
12253         do that. This way we get stack_trace for free.
12254
12255 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12256
12257         * object.c:
12258         (mono_print_unhandled_exception): invoke Message property instead of
12259         getting 'message' field from Exception. Don't allocate memory for
12260         'trace' and 'message' if not needed.
12261
12262 2002-08-18  Dick Porter  <dick@ximian.com>
12263
12264         * unicode.c: Fix asserts to match Encoder.cs checks
12265
12266 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12267
12268         * marshal.c: fix unaligned store issue and a few wrong
12269         opcode argument types.
12270
12271 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12272
12273         * icall.c: added GetUninitializedObjectInternal internal call.
12274
12275 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
12276
12277         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
12278         to the right domain.
12279
12280 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
12281
12282         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
12283
12284         * class.c (class_compute_field_layout): set blittable to false for Strings
12285
12286         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
12287
12288 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12289
12290         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
12291         first chunk of code to create types at runtime. Code to
12292         handle ReflectedType/DeclaringType. Make reflection handles
12293         domain specific.
12294
12295 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
12296
12297         * class.c: set correct name in arrays.
12298
12299 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
12300
12301         * appdomain.c (mono_domain_transfer_object): make it work with
12302         valuetypes. bug fixes.
12303
12304 2002-08-12  Dick Porter  <dick@ximian.com>
12305
12306         * object.h: Rename some parameters to avoid c++ keywords (Patch
12307         from Joseph Wenninger <kde@jowenn.at>)
12308
12309 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
12310
12311         * icall.c: added icall to implement Assembly.GetFile*.
12312
12313 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12314
12315         * reflection.h, reflection.c: code to embed managed resources.
12316
12317 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12318
12319         * class.c: move all the type size stuff into
12320         class_compute_field_layout().
12321
12322 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12323
12324         * class.c: ensure enums have always the correct instance size.
12325         * unicode.c: remove wrong assert.
12326
12327 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12328
12329         * assembly.c: fix mem corruption issue.
12330         * image.h, image.c: added mono_image_get_resource () to access
12331         managed resources.
12332         * icall.c: implemented Assembly.EntryPoint property and some
12333         Managed Resources related internalcalls.
12334
12335
12336 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12337
12338         * image.c, image.h: impemented mono_image_get_entry_point ().
12339         * appdomain.c: use mono_image_get_entry_point.
12340
12341 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12342
12343         * reflection.c: support the object type argument when loading
12344         custom attributes.
12345
12346 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
12347
12348         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
12349         String as return type.
12350
12351 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
12352
12353         * reflection.c: fix encoding of named args for custom attrs to match
12354         the ms implementation. Read them back when instantiating custom
12355         attributes.
12356
12357 2002-08-02  Radek Doulik  <rodo@ximian.com>
12358
12359         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
12360         by Dietmar as quick fix
12361         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
12362         16 as stack size, used on more places as quick fix before Dietmar
12363         will fix it properly
12364
12365 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12366
12367         * object.h, object.c: added accessors for fields and properties.
12368
12369 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12370
12371         * class.c, class.h: made mono_class_get_field_from_name ()
12372         loop on parent types.
12373         Added mono_class_get_property_from_name ().
12374
12375 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12376
12377         * class.c, class.h: move the code to setup the type vtable in its own
12378         function so that it can be reused also for types created at runtime.
12379         Eliminate the "class" identifier from the header file.
12380         * reflection.c: setup the vtable for enums so that we can create
12381         objects for use in SetConstant ().
12382
12383 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
12384
12385         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
12386         instead of the delegate itself as this pointer (bug #28383)
12387
12388 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
12389
12390         * marshal.c (mono_marshal_get_managed_wrapper): added return type
12391         conversions.
12392
12393 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12394
12395         * loader.c: don't set the pinvoke bit on icalls.
12396
12397 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
12398
12399         * debug-helpers.c (mono_method_full_name): only print a number to
12400         indicate wrapper type (so that the output is more readable in traces).
12401
12402 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
12403
12404         * class.c (mono_class_init): include method override patch from Paolo
12405
12406 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
12407
12408         * icall.c: fixed GetTypeCode().
12409
12410 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
12411
12412         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
12413         use real delegate invoke function to make it work with multicast
12414         delegates (fix bug# 28291).
12415
12416 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12417
12418         * object.c: load constant strings.
12419
12420 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12421
12422         * reflection.c: no magic numbers.
12423         * tabledefs.h: security action enum.
12424
12425 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12426
12427         * assembly.c: fix possible memory corruption.
12428
12429 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12430
12431         * reflection.h, reflection.c: added support for linking resources.
12432         * verify.c: check we have an updated corlib.
12433
12434 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
12435
12436         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
12437         string arrays.
12438         (mono_marshal_string_array): null terminate unmanaged string arrays.
12439         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
12440
12441 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12442
12443         * icall.c: Type.GetType () can now return also types from the
12444         calling assembly.
12445
12446 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12447
12448         * loader.h, loader.c: stack walking support.
12449         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
12450         GetCallingAssembly.
12451
12452 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
12453
12454         * marshal.c: added optimisations for blittable types 
12455
12456         * class.c (mono_array_class_get): do not set blittable attribute on arrays
12457         (mono_class_setup_mono_type): set blittable attribute for single
12458         and double.
12459
12460         * marshal.c (mono_string_utf8_to_builder): impl.
12461         (mono_string_builder_to_utf8): impl.
12462         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
12463
12464 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
12465
12466         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
12467         (mono_marshal_get_managed_wrapper): impl. byref types
12468
12469 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12470
12471         * icall.c:
12472         (search_method): don't display debug message. 
12473
12474 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
12475
12476         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
12477
12478 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12479
12480         * appdomain.c: set the missing filename when throwing exception.
12481
12482 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
12483
12484         * metadata.c (mono_type_size): code cleanup
12485         (mono_type_stack_size): removed some test code
12486
12487 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
12488
12489         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
12490         mono_get_exception_file_not_found now.
12491
12492         * exception.c (mono_exception_from_name_two_strings): New version
12493         that will call a constructor with two string arguments. 
12494         (mono_get_exception_file_not_found): New helper routine, used to
12495         report file-not-found errors.
12496
12497 2002-07-20  Dick Porter  <dick@ximian.com>
12498
12499         * process.h:
12500         * process.c: Pass file handles to CreateProcess
12501         
12502         * icall.c:
12503         * file-io.h:
12504         * file-io.c: Implemented CreatePipe
12505
12506 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
12507
12508         * metadata.c (mono_get_param_info): set alignment for value types
12509
12510 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12511
12512         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
12513         Constify mono_domain_assembly_open().
12514         * loader.c: handle null namespace in icalls.
12515
12516 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
12517
12518         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
12519         (emit_str_to_ptr_conv): marshal object as structs
12520
12521         * metadata.c (mono_type_to_unmanaged): marshal object as structs
12522
12523         * marshal.c (mono_marshal_get_runtime_invoke): support value types
12524
12525 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
12526
12527         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
12528         (mono_marshal_get_native_wrapper): we an now return value types
12529
12530 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12531
12532         * verify.c: more checks implemented.
12533
12534 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
12535
12536         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
12537         (fix bug #27695)
12538         (mono_marshal_get_native_wrapper): allow byref arguments
12539         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
12540         impl. PtrToStringXXX methods
12541         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
12542         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
12543         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
12544         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
12545         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
12546
12547 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12548
12549         * reflection.c: fix buglet in parsing an assembly name.
12550
12551 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
12552
12553         * marshal.c (emit_ptr_to_str_conv): first impl.
12554
12555 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12556
12557         * object.c, class.h: cache the vtable in the class as suggested by
12558         vargaz@freemail.hu (Zoltan Varga).
12559
12560 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12561
12562         * class.h, loader.c: added mono_field_from_token().
12563         * verify.c: first cut of type checking code.
12564
12565 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
12566
12567         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
12568
12569 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
12570
12571         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
12572         (fix bug #27782)
12573         (mono_marshal_get_remoting_invoke): impl.
12574         (mono_delegate_begin_invoke): impl.
12575         (mono_mb_emit_save_args): impl.
12576         (mono_delegate_end_invoke): impl.
12577         (mono_marshal_get_delegate_begin_invoke):
12578         (mono_marshal_get_delegate_end_invoke):
12579         (mono_marshal_get_delegate_invoke): generate a special name for
12580         those methods (including the signature) and associate them whith
12581         the delegate class. 
12582
12583 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
12584
12585         * reflection.[ch]: 
12586         (mono_reflection_type_from_name): now it has a MonoImage parameter
12587         which is used as the default image to search the type in. If the image
12588         is NULL or getting the type from it fails, it defaults to corlib.
12589
12590         * icall.c: changed 1 call to mono_reflection_type_from_name to match
12591         new parameter.
12592
12593 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12594
12595         * reflection.c: update the parameter table index.
12596
12597 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12598
12599         * domain.c: don't include the mark byte in the string hash.
12600
12601 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12602
12603         * icall.cs: icall for Type.GetTypeCode ().
12604         * verify: a couple of fixes and disabled local initialization checks.
12605
12606 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
12607
12608         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
12609
12610         * debug-helpers.c (mono_method_full_name): print the type of the
12611         runtime wrapper
12612
12613         * metadata.c (mono_signature_hash): a hash function for signatures
12614         (mono_signature_hash): better hash algorithm
12615
12616         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
12617
12618         * debug-helpers.c (mono_method_full_name): this can now generate
12619         method names with signatures
12620
12621         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
12622         method dont have this pointers.
12623
12624 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
12625
12626         * reflection.c: fixup typebuilder tokens.
12627         * image.c: fix buglet.
12628         * marshal.h: remove whitespace.
12629         * metadata.h, metadata.c: reinstate code that was removed.
12630         * verify.c: handle catch directives and fix another couple of bugs.
12631
12632 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
12633
12634         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
12635         (mono_marshal_get_native_wrapper): make it comp. with the old code
12636         (mono_marshal_get_native_wrapper): support boolean
12637         (mono_marshal_get_managed_wrapper): support more types
12638
12639 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
12640
12641         * class.c (class_compute_field_layout): compute class->blittable attribute.
12642
12643 2002-07-09  Dick Porter  <dick@ximian.com>
12644
12645         * threads.c: Make the thread cleaning up cope with threads that
12646         call ExitThread()
12647
12648 2002-07-08  Radek Doulik  <rodo@ximian.com>
12649
12650         * reflection.c (method_encode_code): use non-translated values to
12651         compute finally_start, this fixes exception handling on ppc, yay!
12652
12653         * decimal.h (struct signscale): fix endianess
12654
12655 2002-07-07  Radek Doulik  <rodo@ximian.com>
12656
12657         * reflection.c: swap box_val and not val
12658
12659 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
12660
12661         * reflection.c, reflection.h: handle full assembly info in type name.
12662         Handle Type arguments when loading custom attributes.
12663         * icall.c: updated to use new mono_reflection_type_from_name () method.
12664
12665 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12666
12667         * loader.c:
12668         (method_from_memberref): also print assembly name when method not found.
12669
12670 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12671
12672         * icall.c:
12673         (ves_icall_TypeGetProperties): fixed bug #27473. 
12674
12675 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12676
12677         * reflection.c: display image name and token when cannot find the
12678         .ctor for an attribute.
12679
12680 2002-07-05  Martin Baulig  <martin@gnome.org>
12681
12682         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12683
12684 2002-07-04  Dick Porter  <dick@ximian.com>
12685
12686         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
12687         compile on mingw.  This will cause mingw builds to not wait for
12688         subthreads to terminate after the main thread does.  I've lodged a
12689         bug with the mingw developers for them to wrap OpenThread().
12690
12691 2002-07-03  Dick Porter  <dick@ximian.com>
12692
12693         * threads.c: Store thread IDs instead of handles, because
12694         GetCurrentThread() returns a pseudohandle and therefore stores
12695         useless values.  mono_thread_cleanup() continues checking the
12696         array of threads until it is empty, to cope with subthreads
12697         spawning new threads after the main thread has finished.
12698
12699         * profiler.h:
12700         * profiler.c:
12701         * profiler-private.h: Pass the thread ID to thread profiler
12702         functions, instead of a handle
12703
12704 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12705
12706         * verify.c: fixes to make it more usable.
12707         * pedump.c: added --verify code to verify IL code in an assembly.
12708
12709 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12710
12711         * reflection.c: turn errors into warnings to allow compiling corlib.
12712
12713 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12714
12715         * reflection.c: add special cases to compile corlib.
12716
12717 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12718
12719         * reflection.c: handle properties with only a set method.
12720
12721 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12722
12723         * opcodes.h: add enum with opcodes in opval order.
12724
12725 2002-07-01  Dick Porter  <dick@ximian.com>
12726         
12727         * object.h:
12728         * object.c (mono_runtime_run_main): Removed unneeded argument
12729
12730 2002-06-28  Martin Baulig  <martin@gnome.org>
12731
12732         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12733
12734 2002-06-27  Dick Porter  <dick@ximian.com>
12735
12736         * threads.c: Store the handle in both the parent thread and in the
12737         subthread, to minimise the time between starting a new thread and
12738         storing its ID.
12739
12740 2002-06-26  Dick Porter  <dick@ximian.com>
12741
12742         * appdomain.c (mono_runtime_cleanup): Close the socket library
12743         after all the threads have finished, not before
12744
12745 2002-06-26  Martin Baulig  <martin@gnome.org>
12746
12747         * debug-symfile.c (mono_debug_find_source_location): Added
12748         `guint32 *line_number' argument.  If it's not NULL, store the line number
12749         there and return the file name without the line number.
12750
12751 2002-06-25  Dick Porter  <dick@ximian.com>
12752
12753         * icall.c:
12754         * process.h:
12755         * process.c: Process forking and other support functions
12756
12757 2002-06-25  Dick Porter  <dick@ximian.com>
12758
12759         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
12760         things dont happen when the image is closed.
12761         (mono_image_lookup_resource): Walk the resource section looking
12762         for a particular entry
12763
12764         * cil-coff.h: PE resource section decoding
12765
12766 2002-06-25  Dick Porter  <dick@ximian.com>
12767         
12768         * assembly.h:
12769         * assembly.c: 
12770         (mono_assembly_foreach): Accessor functions to walk the list of
12771         loaded assemblies
12772         (mono_assembly_set_main):
12773         (mono_assembly_get_main): Process methods need to know which
12774         assembly is the "main" one
12775
12776         * object.c (mono_runtime_run_main): Record the main assembly
12777
12778         * debug-helpers.c: Fix typo
12779
12780 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
12781
12782         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
12783         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
12784
12785 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12786
12787         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
12788
12789 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
12790
12791         * image.c (do_mono_image_open): Initialize reference count,
12792         otherwise we leak the MonoImage.
12793
12794 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12795
12796         * reflection.c: small tweak to handle self-hosting.
12797
12798 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12799
12800         * reflection.c: fix type name parse code.
12801
12802 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12803
12804         * reflection.c: break out of the loop.
12805         * image.c: special case corlib.
12806
12807 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12808
12809         * reflection.c: add all the custom attrs at the end to ensure the
12810         ctors have been properly initialized when the attributes are defined
12811         in the current assembly.
12812
12813 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12814
12815         * reflection.c: handle correctly multiple-nested types.
12816
12817 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
12818
12819         * row-indexes.h: fix typos.
12820         * reflection.c: adjust for typos and fix method_def_or_ref
12821         encoding in MethodImpl table.
12822
12823 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12824
12825         * reflection.c: fix entry point patching (thanks Serge!).
12826
12827 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
12828
12829         * verify.c: add check for System.Exception
12830
12831 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12832
12833         * image.c, class.c: minifix for code just c&p'ed.
12834         * reflection.c: warning fix.
12835         * object.h, loader.h, domain.c: load also StringBuilder.
12836
12837 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12838
12839         * marshal.h, marshal.c: some support code to handle complex marshaling.
12840
12841 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12842
12843         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
12844         Better signatures with vtable error dump.
12845
12846 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
12847
12848         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
12849
12850 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
12851
12852         * icall.c (ves_icall_Type_GetField): impl.
12853
12854 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12855
12856         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
12857         to retrieve a marshal description blob for a field or param.
12858
12859 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12860
12861         * reflection.h, reflection.c: change order of nested type emission
12862         to avoid table corruption. The NestedTypes table is sorted.
12863         * icall.c: change order of GetConstructor results to workaround mcs bug.
12864
12865 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12866
12867         * reflection.h, reflection.c: handle field and param marshal
12868         information.
12869
12870 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12871
12872         * icall.c, marshal.c marshal.h: more Marshal class implementation.
12873
12874 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12875
12876         * reflection.c: fix call convention.
12877
12878 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12879
12880         * reflection.h, reflection.c: mono_image_get_memberref_token()
12881         takes a type instead of a class, now. Added
12882         mono_image_get_array_token() to create tokens for the special
12883         multi-dim array methods.
12884
12885 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12886
12887         * assembly.c: handle modules (no assembly table). Split
12888         loading references in its own function.
12889         * class.c: handle moduleref resolution scope.
12890         * image.c, image.h: cache module name in image.
12891
12892 2002-06-07  Martin Baulig  <martin@gnome.org>
12893
12894         * reflection.c (mono_image_get_type_info): Only add a class layout entry
12895         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
12896
12897 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12898
12899         * icall.c: more signature fixes that used uint instead of int.
12900
12901 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12902
12903         * reflection.c: fixed signature of field refs.
12904
12905 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12906
12907         * class.c, reflection.c: handle typerefs of nested types
12908         (both on read and when writing files).
12909
12910 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12911
12912         * icall.c: fix method signatures that tried to workaround the previous
12913         typo, d'oh!
12914
12915 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12916
12917         * debug-helpers.c: fix typo.
12918
12919 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12920
12921         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
12922         rewrote the PE/COFF writing code (our programs are understood by the
12923         ms runtime, now).
12924
12925 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12926
12927         * gc.c, gc.h, icall.c: weakreference support.
12928
12929 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12930
12931         * Makefile.am, mono-config.c: use $(sysconfdir).
12932
12933 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12934
12935         * icall.c: changed default precision of Double.ToString() to 15.
12936         Fixed memory leak. Unified with Single.ToString.
12937
12938 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
12939
12940         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
12941
12942 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12943
12944         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
12945         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
12946         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
12947         and myself.
12948
12949 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12950
12951         * debug-symfile.c, sysmath.c: yet more compilation fixes.
12952
12953 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12954
12955         * reflection.c, socket-io.c: more compilation fixes.
12956
12957 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12958
12959         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
12960         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
12961         unicode.c: warning and compiler compatibility fixes.
12962
12963 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
12964
12965         * class.h, metadata.c: fixed warnings/compilation errors.
12966
12967 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12968
12969         * Makefile.am, mono-config.c, mono-config.h: configuration file
12970         support routines.
12971         * loader.c, loader.h: make Dll mapping configurable at runtime in the
12972         config file. Export methods to insert and lookup mappings.
12973
12974 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12975
12976         * reflection.c: handle types and boxed objects in custom attr
12977         constructors.
12978
12979 2002-05-30  Martin Baulig  <martin@gnome.org>
12980
12981         * debug-symfile.c
12982         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
12983
12984 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
12985
12986         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
12987         to lookup the implmap row for a P/Invoke method.
12988         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
12989         P/Invoke method from the runtime on an as needed basis.
12990
12991 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
12992
12993         * metadata.c (mono_metadata_parse_signature): impl.
12994
12995 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12996
12997         * class.c: handle .pack directive.
12998
12999 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
13000
13001         * object.c: initialize static fields with RVA data.
13002
13003 2002-05-25  Martin Baulig  <martin@gnome.org>
13004
13005         * debug-symfile.c
13006         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
13007
13008 2002-05-24  Martin Baulig  <martin@gnome.org>
13009
13010         * debug-symfile.c
13011         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
13012         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
13013         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
13014
13015 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13016
13017         * object.c: special case string ctros in invoke.
13018         * gc.c: silly whitespace changes.
13019
13020 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
13021
13022         * threadpool.[ch]: impl. a threadpool that can
13023         be used by mint and mono.
13024
13025 2002-05-22  Martin Baulig  <martin@gnome.org>
13026
13027         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
13028         The first argument is now a `MonoReflectionModuleBuilder *', the return
13029         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
13030         `methods' field to get the method builder.  The `token' argument is the
13031         unfixed token.
13032
13033         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
13034         invalid characters instead of g_assert_not_reached()ing.  This seems
13035         to be the behaviour of mscorlib.
13036
13037 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
13038
13039         * object.c (mono_runtime_invoke_array): applied patch from Rachel
13040         Hestilow to fix bug #25104
13041
13042 2002-05-21  Martin Baulig  <martin@gnome.org>
13043
13044         * debug-symfile.c (mono_debug_find_source_location): New function.
13045         Looks up an IL offset in the line number table and returns the source
13046         location as a string.
13047
13048 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13049
13050         * icall.c:
13051         (mono_double_ToStringImpl): changed %f by %g until we have something
13052         better.
13053
13054 2002-05-21  Nick Drochak  <ndrochak@gol.com>
13055
13056         * icall.c : Use different name for Math.Pow's icall.  Needed to check
13057         parameters first in C#.
13058
13059 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13060
13061         * icall.c, reflection.h: added icall to get info about an event.
13062
13063 2002-05-20  Radek Doulik  <rodo@ximian.com>
13064
13065         * object.c (mono_value_box): don't use memcpy for boxing on BIG
13066         endian
13067         (mono_value_box): don't use memcpy for small sizes on
13068         architectures with unaligned access
13069
13070 2002-05-20  Martin Baulig  <martin@gnome.org>
13071
13072         * reflection.c (mono_reflection_setup_internal_class): Don't crash
13073         if `tb->parent == NULL'.
13074         (mono_reflection_create_internal_class): New function.  This is
13075         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
13076         for enum types.
13077
13078         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
13079         New interncall.
13080
13081 2002-05-19  Martin Baulig  <martin@gnome.org>
13082
13083         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
13084         argument to get the length, don't default to the array length.
13085
13086 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
13087
13088         * assembly.c (mono_assembly_setrootdir): New function used to
13089         override the MONO_ASSEMBLIES directory.
13090
13091 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13092
13093         * icall.c: ValueType_GetHashCode() initialize local var.
13094
13095 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13096
13097         * reflection.c: sort custom attributes table.
13098
13099 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13100
13101         * reflection.c: support named args in custom attributes (write support).
13102
13103 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
13104
13105         * reflection.c: fix finally position calculation.
13106
13107 2002-05-15  Radek Doulik  <rodo@ximian.com>
13108
13109         * reflection.c: fixed endianess at many places
13110
13111         * icall.c (ves_icall_InitializeArray): comment out debug msg
13112
13113 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
13114
13115         * object.c (mono_unhandled_exception): new function to handle
13116         unhandled exceptions.
13117         (mono_unhandled_exception): call the UnhandledException event.
13118         (mono_runtime_delegate_invoke): impl.
13119
13120 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
13121
13122         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
13123         returns the RVA, not the direct pointer to the data. Handle the case
13124         when the class size is fixed.
13125
13126 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
13127
13128         * reflection.c: fix some endianess issues.
13129
13130 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
13131
13132         * object.c (mono_runtime_invoke): is now able to catch exceptions.
13133
13134         * threads.c (mono_thread_init): added a callback which is invoked
13135         at thread start.
13136
13137 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13138         
13139         * icall.c: make GetHashCode return non-negative values.
13140
13141 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13142
13143         * object.c, icall.c, gc.c: revert to address-based hashcode.
13144
13145 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
13146
13147         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
13148
13149 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13150
13151         * icall.c, class.c: special case <Module>.
13152
13153 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
13154
13155         * icall.c: fix bug in GetNow().
13156
13157 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
13158
13159         * object.c (mono_runtime_class_init): make sure that we call all
13160         static class constructors.
13161
13162 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13163
13164         * reflection.c: sort methodsemantics table.
13165
13166 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
13167
13168         * reflection.h, reflection.c: honour init locals setting.
13169
13170 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
13171
13172         * icall.c: copied Double ToStringImpl for Single ToStringImpl
13173
13174 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13175
13176         * reflection.c: support ContructorBuilders in attribute blob creation.
13177
13178 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13179
13180         * reflection.c: some changes to build a binary that can be run
13181         directly in windows.
13182
13183 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13184
13185         * loader.c: print a big message when an icall can't be found.
13186
13187 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13188
13189         * string-icalls.c: fix bug 24248.
13190
13191 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
13192
13193         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
13194         icall.c, reflection.h: separate assembly loading by pathname and by
13195         assembly name. Use the MONO_PATH env var to search for assemblies.
13196
13197 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13198
13199         * assembly.c, image.h: add some support for assemblies
13200         with multiple modules.
13201         * class.c, class.h: export mono_class_from_typeref().
13202         * loader.c: remove duplicated code and use mono_class_from_typeref(),
13203         instead.
13204
13205 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13206
13207         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
13208         documentation says (the ECMA one is correct).
13209
13210 2002-05-02  Dick Porter  <dick@ximian.com>
13211
13212         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
13213         Don't name the synchronisation mutex.
13214
13215 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
13216
13217         * rand.c
13218         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
13219         Make the prototypes match.
13220         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
13221         Same.
13222
13223         * icall.c
13224         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
13225         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
13226         all systems have tm.tm_zone, so use strftime() with %Z to print
13227         the timezone abreviation into a temp string.
13228
13229         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
13230         rather than mono_array_addr() on a MonoString on Big Endian
13231         machines.
13232
13233 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
13234
13235         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
13236         fix bug 24041
13237
13238 2002-04-30  Dick Porter  <dick@ximian.com>
13239
13240         * socket-io.c: Cope with SOCKET being an integer rather than a
13241         pointer now.
13242
13243         * threads.c: Added Thread_free_internal, to deal with thread
13244         handle cleanup.  Moved calls to handle_store() and handle_remove()
13245         to start_wrapper(), so each can only be called once.  Allocate
13246         synchronisation blocks with GC_malloc(), and use GC finalisation
13247         to close the handles.
13248
13249         * icall.c: added System.Threading.Thread::Thread_free_internal
13250
13251 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13252
13253         * icall.c: support Environment.Exit, CommandLineArgs().
13254
13255 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13256
13257         * object.c, object.h: added mono_runtime_run_main () and
13258         mono_runtime_get_main_args () for use in System.Environment.
13259
13260 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13261
13262         * gc.c: fix thinko, enable actual finalization since the jit is now
13263         fixed.
13264
13265 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13266
13267         * gc.c, object.c: take into account that an object may be offset wrt the address
13268         returned by GC_malloc().
13269
13270 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
13271
13272         * image.c: handle files without entries in the assembly table (modules).
13273
13274 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
13275
13276         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
13277         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
13278         allowed to be null when it's System.Object class setup.
13279
13280 2002-04-27  Martin Baulig  <martin@gnome.org>
13281
13282         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
13283         if `tb->parent == NULL' rather than crashing.
13284
13285 2002-04-28  Nick Drochak  <ndrochak@gol.com>
13286
13287         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
13288         calling acos() where asin() should have been called.
13289
13290 2002-04-26  Martin Baulig  <martin@gnome.org>
13291
13292         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
13293         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
13294         there's a subdirectory called `System', but we don't want to read that
13295         subdirectory as an assembly.
13296
13297 2002-04-25  Martin Baulig  <martin@gnome.org>
13298
13299         * debug-symfile.c: Reflect latest MonoString changes.
13300
13301 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13302
13303         * rand.c, rand.h: instance method icalls need to have an explicit
13304         this pointer as first argument in the C implementation.
13305
13306 2002-04-25  Nick Drochak <ndrochak@gol.com>
13307
13308         * icall.c: Fix typo in map for GetNonZeroBytes
13309
13310 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13311
13312         * string-icalls.c : String does now passes unit tests without any 
13313         errors, the following changes has been made:
13314         
13315         Implemented replace methods.
13316         Renaming of methods to (try) follow the standard.
13317         Fixed compare ordinal
13318         Made all memory allocated directly to function instead of via icall function.
13319         Small performance fix in is_in_array function
13320                         
13321  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
13322
13323         c (mono_string_Internal_ctor_charp_int_int):
13324         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
13325         sindex < 0, throw ArgumentOutOfRangeException instead of
13326         ArgumentNullException.
13327
13328         Added new check for length == 0, however
13329         I need to make it return String.Empty from the C code.
13330         
13331         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
13332         that calculate the length for us here.
13333         
13334         (mono_string_Internal_ctor_sbytep_int_int): Replaced
13335         mono_string_new_utf16 with mono_string_new, since value is utf8.
13336
13337 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13338
13339         * object.c: register the object for finalization if needed.
13340         Allocate one more char in the string for the terminating 0 char.
13341
13342 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13343
13344         * class.c, class.h, image.c: check if a type implemenst a destructor.
13345         Use the proper key for array class lookups.
13346         * icall.c: register the icalls in the System.GC class.
13347         * gc.c, gc.h: GC-related functions and icalls.
13348
13349 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13350
13351         * icall.c:
13352         * socket-io.c:
13353         * unicode.c: free some strings gotten from mono_string_to_utf8 and
13354         changed a couple of free () by g_free ().
13355
13356         * decimal.c: one-liner in the comments for decimal2string ().
13357
13358 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13359
13360         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
13361
13362 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13363
13364         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
13365         * object.c (mono_runtime_invoke_array) : handle null in params
13366
13367 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13368
13369         * string-icalls.c: fixed bug in split (one off bug)
13370
13371 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13372
13373         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
13374         * icalls.c: added String::Equals as internal method
13375
13376 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13377
13378         * threads.c: fixed bug in the double interlocked functions
13379
13380 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
13381
13382         * threads.c: implemented all of the new interlocked icalls.
13383         * string-icalls.c: fix a bug in insert.
13384         * icalls.c: added the icalls for interlocked, removed old string functions.
13385         
13386 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13387
13388         * loader.c: fix off-by-one error when reading argument names.
13389
13390 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13391
13392         * profiler.c: win32 counter implementation (untested).
13393         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
13394         (the latter needs testing and more complete impl. from win32 folks).
13395
13396 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
13397
13398         * object.c: mono_array_new_full workaround mono_array_class_get
13399         problem.
13400
13401 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13402
13403         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
13404         * object.h (mono_string_chars): Changed casting type.
13405
13406 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13407
13408         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
13409                            method signatures to use gunichar2 instead of gint16.
13410
13411 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
13412
13413         * object.h, object.c: domain-specific versions of mono_object_new and
13414         mono_array_new.
13415
13416 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
13417
13418         * object.c: changed String layout
13419
13420         * string-icalls.c (mono_string_Internal_ctor_chara): added
13421         internal string constructors.
13422
13423 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
13424
13425         * threads.c: pass 'this' to the thread start routine.
13426
13427 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13428
13429         * string-icalls.c: fix IndexOf and LastIndexOf. Now
13430         InternalCompareStr don't call twice mono_string_cmp_char for the last
13431         character. Improved performance in mono_string_cmp_char.
13432
13433 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13434
13435         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
13436         code into its own library: libmonoruntime.
13437
13438 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
13439
13440         * object.h, object.c: changed array format so that szarrays do not
13441         require a bounds structure.
13442         * icall.c, appdomain.c: support for new szarray format.
13443
13444 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13445
13446         * metadata.c: compare also the retuns type when comparing signatures:
13447         we didn't do this as an optimization since really overloaded methods
13448         must differ also in the arguments, but this doesn't work with
13449         low-level IL code (or when using explicit conversion operators: see
13450         bug#23498 for an example).
13451
13452 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13453
13454         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
13455
13456 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
13457
13458         * icall.c: make MonoType::GetElementType its own icall.
13459
13460 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13461
13462         * icall.c: remove MonoMethod_get_Name().
13463         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
13464         object.
13465
13466 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13467
13468         * string-icalls.c: optimized a few methods.
13469
13470 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13471
13472         * icall.c: added all new string internal calls
13473         * string-icalls.c: added, new string internal call implementation.
13474         * object.c: added mono_string_new_size for allocating a string a size
13475
13476 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
13477
13478         * object.c (mono_object_isinst): use the same code as in the
13479         optimized x86 version.
13480
13481 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13482
13483         * profiler.c: TSC-based timer code (faster and more accurate).
13484         Not hooked up in configure, yet (set USE_X86TSC to 1).
13485
13486 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
13487
13488         * profiler.c, profiler.h: track time spent compiling methods.
13489         * threads.c: track thread creation/destruction.
13490
13491 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
13492
13493         * profiler.c, profiler.h, profiler-private.h: profiling interface
13494         and sample implementation. Moved here so that it can be used also by
13495         the jit.
13496
13497 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
13498
13499         * reflection.c, reflection.h: keep types and other handles separate in
13500         the hash tables for referred tokens. Add guid for modules.
13501
13502 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13503
13504         * assembly.c: fix bugs found with valgrind.
13505         * metadata.h, metadata.c: added mono_metadata_guid_heap().
13506
13507 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
13508
13509         * threads: added icall support for getting current domain for
13510                    the thread.
13511  
13512 2002-04-13  Martin Baulig  <martin@gnome.org>
13513
13514         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
13515         (MonoDebugVarInfo): Added `index' field for register based addresses.
13516         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
13517         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
13518         `MonoDebugVarInfo *params' and `guint32 this_offset' with
13519         `MonoDebugVarInfo *this_var'.
13520
13521         * debug-symfile.c (relocate_variable): New static function to write
13522         a location description for a local variable or method parameter.
13523
13524 2002-04-12  Martin Baulig  <martin@gnome.org>
13525
13526         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
13527         stack offset and begin/end scope address of a local variable.
13528         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
13529         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
13530         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
13531
13532         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
13533         Added new relocation types for start/end scope of a local variable.
13534
13535 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13536
13537         * object.h: add mono_object_domain() macro.
13538         * reflection.c: handle typespecs.
13539         * icall.c: MonoMethod::get_Name() implementation.
13540
13541 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13542
13543         * icall.c: String::GetHashCode() icall implementation.
13544
13545 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13546
13547         * icall.c: String::IndexOfAny icall.
13548         * object.c, object.h: make array->max_length more useful.
13549         Intrduced mono_object_class() and mono_string_length() macros.
13550
13551 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13552
13553         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
13554         instead of g_unichar_isdigit.
13555
13556 2002-04-11  Nick Drochak  <ndrochak@gol.com>
13557
13558         * icall.c: Implement a simple Double.ToString().
13559
13560 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13561
13562         * appdomain.h: only io-layer.h is supposed to be included.
13563         * icall.c: explicitly import environ. Fix warning.
13564
13565 2002-04-10  Nick Drochak  <ndrochak@gol.com>
13566
13567         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
13568                 return true even if it's not Daylight Savings time.
13569                 Only return false for the case where the function isn't
13570                 implemented for a plaform (read Windows).
13571
13572 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13573
13574         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
13575         data with a mutex.
13576
13577 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
13578
13579         * mempool.c (mono_mempool_alloc): only use g_malloc when
13580         absolutely necessary.
13581
13582 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
13583
13584         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
13585
13586         * class.c (mono_class_vtable): use domain mempool to allocate vtable
13587         (mono_class_proxy_vtable): use domain mempool
13588
13589 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13590
13591         * appdomain.h, appdomain.c: split initialization that requires the
13592         execution engine support into mono_runtime_init().
13593
13594 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
13595
13596         * class.c (mono_class_init): don't include vtable inside MonoClass
13597         to save some memory, gather some statistics.
13598         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
13599
13600 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13601
13602         * icall.c: internalcall implementation for ValueType.Equals().
13603
13604 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
13605
13606         * object.c (mono_message_init): moved 
13607         (mono_runtime_exec_main): new arch. independent impl.
13608         (mono_runtime_invoke_array): new method - like
13609         mono_runtime_invoke, but you can pass an array of objects.
13610         (mono_remoting_invoke): new arch. independent impl.
13611         (mono_message_invoke): new arch. independent impl.
13612         (mono_runtime_class_init): new arch. independent impl.
13613         (mono_runtime_object_init): new arch. independent impl.
13614
13615 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13616
13617         * metadata.c, object.c, reflection.c: documented the exported
13618         functions.
13619
13620 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
13621
13622         * icall.c: simpler code to pass the assembly builder data to corlib.
13623         Implement GetNestedTypes() internalcall.
13624
13625 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13626
13627         * class.c: warn if a type can't be loaded.
13628
13629 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
13630
13631         * image.h: typedef MonoImageOpenStatus
13632         * types.h: removed unused file
13633         
13634 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
13635
13636         * icall.c: Enum_ToObject accepts enum value arguments.
13637
13638 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13639
13640         * class.c: move initialization of properties, events and nested
13641         classes, so that they happen for interfaces, too.
13642
13643 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13644
13645         * icall.c: cleanup some ugly casts in Array_SetValue*.
13646
13647 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13648
13649         * icall.c: the values array fro enums is of the correct type, now.
13650         Implement (correctly) getFullName instead of assQualifiedName for
13651         MonoType.
13652         * reflection.h, reflection.c: added mono_type_get_name ().
13653
13654 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13655
13656         * assembly.c, image.h: for each MonoImage, record from wich assembly
13657         it was loaded.
13658         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
13659         Make Type.Assembly work.
13660
13661 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
13662
13663         * debug-symfile.h: use char* instead of gpointer to avoid
13664         unnecessary casts.
13665
13666         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
13667
13668         * icall.c (ves_icall_InternalExecute): impl. FielSetter
13669         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
13670
13671 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
13672
13673         * icall.c (mono_message_init): impl. (code cleanup)
13674         (ves_icall_InternalExecute): impl. FieldGetter
13675
13676         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
13677         defined we call all (non-static)methods through the vtable. 
13678
13679 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
13680
13681         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
13682         finalizer even though the memory is still referenced (and the chunk of
13683         memory is not freed).
13684
13685 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
13686
13687         * assembly.c: fix brokeness.
13688
13689 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
13690
13691         * class.c: kill some warnings. Check explicit interface method
13692         implementation also without considering the namespace.
13693         Load also literal strings in static class data.
13694
13695 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
13696
13697         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
13698         (default_assembly_name_resolver): Make the resolver take the
13699         "base" directory where the assembly was originally defined, so we
13700         can load DLLs that are in the same directory as the assembly that
13701         is being referenced.
13702
13703 2002-03-28  Dick Porter  <dick@ximian.com>
13704
13705         * file-io.h: 
13706         * file-io.c:
13707         * socket-io.c: 
13708         * unicode.h: 
13709         * unicode.c: Warning cleanups
13710
13711 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
13712
13713         * object.h, reflection.h: use the correct type instead of MonoObject.
13714
13715 2002-03-28  Martin Baulig  <martin@gnome.org>
13716
13717         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
13718         (mono_debug_update_symbol_file): Initialize classes if necessary.
13719
13720 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
13721
13722         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
13723         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
13724
13725 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
13726
13727         * assembly.h: fix function prototype.
13728         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
13729         * mono-endian.h: use const cast.
13730
13731 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
13732
13733         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
13734
13735 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
13736
13737         * loader.c: don't assert when a typeref can't be loaded, give
13738         a chance to the runtime to trow an exception instead.
13739         * loader.h: fix warning.
13740
13741 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
13742
13743         * class.c (mono_class_proxy_vtable): added proxy support
13744
13745 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
13746
13747         * icall.c: removed last of PAL calls, added System.Environment
13748         * file-io.h, file-io.c: MonoIO implementation
13749         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
13750
13751 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
13752
13753         * appdomain.c: do not use the byte marker in ldstr table lookup.
13754         * debug-helpers.c: allow two ':' to separate class and method name.
13755         * object.c: allocate arrays bounds with the GC, too.
13756         * verify: add a few more checks.
13757
13758 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
13759
13760         * reflection.c: output also literal strings. Allocate parameter data
13761         with GC_malloc() (thanks, Martin, for catching this!).
13762
13763 2002-03-26  Martin Baulig  <martin@gnome.org>
13764
13765         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
13766         include the `this' offset in the `param_offsets'.
13767
13768 2002-03-25  Martin Baulig  <martin@gnome.org>
13769
13770         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
13771         mono_debug_get_class() function to get the classes. Added new
13772         relocation types for arrays and strings.
13773         (mono_debug_get_class): New static function to search in all
13774         referenced assemblies for a metadata token.
13775
13776         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
13777
13778 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
13779
13780         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
13781         hold gc-allocated objects. Make the string heap a stream like the
13782         others. Removed duplicated code when writing stream info.
13783         Added asserts to catch possible buffer overflows. Set the sorted map
13784         for tables that need sorting. Added some documentation.
13785
13786 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
13787
13788         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
13789         for interned strings and vtables.
13790
13791 2002-03-24  Martin Baulig  <martin@gnome.org>
13792
13793         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
13794         it in the array since it was created with g_slist_prepend().
13795
13796 2002-03-24  Martin Baulig  <martin@gnome.org>
13797
13798         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
13799         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
13800         (mono_debug_method_from_token): Renamed to
13801         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
13802         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
13803
13804         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
13805         relocation types.
13806
13807         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
13808
13809 2002-03-24  Martin Baulig  <martin@gnome.org>
13810
13811         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
13812         (mono_debug_method_from_token): New func.
13813
13814         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
13815         New interncall, calls mono_debug_local_type_from_signature().
13816         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
13817         calls mono_debug_method_from_token().
13818
13819 2002-03-23  Martin Baulig  <martin@gnome.org>
13820
13821         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
13822         specifies the number of bytes to be converted, not the array size.
13823         Return the number of chars, not the number of bytes.
13824         (ves_icall_iconv_get_chars): The `byteCount' argument
13825         specifies the number of bytes to be converted, not the array size.
13826
13827 2002-03-23  Martin Baulig  <martin@gnome.org>
13828
13829         * reflection.h (MonoReflectionSigHelper): New type.
13830
13831         * reflection.c (mono_reflection_sighelper_get_signature_local),
13832         (mono_reflection_sighelper_get_signature_local): New functions.
13833
13834         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
13835         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
13836         interncalls.
13837
13838 2002-03-23  Martin Baulig  <martin@gnome.org>
13839
13840         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
13841         is_writeable is set.
13842         (mono_raw_buffer_update): New function to write the modified map
13843         back to disk.
13844
13845         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
13846
13847         * debug-symfile.c (mono_debug_update_symbol_file): Call
13848         mono_raw_buffer_update() when done writing.
13849
13850 2002-03-23  Martin Baulig  <martin@gnome.org>
13851
13852         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
13853
13854         * debug-symfile.c: Added support for arguments and local variables.
13855
13856 2002-03-23  Dick Porter  <dick@ximian.com>
13857
13858         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
13859         protected by ifdefs, hence breaking the w32 build.
13860
13861 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
13862
13863         * object.c: implement is_interned() the right way.
13864
13865 2002-03-21  Martin Baulig  <martin@gnome.org>
13866
13867         * debug-symfile.[ch]: New files to handle debugging information
13868         files. There's also support to dynamically update these symbol
13869         files to include machine dependent information.
13870
13871 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
13872
13873         * threads.c (mono_thread_create): new function to create thread
13874         from C
13875
13876 2002-03-20  Martin Baulig  <martin@gnome.org>
13877
13878         * icall.c (ves_icall_InternalInvoke): Create a new object if the
13879         method is a constructor.
13880         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
13881         points to ves_icall_InternalInvoke().
13882
13883 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
13884
13885         * file-io.c: Flush shouldn't throw exceptions.
13886
13887 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
13888
13889         * file-io.c: FileStream flush support; FileSetLength now
13890         restores file pointer.
13891
13892 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
13893
13894         * class.c: set image for pointer classes.
13895
13896 2002/03/19  Nick Drochak <ndrochak@gol.com>
13897
13898         * sysmath.c: Forgot one.
13899
13900 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
13901
13902         * sysmath.c: Avoid redefining existing names.
13903
13904 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
13905
13906         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
13907         handled by runtime as icall rather than dllimport from libm.so
13908         * file-io.c, file-io.h: fixed handle argument type.
13909
13910 2002-03-18  Dick Porter  <dick@ximian.com>
13911
13912         * reflection.c (mono_image_get_type_info): rename interface to
13913         iface, because of "#define interface struct" on windows.
13914
13915 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
13916
13917         * class.c, class.h: rename and export mono_ptr_class_get().
13918         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
13919         * reflection.c, reflection.h, icall.c: better/saner type name
13920         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
13921         method signatures.
13922
13923 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
13924
13925         * class.c (mono_class_init): removed hardcoded GHC_SLOT
13926
13927         * icall.c (ves_icall_InternalInvoke): impl.
13928
13929 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
13930
13931         * reflection.c: output the interface map table, too.
13932
13933 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
13934
13935         * class.c (class_compute_field_layout): separate computation of 
13936         static field layout
13937
13938 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
13939
13940         * icall.c: added System.Buffer support.
13941         * file-io.c: moved file icalls from PAL to FileStream.
13942
13943 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
13944
13945         * icall.c (ves_icall_System_Object_GetHashCode): impl.
13946
13947 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
13948
13949         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
13950
13951 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
13952
13953         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
13954
13955 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
13956
13957         * debug-helpers.{c,h}: moved here from monograph some useful functions
13958         to locate a method by name/signature in a class or image. Included
13959         also a small and flexible IL disassembler.
13960
13961 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
13962
13963         * reflection.c: fixup tokens in methods with small header size, too.
13964
13965 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
13966
13967         * object.c (mono_string_to_utf8): remove assert(!error), instead
13968         print a warning. 
13969
13970 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
13971
13972         * icall.c: update to the new mono_Array_class_get interface.
13973
13974 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
13975
13976         * appdomain.c, object.c: Boehm-GC enable.
13977         * icall.c: make get_data_chunk() support split data requests.
13978         Ensure a class is initialized in more cases. Return only the first
13979         property found in GetProperties() or the compiler gets confused. 
13980         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
13981         * reflection.h, reflection.c: add fixup mechanism for field and method
13982         tokens. Initialize assembly->typeref in a single place. Output
13983         properties after events. Support custom attributes for events, too.
13984         Typo fix for paramter custom attrs.
13985
13986 2002-03-07  Martin Baulig  <martin@gnome.org>
13987
13988         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
13989
13990 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
13991
13992         * class.c (mono_array_class_get): fix. for multi. dim. arrays
13993
13994 2002-03-06  Martin Baulig  <martin@gnome.org>
13995
13996         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
13997         non-zero lower bounds. See testcases #F10-#F13.
13998
13999 2002-03-05  Martin Baulig  <martin@gnome.org>
14000
14001         * exception.c (mono_get_exception_argument_out_of_range): New exception.
14002
14003         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
14004         ves_icall_System_Array_GetValue(), only calculate the absolute array position
14005         here.
14006         (ves_icall_System_Array_SetValue): Likewise.
14007         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
14008         as argument and does the actual work. This function is used when copying a
14009         multi-dimensional array.
14010         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
14011         now do all the widening conversions of value types.
14012         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
14013
14014 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14015
14016         * class.c: remove some magic numbers and use the smbolic names,
14017         instead. Added init_events() to load event info at class init time.
14018         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
14019         and mono_metadata_methods_from_event().
14020         * reflection.h, reflection.c: added support for writing out the evnets
14021         related information.
14022
14023 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
14024
14025         * reflection.h, icall.c: use a different method (GetInterfaces)
14026         to gather interface info and add isbyref, isprimitive and
14027         ispointer to the ves_icall_get_type_info() return value.
14028
14029 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14030
14031         * class.h: stared adding support for events.
14032         * icall.c: split find_members implementation. Added debug icall to get
14033         the address of an object.
14034         * reflection.c: handle TypeBuilders in mono_type_get_object().
14035
14036 2002-03-01  Martin Baulig  <martin@gnome.org>
14037
14038         * icall.c (ves_icall_System_Array_GetLength): This must throw an
14039         ArgumentOutOfRangeException(), not an ArgumentException().
14040         (ves_icall_System_Array_GetLowerBound): Likewise.
14041         (ves_icall_System_Array_GetValue): Improved argument checking.
14042         (ves_icall_System_Array_SetValue): Improved argument checking.
14043
14044 2002-03-01  Martin Baulig  <martin@gnome.org>
14045
14046         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
14047         called with invalid arguments rather than just dying with g_assert().
14048         (ves_icall_System_Array_SetValue): Likewise.
14049         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
14050         raise a NotImplementedException instead.
14051         (ves_icall_System_Array_GetLength): Added argument checking.
14052         (ves_icall_System_Array_GetLowerBound): Added argument checking.
14053
14054 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
14055
14056         * object.h (mono_assert): new macros mono_assert and
14057         mono_assert_not_reached
14058
14059 2002-02-28  Martin Baulig  <martin@gnome.org>
14060
14061         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
14062         and "System::String::IsInterned" to "System::String::_IsInterned".
14063
14064 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
14065
14066         * icall.c: remove hacks for typebuilder. Added icall to create a
14067         modified type from a tybebuilder.
14068         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
14069         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
14070         to create a backing MonoClass for a TypeBuilder.
14071
14072 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14073
14074         * class.c, class.h: more refactoring of class init.
14075         Export mono_class_setup_mono_type() and mono_class_setup_parent().
14076
14077 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
14078
14079         * marshal.c, marshal.h: start of marshaling interface.
14080
14081 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14082
14083         * icall.c: fix order in assembly qualified name icall.
14084
14085 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14086
14087         * class.c: do not free str, since we store it in the hash table.
14088         * reflection.h: add label field to MonoILExceptionInfo.
14089         * reflection.c: handle references to more than one assembly. Handle
14090         case when there isn't a module created in the assembly.
14091
14092 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
14093
14094         * class.c: Fix typo. Start refactoring of class init code.
14095
14096 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
14097
14098         * appdomain.c: exit with 1 on error.
14099         * class.c: we already have the name in MonoClassField.
14100         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
14101         MonoStreamHeader instead of an offset of image->raw_metadata.
14102
14103 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
14104
14105         * appdomain.c (mono_init): Be even more descriptive about the error.
14106
14107 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
14108
14109         * appdomain.c: give the user an informative message when corlib can't
14110         be loaded.
14111
14112 2002-02-26  Martin Baulig  <martin@gnome.org>
14113
14114         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14115         New icall to get the time zone data.
14116
14117 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14118
14119         * reflection.c: set virtual and raw size of section correctly.
14120         * threads.c: transfer domain information to newly created threads.
14121
14122 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14123
14124         * class.c: when instancing a class in a domain, load the default
14125         vaules for static fields from the constant table. Fix System.Enum to
14126         not be an enum.
14127         * icall.c: implement Object::GetType() internalcall. Implemented
14128         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
14129         Fixed checking of binding flags in find_members().
14130         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
14131         * reflection.c: handle enumerations when writing to the constant
14132         table. Use a different object cache for types.
14133
14134
14135 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
14136
14137         * object.c (mono_object_isinst): fix for arrays
14138
14139         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
14140
14141 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14142
14143         * object.c: don't use mprotect ()  and fix intern pool hash table
14144         lookup for big endian systems.
14145
14146 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14147
14148         * icall.c: change type_is_subtype_of () signature.
14149
14150 2002-02-21  Mark Crichton  <crichton@gimp.org>
14151
14152         * rand.c, rand.h: Added random number generator for
14153         System.Security.Cryptography classes.
14154
14155         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
14156
14157         * icall.c: Added System.Security.Cryptography calls.
14158
14159 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
14160
14161         * class.c, icall.c, metadata.c: better support for pointer types.
14162         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
14163         * reflection.c: Add support for getting custom attrs for properties
14164         and simplify some code.
14165
14166 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14167
14168         * icall.c: change getToken () and add custom attribute GetBlob()helper
14169         method.
14170         * reflection.h: add custom attrs array to the reflection builder structures.
14171         * reflection.c: encode and emit custom attributes for all the relevant
14172         reflection objects. Cache fieldref and methodref tokens. Change
14173         mono_image_create_token() interface to take a MonoDynamicAssembly.
14174         More complete custom attributes decoder. Load custom attributes for
14175         Assembly, Field, Method and Constructor objects, too. Make the
14176         returned array an Attribute[] one, not object[]. Added
14177         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
14178         custom attribute constructor.
14179
14180 2002-02-20  Dick Porter  <dick@ximian.com>
14181
14182         * icall.c:
14183         * rawbuffer.c:
14184         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
14185         problem code out for now).
14186
14187 2002-02-19  Radek Doulik  <rodo@ximian.com>
14188
14189         * object.c (mono_ldstr): use hash table to avoid multiple swapping
14190
14191 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
14192
14193         * icall.c: register the GetCustomAttributes method.
14194         * object.c, object.h: add mono_string_new_len ().
14195         * reflection.h, reflection.c: added mono_runtime_invoke(),
14196         mono_install_runtime_invoke(). Added
14197         mono_reflection_get_custom_attrs () to load custom attributes and
14198         create the attribute objects.
14199
14200 2002-02-19  Dick Porter  <dick@ximian.com>
14201         * threads-dummy-types.c:
14202         * threads-dummy-types.h:
14203         * threads-dummy.c:
14204         * threads-dummy.h:
14205         * threads-pthread-types.c:
14206         * threads-pthread-types.h:
14207         * threads-pthread.c:
14208         * threads-pthread.h:  Deleted obsolete files
14209
14210 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
14211
14212         * class.c (mono_class_vtable): runtime init the class when we
14213         allocate static class data.
14214
14215         * icall.c (ves_icall_System_Array_SetValue): check for null values.
14216
14217         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
14218         and String - but we will need generic marshalling support in the
14219         future. 
14220         (mono_init): set the domain name in a ms compatible way
14221
14222         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
14223         String[].
14224
14225 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
14226
14227         * object.c (mono_array_clone): use alloca() instead of g_malloc  
14228         for sizes
14229
14230         * appdomain.c (mono_domain_unload): impl.
14231
14232 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14233
14234         * appdomain.c, object.c: fix intern pool implementation.
14235         * class.c: fix alignment code.
14236
14237 2002-02-16  Radek Doulik  <rodo@ximian.com>
14238
14239         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
14240         and s2 > s1, just copy lower bytes to be compatible with little
14241         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
14242         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
14243
14244         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
14245         force big_endian to be 1 for big endian machines 
14246         (ves_icall_iconv_new_decoder): ditto
14247
14248 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
14249
14250         * socket-io.c (convert_sockopt_level_and_name): If the system
14251         doesn't define SOL_IP or SOL_TCP, get them by hand using
14252         getprotobyname() and caching the values (because this could be a
14253         slow operation).
14254         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
14255         Use the appropriate struct when the system does support it. Ie,
14256         not all systems have struct ip_mreqn so use struct ip_mreq when
14257         appropriate.
14258
14259 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
14260
14261         * reflection.c: handle finally clauses.
14262
14263 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
14264
14265         * socket-io.c: use g_snprintf() instead of snprintf.
14266
14267 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
14268
14269         * reflection.c (mono_param_get_objects): Cast second argument to
14270         mono_method_get_param_names to a const char** to silence the
14271         compiler warning.
14272
14273         * appdomain.c (mono_domain_assembly_open): Put parens around the
14274         truth statement in the for-loop.
14275
14276         * unicode.c (iconv_convert): Got rid of a compiler warning about
14277         int i being unused when the system has a new iconv.
14278         (iconv_get_length): Same.
14279
14280         * image.c (load_class_names): Cast the second argument to
14281         g_hash_table_insert() to char* to hush compiler warnings about the
14282         arg being a const.
14283         (mono_image_open): Same here.
14284
14285         * socket-io.c: Don't conditionally include sys/filio.h or
14286         sys/sockio.h here anymore since we now get them from
14287         io-layer/io-layer.h
14288         (inet_pton): If the system doesn't support inet_aton, implement
14289         using inet_addr and also #define INADDR_NONE if it isn't defined
14290         by the system.
14291
14292 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
14293
14294         * metadata.c, metadata.h: added function to get packing and size info
14295         of a typedef.
14296         * reflection.h, reflection.c: handle field RVA data. Save info about
14297         the table layout if needed. Assign typedef indexes to all the types
14298         before dumping the info about them to avoid forward reference problems.
14299
14300 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
14301
14302         * socket-io.c (convert_sockopt_level_and_name): ifdef
14303         SO_ACCEPTCONN because it is not defined on my system (old debian)
14304
14305 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14306
14307         * opcode.c: use stddef.h to get NULL.
14308
14309 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
14310
14311         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
14312         for FIONBIO, FIONREAD and SIOCATMARK.
14313         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
14314         define INADDR_NONE and besides, inet_addr() is deprecated and
14315         should not be used. Use inet_pton() instead - it also has the
14316         added bonus that it can easily handle IPv6 addresses as well.
14317         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
14318
14319 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
14320
14321         * decimal.c: remove _MSC_VER conditional.
14322
14323 2002-02-13  Dick Porter  <dick@ximian.com>
14324
14325         * socket-io.c: 
14326         * icall.c: Internal calls for Blocking, Select, Shutdown,
14327         GetSocketOption and SetSocketOption
14328
14329 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14330
14331         * assembly.cs: better resolver: use it instead of some kludgy
14332         code.
14333
14334 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
14335
14336         * reflection.c: the best way to speed-up the compiler is to avoid
14337         infinite loops.
14338
14339 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
14340
14341         * class.c (mono_class_vtable): changed the object layout
14342         (obj->vtable->class). 
14343         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
14344
14345 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14346
14347         * assembly.c: look for assemblies in the assembly dir, too.
14348
14349 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14350
14351         * class.c: fix thinko in mono_class_from_type().
14352
14353 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14354
14355         * exception.h, exception.c: added TypeLoadException.
14356         * object.h, object.c: added mono_array_clone ().
14357         * icall.c: handle throwOnError in AssemblyGetType().
14358         Added Array.Clone().
14359         * opcode.h, opcode.c: use a single value for the opcode val.
14360         Compile fix for non-gcc compilers.
14361
14362 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
14363
14364         * opcodes.c, opcodes.h: export interesting info about opcodes.
14365
14366 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
14367
14368         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
14369         icalls. 
14370
14371         * class.c (class_compute_field_layout): set element_class for enums
14372         (mono_class_create_from_typedef): set element_class for normal classes
14373
14374         * icall.c (ves_icall_System_Enum_get_value): impl.
14375
14376         * class.c (mono_class_create_from_typedef): do not set valuetype
14377         flag for System.ValueType and System.Enum
14378
14379 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
14380
14381         * unicode.c (iconv_convert): fix big endian problem.
14382
14383 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14384
14385         * class.c: add asserts if we are ever going to scribble over memory.
14386         * socket-io.c: not all systems have AF_IRDA defined.
14387
14388 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
14389
14390         * class.c (class_compute_field_layout): do not consider static
14391         fields to compute alignment
14392
14393 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
14394
14395         * appdomain.c (mono_appdomain_get): impl.
14396         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
14397
14398 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14399
14400         * icall.c: ignore "file://" prefix when loading an assembly.
14401
14402 2002-01-23  Dick Porter  <dick@ximian.com>
14403
14404         * socket-io.c:
14405         * icall.c:
14406         * Makefile.am: Added socket support
14407
14408 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
14409
14410         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
14411         code back.  This should return the assemblies that are loaded by
14412         the runtime on behalf of an application domain. 
14413
14414         The current implementation is still broken, it just returns every
14415         assembly loaded, but until we get real applications domain this
14416         will do.
14417
14418 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
14419
14420         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
14421         AppDomain object.
14422
14423 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
14424
14425         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
14426         the mono_class_from_name lookup.
14427         (ves_icall_get_parameter_info): ditto.
14428         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
14429         method.
14430         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
14431
14432 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
14433
14434         * class.c: load also nested classes on class init.
14435         System.ValueType instance methods gets passed boxed
14436         values, unless methods in derived classed that get a pointer to the
14437         data.
14438         * icall.c: use better name parsing code in GetType().
14439         * image.c, image.h: add mono_image_loaded ().
14440         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
14441         * reflection.c, reflection.h: added mono_reflection_parse_type().
14442
14443 2002-01-22  Veronica De Santis <veron78@interfree.it>
14444
14445         * icall.c : Added mapping of internal calls for Manual and Auto reset events
14446         * threads.c : Added the implementation of internal calls for events
14447         * threads.h : Added prototypes of internal calls for events
14448         
14449 2002-01-21  Radek Doulik  <rodo@ximian.com>
14450
14451         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
14452
14453 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
14454
14455         * class.c (mono_class_init): set min_align to 1 (instead of 0)
14456         (mono_class_value_size): use min_align
14457
14458 2002-01-20  Dick Porter  <dick@ximian.com>
14459
14460         * threads.h:
14461         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
14462         so it compiles on w32.
14463
14464 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
14465
14466         * metadata.c (mono_type_stack_size): impl.
14467
14468         * class.c (mono_class_get_field): impl. memberref token
14469
14470 2002-01-16 Veronica De Santis <veron78@@interfree.it>
14471
14472         * icall.h : Added the internal calls mapping for CreateMutex_internal
14473                     and ReleaseMutex_internal.
14474         * threads.h : Added the prototype of mutexes internal calls.
14475         * threads.c : Added the implementations of mutexes internal calls.
14476
14477 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14478
14479         * metaparse.h: removed unused file.
14480         * reflection.c, reflection.h: added stream_data_align () function 
14481         to align data in streams and keep stream aligned. Add support for
14482         exception support in method headers.
14483
14484 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
14485
14486         * unicode.c: make iconv_convert () return the number of bytess written
14487         in the output buffer.
14488
14489 2002-01-15  Dick Porter  <dick@ximian.com>
14490         * threads.c: Make the runtime's idea of infinite timeouts coincide
14491         with the class library's
14492
14493         Fix a particularly egregious bug in mono_thread_cleanup(). That
14494         code was so utterly bogus it must have been written on a Monday.
14495
14496 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14497
14498         * reflection.h: add subtypes field to TypeBuilder.
14499         * reflection.c: encode constants for literal fields.
14500         Handle subtypes. Fix user string token (and add a zero byte)
14501         at the end.
14502         
14503 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
14504
14505         * class.c (mono_class_init): bug fix: assign slot numbers for
14506         abstract methods.
14507
14508 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14509
14510         * reflection.c: don't try to output a code RVA for abstract methods.
14511         Small fixes for method header format. Output parameter info to the
14512         ParamDef table. Save method overriding info to MethodImpl table.
14513         Fix property support. Allow typedef.extends to be a type in the
14514         building assembly.
14515         * verify.c: fix off-by-one error.
14516
14517 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
14518
14519         * class.c: fix mono_class_from_mono_type () for szarray types.
14520         Remove unused cache check in mono_class_from_type_spec().
14521         * icall.c: *type_from_name () functions handle simple arrays and byref.
14522         * reflection.c: handle byref and szarray types. Handle methods without
14523         body (gets P/Invoke compilation working). Handle types and fields in
14524         get_token ().
14525         * reflection.h: add rank to MonoTypeInfo.
14526
14527 2002-01-10  Dick Porter  <dick@ximian.com>
14528
14529         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
14530         internal calls
14531
14532 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14533
14534         * icall.c: initialize class in type_from_handle ().
14535         Loop also in parent classes for get_method ().
14536         * reflection.c: properly encode class and valuetype types.
14537         Start on encoding TypeBuilder types. Handle fieldrefs.
14538         Use correct length when registering a user string.
14539         Handle ConstructorBuilder and MonoMethod in get_token ().
14540         Make mono_type_get_object () aware of cached types.
14541         * object.c: back out change to mono_string_new ().
14542
14543 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
14544         * object.c: mono_string_new should return a NULL when the string 
14545         passed in is NULL -- not try to deference it.
14546         
14547 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
14548
14549         * icall.c: hack to make IsSubType work for TypeBuilders.
14550         * reflection.c: emit constructors before methods.
14551         Retrieve param names in mono_param_get_objects().
14552
14553 2002/01/05  Nick Drochak  <ndrochak@gol.com>
14554
14555         * Makefile.am: fix list of headers and sources so automake 1.5
14556         doesn't complain. Removed \# at end of list.
14557
14558 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14559
14560         * reflection.c: get token for a method ref. Set return type of
14561         constructor to void.
14562         * loader.c: debug message.
14563         * class.c: typo fix.
14564
14565 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
14566
14567         * icall.c: fix array init with rank > 1. FindMembers
14568         loops in parent class as well.
14569         * image.c: do not insert nested types in name cache.
14570         * reflection.c: warning fix.
14571         * reflection.h: add override method (for interface impl).
14572
14573 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
14574
14575         * metadata.c: fix customattr decoding.
14576
14577 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
14578
14579         * rawbuffer.cs: Added native Win32 implementation, avoids using
14580         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
14581
14582 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
14583
14584         * class.c: make the low-level routines handle the cache.
14585
14586 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
14587
14588         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
14589
14590 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
14591
14592         * class.c: fix mono_array_element_size() for objects.
14593         * class.h, class.c: add properties to MonoClass and load them
14594         at init time.
14595         * icall.c: check with isinst() when assigning a value to an array
14596         instead of requiring the classes to match exactly.
14597         Implemented icall for System.Type::GetType().
14598         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
14599         enums. Handle bindingflags when looking for methods and fields.
14600         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
14601         and mono_metadata_methods_from_property().
14602         * reflection.h, reflection.c: added structures for propreties,
14603         parameters and enums. Implemented mono_property_get_object() and
14604         mono_param_get_objects().
14605
14606 2001-12-18  Dick Porter  <dick@ximian.com>
14607
14608         * file-io.c: Use mono_string_to_utf16() instead of
14609         mono_string_chars()
14610
14611         * object.c: Added mono_string_to_utf16(), which copies the non
14612         NULL-terminated MonoString into a new double-null-terminated
14613         buffer.
14614
14615 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
14616
14617         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
14618
14619 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
14620
14621         * file-io.c: raise exceptions if handle is invalid.
14622
14623 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
14624
14625         * assembly.c: yet another check for mscorlib.
14626         * class.c, class.h: load nesting info for classes.
14627         * icall.c: many new functions to support the Reflection classes.
14628         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
14629         * reflection.h, reflection.c: mono_image_create_token(),
14630         mono_assembly_get_object(), mono_type_get_object(),
14631         mono_method_get_object(), mono_field_get_object(): methods to return
14632         objects that parallel the C representation of assemblies, types,
14633         methods, fields.
14634
14635 2001-12-11  Dick Porter  <dick@ximian.com>
14636
14637         * icall.c:
14638         * file-io.c: Internal calls for file IO.
14639
14640 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
14641
14642         * tabledefs.h: missing FileAttributes.
14643         * verify.h, verify.c: use is_valid_string () to simplify and check for
14644         valid strings more correctly. Fix warnings and speeling.
14645         Check more tables: Filed, File, ModuleRef, StandAloneSig.
14646         Check code: branches, maxstack, method calls.
14647
14648 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
14649
14650         * object.c (mono_object_allocate): removed static, so that the jit
14651         can allocate value types.
14652
14653         * icall.c (ves_icall_System_DateTime_GetNow): impl.
14654
14655 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14656
14657         * class.c: init enum types right away and register the
14658         token->MonoClass map in mono_class_create_from_typedef ().
14659         * verify.h, verify.c: first cut of the verifier.
14660         * pedump.c: add --verify switch to verify metadata tables.
14661         * tabledefs.h: add some missing enums.
14662
14663 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
14664
14665         * class.c (mono_install_runtime_class_init): impl.
14666         (mono_class_init): renamed mono_class_metadata_init to
14667         mono_class_init, also removed the metadata_inited flag
14668
14669         * object.c (mono_object_isinst): use faster algorithm
14670
14671 2001-11-30  Radek Doulik  <rodo@ximian.com>
14672
14673         * mono-endian.h: reverted last change
14674         added function prototypes
14675
14676         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
14677         add mono-endian.c back
14678
14679         * mono-endian.c: returned back, as Paolo pointed out, it's needed
14680         for unaligned access, I've mistaked it with endianess. I am
14681         sorry.
14682         (mono_read16): fix reverted endianess
14683         (mono_read64): ditto
14684         (mono_read32): ditto
14685
14686 2001-11-30  Dick Porter  <dick@ximian.com>
14687
14688         * exception.c: Implement mono_exception_from_name()
14689
14690 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14691
14692         * metadata.h, metadata.c: remove params_size and locals_size and their
14693         calculation from the metadata code: they are only usefult to the
14694         interp.
14695
14696 2001-11-29  Radek Doulik  <rodo@ximian.com>
14697
14698         * object.c (mono_ldstr): swap bytes here, it's probably not the
14699         best place, but works for me now, I'll redo it once I know mono
14700         better, also note that I add PROT_WRITE and don't reset back, also
14701         note that it's only affects big endians, so x86 should be OK
14702
14703         * mono-endian.h (read16): use just glib macros for both endians
14704
14705         * mono-endian.c: removed as glib macros are used in in
14706         mono-endian.h so we don't need to care about endianess for read
14707         macros as glib does that for us already
14708
14709 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
14710
14711         * class.h, class.h: take minimum alignment into consideration so
14712         that the fields of a class remain aligned also when in an array.
14713
14714 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14715
14716         * loader.h, loader.c: add mono_method_get_param_names().
14717         * class.c: 0-init class fields.
14718
14719 2001-11-26  Dick Porter  <dick@ximian.com>
14720
14721         * icall.c:
14722         * threads-types.h:
14723         * threads.c: New file that handles System.Threading on all platforms
14724
14725         * object.c: 
14726         * object.h: Remove the synchronisation struct from MonoObject,
14727         replace it with a pointer that gets initialised on demand
14728
14729         * Makefile.am: Replace all the system-specific threading code with
14730         a single file that uses the new wrapper library
14731
14732 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
14733
14734         * class.c, class.h: add mono_install_trampoline() so that the runtime
14735         can register a function to create a trampoline: removes the ugly
14736         requirement that a runtime needed to export arch_create_jit_trampoline.
14737         * object.h, object.c: added mono_install_handler() so that the runtime
14738         can install an handler for exceptions generated in C code (with
14739         mono_raise_exception()). Added C struct for System.Delegate.
14740         * pedump.c: removed arch_create_jit_trampoline.
14741         * reflection.c: some cleanups to allow registering user strings and
14742         later getting a token for methodrefs and fieldrefs before the assembly
14743         is built.
14744         * row-indexes.h: updates and fixes from the new ECMA specs.
14745
14746 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
14747
14748         * class.h, class.c: add enum_basetype field to MonoClass.
14749         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
14750         to get index in the constant table reated to a field, param or
14751         property.
14752         * reflection.h, reflection.c: handle constructors. Set public-key and
14753         version number of the built assembly to 0.
14754         * row-indexes.h: update from new ECMA spec.
14755
14756 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14757
14758         * class.h, class.c: add a max_interface_id to MonoClass.
14759         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
14760         since it's used to do that. Added mono_type_type_from_obj().
14761         Make GetType() return NULL instead of segfaulting if the type was not
14762         found. Handle simple arrays in assQualifiedName.
14763         * object.h: add a struct to represent an Exception.
14764         * reflection.c: output call convention in method signature.
14765         Add code to support P/Invoke methods and fixed offsets for fields.
14766
14767 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
14768
14769         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
14770         the value.
14771         * icall.c: use mono_array_addr instead of array->vector: fixes the
14772         reflection image writing.
14773         * reflection.c: init call convention byte to 0 in method signature.
14774         Encode the property signature. Don't output property-related methods
14775         twice. Really process the properties for a type (don't cast a field to
14776         a property, my mom always told me that).
14777         Fix 64 bit issues in pointer alignment in a different and more
14778         readable way.
14779
14780 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
14781
14782         * loader.h: Removed type class from MonoDefaults, added monotype
14783
14784         * loader.c: Loaded MonoType, removed loading of Type
14785
14786         * icall.c (my_mono_new_object): Now returns a System.MonoType,
14787         and fills in System.Type._impl with a RuntimeTypeHandle rather
14788         than the actual MonoClass *
14789
14790         (ves_icall_type_from_handle): change from type_class to
14791         monotype_class
14792
14793         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
14794         implemented
14795
14796         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
14797         implemented
14798
14799         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
14800
14801         (ves_icall_System_Reflection_Assembly_GetType): implemented
14802
14803         (ves_icall_System_MonoType_assQualifiedName): implemented
14804
14805         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
14806
14807 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
14808
14809         * assembly.c (mono_assembly_open): Implement a cache for the
14810         assemblies. 
14811
14812         (mono_assembly_close): only destroy the assembly when the last
14813         reference is gone.
14814         
14815 2001-11-09  Dick Porter  <dick@ximian.com>
14816
14817         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
14818
14819 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
14820
14821         * class.c (mono_class_metadata_init): bug fix: compute the right slot
14822
14823 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14824
14825         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
14826         from Martin Weindel.
14827         * object.h: add mono_string_chars ().
14828
14829 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
14830
14831         * reflection.c (build_compressed_metadata): Eliminates warnings
14832         and uses 64-bit clean code.
14833
14834         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
14835         (mono_type_equal): Change signature to eliminate warnings.
14836
14837 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14838
14839         * icall.c, loader.c: remove the internalcall array constructors.
14840         Changes to match the new MonoArray structure.
14841         * object.h, object.c: an array object doesn't allocate an extra
14842         vector. Add mono_array_new_full () to create jagged arrays easily.
14843
14844 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14845
14846         * metadata.h, metadata.c: add mono_metadata_field_info () to
14847         retreive all the info about a field from vairous tables.
14848         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
14849         * class.h, class.c: augment MonoClassField with more info.
14850         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
14851         policy and load a field's RVA if needed.
14852
14853 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
14854
14855         * class.c (mono_class_metadata_init): create a trampoline for all
14856         virtual functions instead of actually compiling them.
14857
14858 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
14859
14860         * class.h, class.c: include name in MonoClassField.
14861         * class.c: fix fundamental type of System.Object and System.String.
14862         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
14863         tokens in ldtoken.
14864         * icall.c: remove internalcalls for the Reflection stuff that is now
14865         done in C# code.
14866         * loader.c: mono_field_from_memberref () implementation.
14867         * mono-endian.c: thinko (s/struct/union/g).
14868         * object.c, object.h: make the mono_string_* prototypes actually use
14869         MonoString instead of MonoObject.
14870         * reflection.c, reflection.h: updates for changes in the reflection
14871         code in corlib: we use C structures that map to the actual C# classes.
14872         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
14873         fat method header if needed and use the info from the ILGenerator for
14874         methods. Handle fields in types. Misc fixes.
14875
14876 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
14877
14878         * class.c (mono_class_metadata_init): bug fix: always allocate
14879         space for static class data
14880
14881 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
14882
14883         * class.c (mono_compute_relative_numbering): use relative
14884         numbering to support fast runtime type checks.
14885
14886 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
14887
14888         * class.c (mono_class_create_from_typeref): added debugging output
14889         to print class name when MonoDummy is returned instead of real class
14890
14891 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
14892
14893         * class.c (mono_class_metadata_init): interface offset table now
14894         contains pointers into the vtable - this is more efficient for the jit
14895
14896 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
14897
14898         * class.c (mono_class_metadata_init): use a temporary vtable (the
14899         old algorithm only worked for the interpreter, but not for the jit)
14900
14901 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
14902
14903         * loader.c (method_from_memberref): use mono_class_get to get the
14904         class of an array instead of using System.Array directly.
14905         (mono_get_method): also add MEMBERREF methods to the method cache
14906         which usefull for arrays.
14907
14908 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
14909
14910         * pedump.c (arch_compile_method): added to compute vtable entry
14911
14912         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
14913         number of interfaces.
14914         
14915         * class.h: merged MonoArrayClass into MonoClass
14916
14917         * class.c (mono_class_create_from_typedef): compute the vtable size and
14918         allocate space to include the vtable inside MonoClass
14919         (mono_class_metadata_init): initialize the vtable
14920
14921 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
14922
14923         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
14924         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
14925         * image.c: endian fixes by Laurent Rioux.
14926         * object.h, object.c: rename MonoStringObject to MonoString and
14927         MonoArrayObject to MonoArray. Change some function names to conform to
14928         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
14929         guint16* as first argument, so don't use char*.
14930         Provide macros to do the interesting things on arrays in a portable way.
14931         * threads-pthread.c: updates for the API changes and #include <sched.h>
14932         (required for sched_yield()).
14933         * icall.c: updates for the API changes above.
14934         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
14935         platforms that need them.
14936
14937 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
14938
14939         * class.c: set the correct type for all the fundamental
14940         type when loading the class.
14941
14942 2001-10-05  Dick Porter  <dick@ximian.com>
14943
14944         * threads-pthread.c (pthread_mutex_timedlock): Simple
14945         compatibility version for C libraries that lack this call.
14946
14947 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
14948
14949         * class.c: MonoTypes stored in MonoClass are stored as
14950         fundamental MonoTypes when the class represents a
14951         fundamental type (System.Int32, ...).
14952         The TypeHandle return by ldtoken is a MonoType*.
14953         * icall.c: ves_icall_get_data_chunk () write out all the
14954         PE/COFF stuff. Implement ves_icall_define_method (),
14955         ves_icall_set_method_body (), ves_icall_type_from_handle ().
14956         * image.c: properly skip unknown streams.
14957         * loader.h, loader.c: add type_class to mono_defaults.
14958         * metadata.c, metadata.h: export compute_size () as
14959         mono_metadata_compute_size () with a better interface.
14960         Typo and C&P fixes.
14961         * pedump.c: don't try to print the entry point RVA if there is no entry point.
14962         * reflection.c, reflection.h: many cleanups, fixes, output method
14963         signatures and headers, typedef and typeref info, compress the metadata
14964         tables, output all the heap streams, cli header etc.
14965         * row-indexes.h: typo fixes.
14966
14967 2001-10-04  Dick Porter  <dick@ximian.com>
14968
14969         * object.h: Add a synchronisation mutex struct to MonoObject
14970
14971         * object.c (mono_new_object): Initialise the object
14972         synchronisation mutexes
14973
14974         * icall.c: System.Threading.Monitor internal calls
14975         
14976         * threads-pthread.h:
14977         * threads-pthread.c: System.Threading.Monitor internal calls
14978
14979         * threads-types.h: New file, includes the system-specific thread
14980         structures
14981         
14982         * threads-pthread-types.h:
14983         * threads-pthread-types.c: New files, handle pthread-specific
14984         synchronisation types
14985
14986         * threads-dummy-types.h: 
14987         * threads-dummy-types.c: New files of dummy support for
14988         thread-specific types
14989
14990         * metadata.c:
14991         * image.c:
14992         * pedump.c: include mono-endian.h not endian.h
14993         
14994         * Makefile.am: More threads files.
14995         Name mono-endian.h not endian.h
14996
14997 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
14998
14999         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
15000         stuff and implement a few more bits.
15001         * icall.c: a field needs to be dereferenced twice. Do not use the same
15002         name for two variables in the same scope.
15003         * image.c, image.h: cleanups.
15004
15005 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
15006
15007         * class.c (mono_class_metadata_init): bug fix: compute the right size
15008
15009 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
15010
15011         * icall.c: implemented some of the Reflection internalcalls.
15012         * image.c, image.h: start writing out the PE/COFF image.
15013         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
15014         that does the reverse than decode_blob_size ().
15015         * object.c: use mono_metadata_encode_value (). Move here
15016         temporary implementation of mono_string_to_utf8 ().
15017         * rawbuffer.c: make malloc_map static.
15018
15019 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15020
15021         * metadata.c: fix type comparison for arrays.
15022         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
15023         Added a couple of new classes to monodefaults.
15024         * icall.c: added a couple of Reflection-related internalcalls.
15025         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
15026         Added a byval_arg MonoType to MonoClass.
15027
15028 2001-09-28  Dick Porter  <dick@ximian.com>
15029
15030         * icall.c:
15031         * threads-pthread.h: 
15032         * threads-pthread.c: Implemented internal calls for
15033         LocalDataStoreSlot operations.  Applied mutexes around all shared
15034         data.  Reworked the thread creation and Start() operations to
15035         avoid a race condition.
15036         
15037         * threads-dummy.h:
15038         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
15039
15040 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
15041
15042         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
15043
15044 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
15045
15046         * class.c, loader.c: warn and return NULL instead of erroring out.
15047         * icall.c: added System.AppDomain::getCurDomain().
15048         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
15049
15050 2001-09-25  Dick Porter  <dick@ximian.com>
15051
15052         * threads-pthread.h:
15053         * threads-pthread.c: Implemented timed thread joining and added
15054         System.Threading.Thread::Join_internal internal call
15055
15056         * icall.c: Added System.Threading.Thread::Join_internal internal call
15057
15058         * threads-dummy.h:
15059         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
15060
15061 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
15062
15063         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
15064         mono_string_intern () to implement the semantics of the ldstr opcode
15065         and the interning of System.Strings.
15066         * icall.c: provide hooks to make String::IsIntern and String::Intern
15067         internalcalls.
15068
15069 2001-09-23  Dick Porter  <dick@ximian.com>
15070
15071         * threads-dummy.c: 
15072         * threads-dummy.h: New files of dummy threading routines
15073
15074         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
15075         support code based on system specifics
15076
15077         Rename PTHREAD_LIBS to THREAD_LIBS
15078         
15079 2001-09-23  Dick Porter  <dick@ximian.com>
15080
15081         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
15082         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
15083         internal calls.
15084         (mono_thread_init): Set up a Thread object instance to return when
15085         the main thread calls Thread.CurrentThread
15086         (mono_thread_cleanup): Wait for all subthreads to exit
15087
15088         * icall.c: New internal calls for System.Threading.Thread::Sleep
15089         (including Schedule) and CurrentThread
15090
15091         * threads.h: New file, to insulate thread-specific stuff from the
15092         rest of the code
15093
15094 2001-09-21  Dick Porter  <dick@ximian.com>
15095
15096         * threads-pthread.h: 
15097         * threads-pthread.c: New file, for handling pthreads-style
15098         threading support.  Start() now starts a new thread and executes
15099         the ThreadStart delegate instance.
15100
15101         * icall.c: Added the internalcall for
15102         System.Threading.Thread::Start_internal
15103
15104         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
15105
15106 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
15107
15108         * loader.c: work around the different signatures for delegates
15109         constructors csc generates in compiled code vs the ones compiled in mscorlib.
15110
15111 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15112
15113         * class.h, class.c: add mono_class_get_field_from_name ().
15114         * *: Fix C comments and other ANSI C issues.
15115
15116 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
15117
15118         * endian.h, assembly.c: fix some endianness issues.
15119
15120 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
15121
15122         * loader.h, load.c: add delegate_class to mono_defaults.
15123         Handle runtime provided methods in mono_get_method ().
15124
15125 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
15126
15127         * loader.c (mono_get_method): use pinvoke for internal call
15128
15129         * icall.c: use pinvoke for internal call
15130
15131         * loader.c (method_from_memberref): set the method name
15132
15133 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
15134
15135         * metadata.c: help the compiler generate better code for
15136         mono_class_from_mono_type ().
15137
15138 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
15139
15140         * class.c (mono_class_metadata_init): delayed computing of the
15141         class size to mono_class_metadata_init ()
15142
15143 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
15144
15145         * class.c, class.h: add an interfaces member to MonoClass.
15146         * image.c, image.h: add assembly_name field to MonoImage
15147         from the assembly table.
15148         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
15149
15150 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15151
15152         * class.c: Handle Array in mono_class_from_mono_type ().
15153         * metadata.c, pedump.c: some endian fixes.
15154
15155 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15156
15157         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
15158         * metadata.c: fix small problem introduced with the latest commit.
15159
15160 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
15161
15162         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
15163         We don't need a MonoMetadata pointer anymore to compare signatures in
15164         mono_metadata_signature_equal (), update callers.
15165         Reduced memory usage an number of allocations for MonoMethodHeader and
15166         MonoMethodSignature.
15167
15168 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
15169
15170         * metadata.c: added compare for szarray.
15171
15172 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
15173
15174         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
15175         and add a couple more types to it and mono_defaults. Give an hint on
15176         classes that need implementing in our corlib and are referenced
15177         in mscorlib.
15178
15179 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
15180
15181         * class.h, class.c: keep track if a class is also an Enum.
15182         * loader.c: Implement a couple more types for use in libffi
15183         marshalling. Gives better diagnostics when failing to dlopen
15184         a library. Set method->klass for P/Invoke methods, too.
15185
15186 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
15187
15188         * class.c, class.h: add a MonoType this_arg to MonoClass that
15189         represents a pointer to an object of the class' type that
15190         can be used by the interpreter and later the type cache.
15191         Add best guess alignment info for valuetype objects.
15192
15193 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
15194
15195         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
15196         into MonoType: one less level of indirection and allocation and
15197         simplifies quite a bit of code. Added cache for MonoTypes that are
15198         used frequently, so that we don't need to allocate them all the time.
15199
15200 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
15201
15202         * class.c (mono_class_create_from_typedef): System.Enum is also a
15203         value type, although it does not derive from System.ValueType
15204         (maybe a bug in the ms compiler?)
15205
15206         * metadata.c (mono_type_size): return the right size for value types
15207
15208         * loader.c (mono_get_method): only initialize method header if not abstract
15209
15210         * class.c (mono_class_from_mono_type): use mono_default values. 
15211
15212 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
15213
15214         * *: use MonoClass pointers instead of <type_tokens>
15215         
15216         * class.h: new flag: metadata_inited.
15217
15218         * class.c (mono_class_metadata_init): impl.
15219         (mono_class_instance_size): impl.
15220         (mono_class_data_size): impl.
15221
15222 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15223
15224         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
15225         MonoClass now has the name and name_space fields. 
15226         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
15227         mono_get_method () takes and optional MonoClass as argument.
15228         Removed mono_typedef_from_name() and added mono_class_token_from_name()
15229         instead that takes advantage of a map from class names to typedef
15230         tokens in MonoImage.
15231
15232 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
15233
15234         * metadata.c: zero is not a valid alignment boundary.
15235         Merge MONO_TYPE_VOID in default decoding code.
15236
15237 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
15238
15239         * image.h: merged MonoMetadata into MonoImage
15240
15241         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
15242         identify the type of elements.
15243
15244 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
15245
15246         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
15247         * cil-coff.h: split MonoMSDOSHeader and add size info.
15248         * image.c: add some consistency checks.
15249         * metadata.c: fix row size computation: one programmer
15250         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
15251         add explanation for the locator routine.
15252         Fix decoding of size in method header.
15253         
15254 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
15255
15256         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
15257         (g_concat_dir_and_file): Bring g_concat_dir_and_file
15258         function from gnome-libs.  This uses the right path separator
15259         based on the OS, and also works around a bug in some systems where
15260         a double slash is not allowed. 
15261         (default_assembly_name_resolver): Use g_concat_dir_and_file
15262         (mono_assembly_open): ditto.
15263
15264 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
15265
15266         * metadata.c (mono_metadata_signature_equal): impl.
15267
15268         * *: void is now a realy MonoType (instead of using NULL)
15269         
15270         * metadata.c (do_mono_metadata_parse_type): use
15271         mono_metadata_parse_type to parse void value.
15272
15273 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
15274
15275         * metadata.c, metadata.h: in the signature and method header store
15276         only the space required for holding the loca vars and incoming arguments.
15277
15278 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
15279
15280         * metadata.c (do_mono_metadata_parse_type): treat void like any
15281         other type (instead of assigning NULL);
15282
15283 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
15284
15285         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
15286
15287 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
15288
15289         * image.c (do_mono_image_open): added a cache for arrays.
15290
15291 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15292
15293         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
15294         decode a single column from a row in a metadata table and changes
15295         to take advantage of it in the typedef locator (gives a nice speed up).
15296         Store offset info for function params.
15297
15298 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
15299
15300         * image.h (MONO_IMAGE_IS_CORLIB): removed 
15301
15302 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
15303
15304         * assembly.c: how could mono_assembly_close () had ever worked?
15305         * metadata.c, metadata.h: provide offset info for local vars.
15306         Implement mono_type_size () to take care of alignment as well
15307         as size (it was mono_field_type_size in cli/class.c before).
15308
15309 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
15310
15311         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
15312
15313         * assembly.h (CORLIB_NAME): set to corlib.dll
15314
15315         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
15316
15317 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15318
15319         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
15320         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
15321         tokentype.h: massive namespace cleanup.
15322
15323 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15324
15325         * metadata.h, metadata.c: decode exception clauses when parsing method header.
15326
15327 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
15328
15329         * metadata.c (mono_metadata_free_type): added check for type !=
15330         NULL (void) before calling mono_metadata_free_type()
15331
15332 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
15333
15334         * metadata.h, row_indexes.h: added header with enumerations to use
15335         to index in the columns from tables in metadata and to decode coded
15336         tokens: we should start using this instead of embedding magic numbers
15337         all over the code.
15338
15339 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
15340
15341         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
15342         Move metadata_t info from cli_image_info_t to MonoImage, where
15343         it's easily accessible. Changed all the uses accordingly.
15344         Added the method and class caches to MonoImage.
15345         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
15346         and mono_metadata_decode_value () signature to be more consistent
15347         with the other parse functions (and simplify code). Taken advantage
15348         of zero-length array allocation with GCC. Removed reduntant (and
15349         wrong) MonoFieldType struct and use MonoParam instead. Changed
15350         mono_metadata_parse_field_type () to use common code for parsing.
15351         Added mono_metadata_typedef_from_field () and
15352         mono_metadata_typedef_from_method () to lookup a typedef index from a
15353         field or method token.
15354         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
15355
15356 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
15357
15358         * metadata.c (mono_metadata_parse_field_type): Implement. 
15359         (do_mono_metadata_parse_type): Split engine from
15360         mono_metadata_parse_type, so that we can create smaller structures
15361         for things that just have one pointer to the MonoType (look at
15362         the MonoFieldType)
15363
15364 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
15365
15366         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
15367         as Jan Gray found out, it is incorrect. 
15368
15369 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
15370
15371         * assembly.c: Implement asssembly loading.  This loads an image
15372         and loads all the referenced assemblies.  Come to think of it, we
15373         could always do lazy loading of the assemblies. 
15374
15375         * image.c (mono_image_open): Keep loaded images in a hashtable.
15376
15377         * image.h (MonoImage): Add reference count.
15378
15379 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
15380
15381         * assembly.c (mono_assembly_open): Keep track of the file name in
15382         case the assembly has no ASSEMBLY table.
15383
15384         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
15385         from get.c here.
15386
15387 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
15388
15389         * metadata.c, metadata.h: decode local vars in method header
15390         parse function. Change callers accordingly.
15391
15392 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
15393
15394         * metadata.h, cil-coff.h: protect against multiple inclusion.
15395         Added some new structures to hold information decoded from metadata:
15396         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
15397         and relevant decoding/free functions.
15398         * metadata.c: implement decoding functions. Add warning for out of bounds
15399         index in mono_metadata_locate(). Implement mono_get_method () to retreive
15400         all the info about a method signature and invocation. Remove check on
15401         uninitialized local var in parse_mh() and fix memory leak.
15402
15403 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
15404
15405         * metadata.h: More macros.
15406
15407         * tokentype.h: New file.
15408
15409 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
15410
15411         * assembly.c: added a consistency check and initialize
15412         some structures with g_new0().
15413         * metadata.c: fixed a couple more bugs in table size computation
15414         and add other checks for out-of bound access to metadata.
15415
15416 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
15417
15418         * metatada.c: fix bugs computing table sizes. Spew a
15419         warning when index in string heap is out of bounds.
15420
15421 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
15422
15423         * metadata.h: Add a couple of macros to manipulate tokens. 
15424
15425 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15426
15427         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
15428         cli_section_tables).
15429
15430 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
15431
15432         * metadata.c (mono_metadata_user_string): New function, provides
15433         access to the UserString heap. 
15434
15435 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
15436
15437         * metadata.c: Add inline documentation.
15438
15439 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
15440
15441         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
15442         files. 
15443
15444 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
15445
15446         * typeattr.h: New file, TypeAttribute flags. 
15447
15448 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
15449
15450         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
15451         mono_assembly_ensure_section): Section loading code.
15452         (load_section_tables): Load the sections.
15453
15454         * mono/metadata/metadata.c (mono_metadata_locate_token,
15455         mono_metadata_locate): Functions to locate the information
15456         definition given a token or a table and an index.
15457         (mono_metadata_compute_table_bases): New.
15458         (compute_size): New function to compute the sizes of the various
15459         tables.
15460
15461         * mono/metadata/metadata.h: Finish listing the different index
15462         types. 
15463
15464         * mono/metadata/pedump.c: Improve to dump new information.
15465
15466 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
15467
15468         * mono/metadata/metadata.c: Entered all the tables matching
15469         Beta2. 
15470
15471         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
15472