2006-12-28 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2006-12-28  Martin Baulig  <martin@ximian.com>
2
3         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
4
5 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
6
7         * reflection.c: patch from Rolf Bjarne Kvinge to fix
8         getting a token for an EnumBuilder.
9
10 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
11
12         * reflection.c: be more careful in case resource generation
13         fails to create the data array.
14
15 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
16
17         * sgen-gc.c: write barrier for clone and fix unregister handles.
18
19 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
20
21         * reflection.c: some fixes needed in the generics code for the moving GC.
22
23 2006-12-22  Robert Jordan  <robertj@gmx.net>
24
25         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
26         account. Fixes bug #80299.
27
28 2006-12-21  Raja R Harinath  <rharinath@novell.com>
29
30         Fix WaitHandle usage in delegates.
31         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
32         * object.c (mono_wait_handle_new): Use the property set method to
33         initialize the handle.
34         (mono_wait_handle_get_handle): New.
35         * threadpool.c (mono_async_invoke): Use it.
36         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
37         Likewise.
38         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
39
40 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
41
42         * marshal.c (emit_marshal): Call emit_marshal_variant and
43         emit_marshal_com_interface when applicable.
44         (emit_marshal_variant, emit_marshal_com_interface): Add
45         methods for this case and remove if's from emit_marshal_object.
46         
47 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
48
49         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
50
51 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
52
53         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
54         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
55         and GlobalFree on Windows. Remove FIXME.
56
57 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
58
59         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
60         implementation for managed objects.
61
62 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
63
64         * object.c: implemented code to be used for checking
65         that no reference field overlaps with non-references.
66
67 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
68
69         * threadpool.c: fix queue code to be compatible with the
70         moving GC.
71
72 2006-12-18  Miguel de Icaza  <miguel@novell.com>
73
74         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
75         in structures by throwing ArgumentNullException.
76
77         (emit_marshal_safehandle): Also when they are null parameters.
78
79         (emit_marshal_safehandle): Add support for ref
80         SafeHandles parameters
81
82 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
83
84         * profiler.c: updated to use the mono-dl API instead of
85         gmodule.
86
87 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
88
89         * profiler.c: updated to use the mono-dl dynamic loading
90         API instead of gmodule.
91
92 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
93
94         * profiler.c: use readlink, older versions of glib don't have
95         g_file_read_link ().
96
97 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
98
99         * profiler.c: try to detect the path to mono if libc fails to provide
100         a useful name (bug #80286).
101
102 2006-12-16  Raja R Harinath  <rharinath@novell.com>
103
104         Fix #80242
105         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
106         instance, use the generic type definition instead.
107         (ves_icall_Type_GetNestedTypes): Likewise.
108         * class.c (mono_class_create_generic): Always set the
109         nested_classes of a generic instance to NULL, even if the generic
110         type definition has nested types.
111
112 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
113
114         * marshal.c (mono_string_from_bstr): Revert previous Windows change
115         and fix on Linux.
116         
117 2006-12-15  Miguel de Icaza  <miguel@novell.com>
118
119         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
120         my arguments were in the wrong order.   I also fixed the Windows
121         version which seems to have had the same issue.
122
123         (mono_free_bstr): On Unix, this is g_free.
124         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
125         conversions (for the tests in corlib to pass).
126
127 2006-12-14  Miguel de Icaza  <miguel@novell.com>
128
129         * marshal.c (emit_ptr_to_object_conv): For now, ignore
130         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
131         exception if a ref SafeHandle in a struct has changed).
132         
133         (emit_struct_conv): Do not perform layout checks for classes
134         derived from SafeHandle, as those are specially handled. 
135
136         (emit_object_to_ptr_conv): Add support for
137         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
138
139         (emit_marshal_safehandle): Implement conversion of return values
140         of safehandles (MARSHAL_ACTION_CONV_RESULT).
141         
142         * threads.c: WaitHandle now is compiled with two different handles
143         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
144         for 2.0.
145         
146         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
147         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
148         these routines to cope with both kinds of fields.
149
150 2006-12-12  Miguel de Icaza  <miguel@novell.com>
151
152         * metadata.c (mono_type_to_unmanaged): Handle the case where
153         type->data.klass is a SafeHandle, and in that case, return the
154         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
155         MONO_MARSHAL_CONV_SAFEHANDLE. 
156
157 2006-12-11  Miguel de Icaza  <miguel@novell.com>
158
159         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
160         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
161         calling emit_marshal_object.
162
163         (emit_marshal_safehandle): Implement marshalling of
164         SafeHandle parameters (no ref support yet).
165
166         (MarshalAction): Document the defines as I implement
167         them for SafeHandle.
168
169         (emit_marshal_object): indentation police.
170
171         * class-internals.h: Define MonoSafeHandle.
172         Add safehandle_class to MonoDefaults type.
173
174         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
175         list of classes to check for fields. 
176
177         * domain.c (mono_init_internal): Add SafeHandle to the list of
178         mono_defaults loaded.
179
180 2006-12-15  Raja R Harinath  <rharinath@novell.com>
181
182         Fix #80253
183         * reflection.c (mono_reflection_bind_generic_parameters): If the
184         generic type definition is a type builder, ensure that it is fully
185         initialized before instantiating it.  Kill some dead code.
186
187 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
188
189         * object.c: clear the loader_error () before loading
190         more metadata stuff (bug #80258).
191
192 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
193
194         * icall.c, icall-defs.h: type modifiers icalls for
195         parameters and properties.
196
197 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
198
199         * object.c, icall.c: fixed warnings.
200
201 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
202
203         * marshal.c: fixed a couple of leaks and coding style in a few places.
204
205 2006-12-08  Dick Porter  <dick@ximian.com>
206
207         * process.c: Cope with NULL ProcessStartInfo arguments on windows
208         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
209         80173.
210
211 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
212
213         * process.c: ProcessStartInfo may have only filename set and
214         arguments can be NULL.
215
216 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
217
218         * icall.c: fix leak found by Robert Jordan.
219
220 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
221
222         * marshal.c, marshal.h: generate managed method to access an element
223         of a multi-dimensional array.
224
225 2006-11-30  Paolo Molaro (lupus@ximian.com)
226
227         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
228
229 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
230
231         * icall.c: back out GetFields () fix until the serialization code is
232         fixed to not depend on the incorrect behaviour.
233
234 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
235
236         * profiler.c: provide defaults if none are set.
237
238 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
239
240         * Makefile.am, attrdefs.h: new public header file with
241         constants for attributes for use by embedders.
242
243 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
244
245         * icall.c: GetFields () fix for bug #80064.
246
247 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
248
249         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
250         removed long unused icalls.
251
252 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
253   
254         * marshal.c: 
255                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
256                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
257                 can be generated without a delegate class.
258                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
259         
260         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
261
262 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
263
264         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
265         #80069.
266
267 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
268
269         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
270         icall-def.h: added icalls needed by System.GC.
271
272 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
273
274         * loader.c: ensure the class in catch clauses is handled
275         correctly for generics methods (fixes bug#79980).
276
277 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
278
279         * monitor.h, monitor.c: added mono_locks_dump () function
280         to help debug deadlocks involving managed locks.
281
282 2006-11-13  Dick Porter  <dick@ximian.com>
283
284         * file-io.c (get_file_attributes): If the file is a symlink try
285         and get the stat data for the target, but also add the
286         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
287         the specs for the windows symlink support, but will probably have
288         to be reworked when I have test data from a vista machine.  Fixes
289         bug 79887.
290
291 2006-11-13  Dick Porter  <dick@ximian.com>
292
293         * gc.c (mono_domain_finalize): 
294         * marshal.c (mono_delegate_begin_invoke): 
295         * threadpool.c (socket_io_init, mono_thread_pool_init)
296         (mono_thread_pool_finish): 
297         * monitor.c (mono_monitor_try_enter_internal): 
298         * threads.c (mono_thread_resume, mono_thread_init)
299         (mono_thread_suspend_all_other_threads)
300         (mono_thread_execute_interruption): 
301         * appdomain.c (mono_domain_unload): Check for NULL error returns
302         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
303         75733.
304
305 2006-11-11  Miguel de Icaza  <miguel@novell.com>
306
307         * process.c
308         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
309         Only close the handle if the value of the handle is not
310         INVALID_HANDLE_VALUE.  This just makes the process a bit more
311         robust.
312
313         Improvement for #75733, so that we do not run into this problem. 
314
315         
316         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
317         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
318         internal variables.  Fixes #79462 
319         
320
321 2006-11-09  Dick Porter  <dick@ximian.com>
322
323         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
324         Use poll() not select().  Fixes bug 79397.
325
326 2006-11-09  Raja R Harinath  <rharinath@novell.com>
327
328         Fix #79872
329         * assembly.c (mono_assembly_load_from_full): Check that the given
330         image has an assembly manifest.
331
332 2006-11-09  Ankit Jain  <jankit@novell.com>
333
334         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
335         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
336         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
337
338 2006-11-07  Dick Porter  <dick@ximian.com>
339
340         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
341         Put the old resolver behaviour back for pre-2.0 profiles.
342
343 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
344
345         * threadpool.c: precise GC and locking fixes.
346
347 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
348
349         * class.c: don't load types that have an explicit unaligned
350         managed reference. Provide better info in the TypeLoad exception.
351         Part of the fix for bug #79744.
352         * object.c: use the correct check for class type load issues.
353
354 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
355
356         * class.c: enforce alignment of fields with managed references
357         even when Pack=1 is forced by the user (bug #77788).
358
359 2006-11-03  Dick Porter  <dick@ximian.com>
360
361         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
362         If the address reverse lookup fails, return it as the hostname
363         anyway.  Fixes bug 79721.
364
365 2006-11-03  Dick Porter  <dick@ximian.com>
366
367         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
368         Fix build on Windows.
369
370 2006-11-02  Dick Porter  <dick@ximian.com>
371
372         * icall-def.h: 
373         * object-internals.h: 
374         * exception.c (mono_get_exception_thread_interrupted): 
375         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
376         Fixes bug 74525.
377
378         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
379         Check for pending Thread.Interrupt.
380
381 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
382         * loader.c: Fixed bug 79684.
383
384 2006-10-27  Dick Porter  <dick@ximian.com>
385
386         * file-io.c (get_file_attributes): Force symlinks to directories
387         to be returned as a regular file.  Fixes bug 79733.
388 2006-10-26  Dick Porter  <dick@ximian.com>
389
390         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
391         CreateFile to open a directory then we need to set the
392         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
393
394 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
395
396         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
397         friends.
398
399 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
400
401         * sgengc.c: small cleanup of timer code.
402
403 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
404
405         * sgen-gc.c: fix some warnings and start adding support for
406         complete object removal on domain unload.
407
408 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
409
410         * assembly.c: build_assembly_name should not consider a version
411         number without build or revision number invalid. Fixes bug #79715.
412
413 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
414
415         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
416         call kernel32 function OutputDebugString directly.
417         
418         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
419         
420 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
421
422         * reflection.c: small cleanup, using a function to insert a MonoString
423         in the string heap.
424
425 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
426
427         * reflection.c: moving GC fixes.
428
429 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
430
431         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
432         all the objects with finalizers belonging to an unloading appdomain.
433
434 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
435
436         * sgen-gc.c: added ability to allocate even when the nursery is fully
437         pinned and fixed a couple of bugs.
438
439 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
440
441         * threads.h: Revert the last change for now.
442
443         * threads.h (mono_thread_get_pending_exception): Rename this to
444         mono_thread_get_undeniable_exception ().
445
446 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
447
448         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
449         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
450         when fname does not refer to valid assembly. This result in a more
451         meaningful error message.
452         * exception.c: added mono_get_exception_bad_image_format2 which 
453         constructs a BadImageFormatException using the ctor taking a custom
454         message and the file name. Passing in a NULL msg results in a default
455         message.
456         * exception.h: define mono_get_exception_bad_image_format2 function.
457         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
458         when file name pointed to an invalid IL image. Use 
459         mono_get_exception_file_not_found2 to construct FileNotFoundException,
460         as this results in a more meaningful error message.
461
462 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
463
464         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
465         #79465.
466
467 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
468
469         * metadata.c (mono_type_size): Change the align parameter to guint32 for
470         consistency with the other _size functions.
471         (mono_type_stack_size): Ditto.
472
473         * class.c object.c icall.c: Fix warnings caused by the above change.
474
475         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
476
477         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
478
479         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
480
481 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
482
483         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
484         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
485         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
486         threadpool.h, threads-types.h: mark more internal functions.
487
488 2006-10-11  Dick Porter  <dick@ximian.com>
489
490         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
491         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
492         reproduce the bug even before applying the fix.)
493
494 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
495
496         * reflection.c: allow retrieving attributes for arguments in generic
497         methods (bug #79241).
498
499 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
500
501         * debug-mono-symfile.c: properly check fopen () result (found by
502         coverity).
503
504 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
505
506         * reflection.c: make error message clearer and fixed two
507         issuelets found by Coverity.
508
509 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
510
511         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
512
513 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
514
515         * object-internals.h, gc-internal.h, profiler-private.h:
516         mark internal functions.
517
518 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
519
520         * reflection.c: put data in the text section.
521         * icall.c: recognize more types in type_from_typename ().
522         * process.c, marshal.c: added some GC FIXMEs.
523
524 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
525
526         * loader.c: check for NULL before initializing.
527
528 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
529
530         * gc.c (finalizer_thread): Use a non-alertable wait here.
531
532         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
533         until the correct solution is found.
534
535 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
536
537         * reflection.c (mono_module_get_object): Avoid an assert when operating on
538         modules with no metadata. Fixes #79596.
539
540         * image.c (load_metadata_ptrs): Put back the error message when
541         the #- heap is encountered since the support is not complete yet.
542
543 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
544
545         * gc.c: do not allow the user to SuppressFinalize () a
546         delegate because it would leak the trampoline if present.
547
548 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
549
550         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
551         PropertyPtr table.
552
553 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
554
555         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
556
557         * metadata.c (mono_metadata_get_param_attrs): Ditto.
558
559         * row-indexes.h: Add definitions for *Ptr tables.
560
561         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
562
563         * metadata.c (mono_metadata_translate_token_index): New helper function to
564         translate table indexes used in uncompressed metadata.
565         (mono_metadata_decode_table_row): Ditto.
566         (mono_metadata_decode_table_row_col): Ditto.
567
568         * metadata.c: Add table schema for *Ptr tables.
569
570         * class.c loader.c: Use the new helper function to access the affected metadata
571         tables.
572         
573         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
574         #38532.
575         
576 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
577
578         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
579         sequences which can be unbounded in size. Fixes #79583.
580
581 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
582
583         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
584         static initialization.
585
586         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
587
588         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
589
590         * domain.c (mono_domain_free): Free up type_init_exception_hash.
591
592         * object.c (mono_runtime_class_init): Implement correct semantics when a static
593         ctor fails, i.e. throw the same exception on subsequent accesses.
594         
595 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
596
597         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
598         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
599         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
600         Handle marshalling of interfaces and VARIANTs contained in structs.
601         
602         Code is contributed under MIT/X11 license.
603         
604 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
605
606         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
607         
608         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
609         mempool.
610
611 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
612
613         * console-io.c: ignore previous SIGINT handler.
614
615 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
616
617         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
618         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
619         #79460, #79461, #79485.
620
621         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
622
623         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
624         #79217.
625
626 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
627
628         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
629         could be generated from it.
630
631 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
632
633         * rand.c: fix read loop to correctly handle EINTR.
634
635 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
636
637         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
638         internal calls are defined to keep methods closer to the declaring
639         type and allow a significant reduction in runtime relocations and
640         memory usage.
641
642 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
643
644         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
645         exception message to have FileNotFoundException use the default
646         assembly load error message. Fixes bug #79426.
647         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
648
649 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
650
651         * threadpool.c: (start_thread_or_queue) use the root domain when
652         creating the thread instead of the async object one.
653
654 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
655
656         * class.c, object.c, class-internals.h, reflection.c:
657         for arrays, store element_size inside MonoClass (speedup
658         for array object creation).
659
660 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
661
662         * icall.c: fixed CodeBase to use the file name and not the module
663         name (bug #79365).
664
665 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
666
667         * mono-debug.c, mono-debug.h: export find_method as
668         mono_debug_find_method ().
669
670 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
671
672         * debug-helpers.c, class-internals.h: added a few functions useful
673         when debugging under gdb.
674
675 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
676
677         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
678         characters that need special handling.
679
680 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
681
682         * mono-config.c: make the os/cpu specification more flexible,
683         allowing lists and negation.
684
685 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
686
687         * marshal.c: COM Interop fixes. Handle case where method->klass.
688         is interface. Handle BSTR/MonoString when null. Use CDECL as 
689         calling convention on non-windows platforms. This is for
690         compatibility with XPCOM and MainWin COM.
691         
692         Code is contributed under MIT/X11 license.
693         
694
695 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
696
697         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
698         correctly. Fixes #79217.
699
700         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
701
702 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
703
704         * mono-config.c: allow both an os and cpu attribute for dllmap
705         and dllentry elemnets to enable a single config file to be used
706         for multiple architectures.
707
708 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
709
710         * loader.c: MonoLoaderError was cleared too soon on load failure.
711         Fixes bug #79424.
712
713 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
714
715         * icall.c: use the defining class vtable when accessing a
716         static field, not a pobblibly derived class.
717
718 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
719
720         * icall.c string-icalls.c: Remove references to unicode.h.
721
722         * unicode.h unicode.c Makefile.am: Remove these unused source files.
723
724         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
725
726         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
727         indicating the image where custom marshaller types should be looked up.
728         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
729         custom marshallers, instead of corlib. Fixes #79425.
730
731 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
732
733         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
734
735 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
736
737         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
738         Implement Environment.ProcessorCount.
739         
740         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
741         Implement Environment.ProcessorCount.
742         
743         * icall.c: 
744         Add Environment.ProcessorCount icall.
745         
746         Patch by Jason McFall.
747
748 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
749
750         * assembly.c: don't append .exe/.dll when the filename already contains
751         one of those extensions.
752
753 2006-09-12  Martin Baulig  <martin@ximian.com>
754
755         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
756         to array interfaces.
757
758 2006-09-11  Martin Baulig  <martin@ximian.com>
759
760         * reflection.c (mono_image_build_metadata): Create the
761         MethodImpl's after emitting all types and methods, so we don't
762         need another fixup pass for them.
763
764 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
765
766         * class.c (mono_class_from_name_case): Fix regression introduced by the last
767         change.
768
769 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
770
771         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
772         unload.
773
774 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
775
776         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
777         args is not set. Fixes #78926.
778
779 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
780
781         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
782
783         * image.c (load_class_names): Move this to class.c, and rename it to 
784         'mono_image_init_name_cache'.
785         (load_modules): Fix a warning.
786
787         * class.c icall.c image.c: Initialize image->name_cache lazily.
788
789         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
790         on its name using information in the AOT file.
791
792         * class.c (mono_class_from_name): Use the new hook function.
793
794 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
795
796         * reflection.c (mono_param_get_objects): Handle enum default parameter values
797         correctly.
798
799         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
800         Fixes #79289.
801         
802 2006-09-06  Martin Baulig  <martin@ximian.com>
803
804         * icall.c (mono_lookup_internal_call): Small fix.
805
806 2006-09-05  Raja R Harinath  <rharinath@novell.com>
807
808         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
809         double g_free.
810
811 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
812
813         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
814         when --debug is specified.
815
816 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
817
818         * class.c (setup_generic_array_ifaces): Fix a warning.
819
820 2006-09-04  Miguel de Icaza  <miguel@novell.com>
821
822         * Temporarily remove the patch to assemly.c that checks the
823         assembly versions as it breaks our gacutil.
824
825 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
826
827         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
828
829         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
830         a net 1.0 runtime.
831
832         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
833         created using the default ctor. Fixes #79152.
834         (mono_string_builder_to_utf16): Ditto.
835
836 2006-09-01  Martin Baulig  <martin@ximian.com>
837
838         Fix handling of the generic array interfaces.
839
840         * class-internals.h
841         (MonoDefaults): Removed `generic_array_class' and added
842         `generic_ilist' class.
843
844         * class.c
845         (mono_bounded_array_class_get): Add the new generic array interfaces.
846         (setup_generic_array_ifaces): New static method; create vtable
847         entries for each method in the generic array interfaces.
848
849         * metadata.c
850         (select_container): Allow "parent-less" generic methods.
851
852         * marshal.c
853         (mono_marshal_get_generic_array_helper): New public method.
854
855         * icall.c
856         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
857         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
858         moved the interncall into System.Array.
859
860 2006-09-01  Raja R Harinath  <rharinath@novell.com>
861
862         A few more cases of avoiding work on types with ->byref set.
863         Has the real fix for #79238
864         * icall.c (is_generic_parameter): New helper.
865         (ves_icall_Type_GetGenericParameterPosition): Use it.
866         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
867         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
868         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
869         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
870         reference types.
871         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
872         reference types.
873         (ves_icall_Type_get_IsGenericInstance): Likewise.
874         (ves_icall_Type_get_IsGenericType): Likewise.
875
876 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
877
878         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
879         class if possible.
880
881         * mempool.h (mono_mempool_get_allocated): New helper function.
882
883         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
884         change.
885
886         * mempool.c: Fix warnings and the calculation of stats.
887
888         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
889
890         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
891
892         * loader.c (mono_get_method_from_token): Update method_count stat.
893
894         * class-internals.h (MonoStats): Add some stats.
895
896 2006-08-31 Robert Jordan  <robertj@gmx.net>
897
898         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
899         with managed variants.
900         All code is contributed under the MIT/X11 license.
901         
902 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
903
904         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
905         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
906
907         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
908
909         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
910         with cycles in classes.
911
912         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
913
914         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
915         missing a [MarshalAs] directive. Fixes #79203.
916
917         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
918         klass->marshal_info. Fixes #79217.
919
920 2006-08-30  Martin Baulig  <martin@ximian.com>
921
922         Committing a patch from Joachim Ante <joe@otee.dk>:
923         Add support for binary data symbol stores.
924
925         * debug-mono-symfile.c
926         (mono_debug_open_mono_symbol_file): Renamed into
927         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
928         arguments.
929
930         * mono-debug.c
931         (mono_debug_open_image): Added `raw_contents' and `size' args.
932         (mono_debug_init_2_memory): New public function.
933
934 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
935
936         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
937
938 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
939
940         * appdomain.c: implement support for ShadowCopyFiles.
941
942 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
943
944         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
945         when value is NULL (and should remove CID #51).
946
947 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
948
949         * image.c: moved 2 functions to ../utils.
950
951 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
952
953         * gc.c: cope with the target object of a GC handle being NULL
954         (bug #78877).
955
956 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
957
958         * class.c: recursively check parent's explicit implementations
959         of interface methods (fixes bug #79125).
960
961 2006-08-19  Miguel de Icaza  <miguel@novell.com>
962
963         * filewatcher.c: Avoid warnings when building, do not redefine
964         constants that are defined.
965
966         Remove warnings.
967
968 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
969
970         * image.c: don't fail when the link points to an absolute path.
971
972 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
973
974         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
975         Fix CID #3.
976
977 2006-08-17  Miguel de Icaza  <miguel@novell.com>
978
979         * image.c (full_path): A new method used to obtain the actual path
980         of an assembly even in the presence of symbolic links.  
981
982         This is necessary for the case where we are running a binary that
983         has been GACed, but we are using the "published" path name
984         ($prefix/mono/1.0/blah.exe) which happens to point to the real
985         file in the GAC.
986
987         This was the source of the failure for the `xsp' command with the
988         recent AppDomain changes, as far as the runtime was concerned,
989         there were two different assemblies: $prefix/mono/1.0/blah.exe and
990         $prefix/mono/gac/blah/version/blah.exe.
991
992         (do_mono_image_open): use full path
993
994 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
995
996         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
997
998 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
999
1000         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1001         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1002
1003 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1004
1005         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1006         small structures. Fixes #78990.
1007
1008 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1009
1010         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1011
1012         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1013
1014 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1015
1016         * appdomain.c:
1017         * marshal.c: don't load all the assemblies from a domain into newly
1018         created ones. The new domains might have different rules and load
1019         assemblies from different locations. Fixes bug #76757.
1020
1021         Patch by Lluis. Conflicts resolved by Brian Crowell.
1022
1023 2006-08-16  Alp Toker  <alp@atoker.com>
1024
1025         * socket-io.c: First half of the fix for #79084.
1026         Set sa_size to the length of the content, not that of the struct.
1027         Don't add NULL suffix to the content, this should be done in
1028         managed code if needed.
1029
1030 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1031
1032         Fix part of #79012
1033         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1034         mono_metadata_parse_type returns NULL.
1035
1036 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1037
1038         * normalization-tables.h : new file for string normalization data.
1039         * locales.c, locales.h, icall.c :
1040           added load_normalization_resource() for string normalization,
1041           and icall as well.
1042         * Makefile.am : added normalization-tables.h to the sources.
1043
1044 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1045
1046         * marshal.c: Add more helper functions to reduce code duplication and use them
1047         everywhere.
1048
1049 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1050
1051         * marshal.c: Fix non-x86 stdcall warnings.
1052         
1053         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1054         them everywhere.
1055
1056 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1057
1058         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1059         type check on multi-dimensional arrays. Fixes #79000.
1060
1061 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1062
1063         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1064         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1065         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1066         * class-internals.h: add is_com_object to class structure.
1067         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1068         null checks to COM object marshalling. Fix .ctor call on RCW.
1069         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1070         
1071         All code is contributed under the MIT/X11 license.
1072
1073 2006-08-09  Dick Porter  <dick@ximian.com>
1074
1075         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1076         racing mono_monitor_allocator_lock() somewhere, so don't delete
1077         the critical section for now.  Found by running and exiting
1078         monodevelop.
1079
1080 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1081
1082         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1083         (ves_icall_System_ComObject_FindInterface): Ditto.
1084         (ves_icall_System_ComObject_CacheInterface): Ditto.
1085
1086         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1087         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1088
1089 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1090
1091         * threadpool.c: treat pipes from process asynchronous reads as sockets
1092         when reading from them, so we get select/poll or epoll to wait for
1093         data.
1094
1095 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1096
1097         * loader.c: Fix a typo (CID #233) in the null check.
1098
1099 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1100
1101         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1102         Hopefully fixes #78949.
1103         
1104         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1105         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1106         bytes. Fixes #78972.
1107
1108 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1109
1110         * filewatcher.c: we need to set errno here.
1111
1112 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1113
1114         * filewatcher.c: let Win32Exception get the error value.
1115
1116 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1117
1118         * filewatcher.c: translate errno into win32 errors for Win32Exception
1119         to know what happened.
1120
1121 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1122
1123         * threadpool.c: Fix more warnings.
1124
1125         * assembly.c (search_loaded): Fix warnings.
1126
1127         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1128         (mono_async_invoke): Ditto.
1129
1130 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1131
1132         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1133         entries for __ComObject type in addition to ComImport types.
1134         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1135         about hash table.
1136         
1137         All code is contributed under the MIT/X11 license.
1138
1139 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1140
1141         * image.c: avoid tentative loading of modulerefs that contain
1142         no metadata (P/Invoke library names).
1143
1144 2006-07-28  Dick Porter  <dick@ximian.com>
1145
1146         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1147         mono_loader_lock() somewhere, so don't delete the critical section
1148         for now.  Found by running and exiting monodevelop.
1149
1150 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1151
1152         * filewatcher.c: define the inotify syscalls when we're building on
1153         linux and have sys/syscall.h. The build system might not have support
1154         for inotify but the target system might have it.
1155
1156 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1157
1158         * domain.c: Documentation updates.
1159
1160         * loader.c (mono_free_method): Do not release the method
1161         information if we are being profiled, as profilers will use this
1162         information at shut down to present some data to the user.
1163
1164         This is needed so that the profiler does not crash, as the
1165         profiler tends to keep MonoMethods around, and they might become
1166         invalid if we free these.
1167
1168         (mono_get_method_constrained): Return the original CIL stream
1169         method as well, so verification can be performed against it.
1170
1171 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1172
1173         * filewatcher.[ch]: support for inotify file system watcher.
1174         * icall.c: add new internal calls for the inotify file system watcher.
1175
1176 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1177
1178         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1179         #78888.
1180
1181 2006-07-20  Dick Porter  <dick@ximian.com>
1182
1183         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1184         warning.
1185
1186 2006-07-20  Dick Porter  <dick@ximian.com>
1187
1188         * threads.c (start_wrapper): Do the thread cleanup while we still
1189         hold a reference to its object.  Fixes bug 78123.
1190
1191 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1192
1193         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1194         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1195           "managed-to-managed".
1196         * icall.c: Redirect string constructors that take sbyte* to
1197           ves_icall_System_String_ctor_RedirectToCreateString.
1198         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1199           to CreateString () methods with matching signature.
1200         * reflection.c: Use original security informations for
1201           MONO_WRAPPER_MANAGED_TO_MANAGED.
1202         * security-manager.c: Use original security informations for
1203           MONO_WRAPPER_MANAGED_TO_MANAGED.
1204         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1205           that is a placeholder and only its address should be used.
1206         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1207           that is a placeholder and only its address should be used.
1208
1209 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1210
1211         Begin implementing COM Interop.
1212         * appdomain.c: Increment corlib version.
1213         * class.c: Set ComImport classes' parent to __ComObject.
1214         * loader.c: Mark cominterop methods as such.
1215         * domain.c: Add __ComObject class to MonoDefaults structure.
1216         * image.c: Add 2 hashtables to the image for COM Interop related methods
1217         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1218         using the mempool allocator
1219         
1220         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1221         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1222         declaration for mono_metadata_type_dup_mp.
1223         
1224         * debug-helpers.c: Added strings for two additional wrapper types
1225         * object.c: Create proxy objects for ComImport classes
1226         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1227         and added __ComObject class to MonoDefaults structure.
1228         
1229         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1230         MonoComInteropProxy and MonoComObject.
1231         
1232         * marshal.c: Added support for COM Interop
1233         (signature_cominterop): Converts managed signature to corresponding
1234         unmanaged COM signature.
1235         (cominterop_get_function_pointer): gets unmanaged function pointer via
1236         COM object vtable
1237         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1238         (cominterop_get_method_interface): returns interface type that method is defined on
1239         (mono_mb_emit_cominterop_call): emits native call to function pointer
1240         gotten from vtable
1241         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1242         that matches signature of unmanaged function.
1243         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1244         (cominterop_get_invoke): forwards call from proxy to __ComObject
1245         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1246         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1247         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1248         
1249         * marshal.h: Added Marshal icall declarations.
1250         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1251         so we can access them in finalizer
1252         
1253 2006-07-14  Dick Porter  <dick@ximian.com>
1254
1255         * object.c (mono_type_initialization_cleanup): Fix a race
1256         condition by temporarily commenting out the critical section
1257         deletion.
1258
1259 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1260
1261         * reflection.c (create_custom_attr): Fix some warnings.
1262         (create_custom_attr_data): Ditto.
1263         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1264         types. Fixes #78855.
1265
1266 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1267
1268         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1269
1270         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1271
1272 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1273
1274         * reflection.c (resolve_object): Add support for DynamicMethod.
1275
1276         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1277         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1278
1279 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1280
1281         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1282         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1283
1284 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1285
1286         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1287         Fixes #77888.
1288
1289 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1290
1291         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1292         slightly: remove a shadow local variable.
1293
1294 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1295
1296         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1297         definition that introduces the virtual function slot.
1298         Also fix Coverity #105.
1299
1300 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1301
1302         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1303         for dynamic assemblies. Fixes #78724.
1304
1305 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1306
1307         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1308         Fixes #78722.
1309
1310 2006-06-21  Martin Baulig  <martin@ximian.com>
1311
1312         * reflection.c
1313         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1314         fixes #76484.
1315
1316 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1317
1318         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1319
1320 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1321
1322         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1323         nor TYPEREFs.
1324         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1325         Inflate result if necessary.
1326         (mono_class_get_full): Remove old version.  Rename from
1327         'mono_class_get' and add 'context' argument.  Pass it to
1328         ..._create_from_typespec.
1329         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1330         (mono_ldtoken): Revert change below.
1331
1332 2006-06-20  Martin Baulig  <martin@ximian.com>
1333
1334         * class.c (mono_ldtoken): Don't pass the generic context to
1335         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1336
1337 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1338
1339         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1340         and later freeing it. Fixes #78638.
1341
1342 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1343
1344         * icall.c (mono_class_get_throw): Revert over-zealous error
1345         throwing, the caller for mono_class_get_throw will cope with
1346         errors when classes are not properly initialized already.
1347
1348         The code still copes with loader exceptions though.
1349
1350         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1351         
1352 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1353
1354         Fixes the `make run1' version of RuntimeAbort (to be commited,
1355         source is in Bugzilla).
1356         
1357         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1358         FALSE on class loading failure instead of returning true.
1359
1360         * class.c (mono_class_create_from_typedef): It is possible for
1361         mono_metadata_interfaces_from_typedef_full to fail if a class is
1362         not found, cope with this.
1363         
1364
1365 2006-06-14  Dick Porter  <dick@ximian.com>
1366
1367         * socket-io.c: 
1368         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1369         4.1.1
1370
1371 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1372
1373         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1374
1375 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1376
1377         * icall.c: Another fix for building mono in Visual Studio.
1378
1379 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1380
1381         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1382         
1383 2006-06-09  Martin Baulig  <martin@ximian.com>
1384
1385         * debug-mono-symfile.c: Put this back and really fix it this
1386         time. Sorry for all the trouble.
1387
1388 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1389
1390         * icall.c (mono_class_get_throw): Fix a warning.
1391         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1392         ReflectionTypeLoadException if needed. Fixes #78606.
1393
1394         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1395         (mono_class_init): Ditto.
1396
1397         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1398         ref_only exceptions.
1399         (mono_loader_clear_error): Make this work even if there is no error.
1400
1401 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1402
1403         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1404         Marshal.GetComSlotForMethodInfo using internal call.
1405
1406 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1407
1408         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1409         a function for signalling it.
1410
1411         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1412         a referenced assembly is not found.
1413
1414         * loader.c (mono_loader_error_prepare_exception): Add support for 
1415         LOADER_ERROR_ASSEMBLY. Fix formatting.
1416
1417 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1418
1419         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1420         for VARIANT marshalling on windows and increment corlib version
1421         since Variant struct was added.
1422
1423 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1424
1425         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1426         stack trace line information:
1427
1428         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1429         (Martin) when looking up B which is between A and C, return A not C.
1430
1431         Bug is #78573.
1432
1433         Thanks to Alexander Olk for tracking this down.
1434
1435 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1436
1437         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1438         
1439         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1440         avoid clobbering its value.
1441         (mono_string_to_lpstr): Fix a warning on windows.
1442
1443 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1444
1445         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1446
1447         * reflection.c loader.c: Removed references to 'dummy' flag.
1448
1449         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1450
1451         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1452         it gets GC tracking.
1453
1454         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1455         GC tracking.
1456         
1457         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1458
1459         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1460
1461         * appdomain.c: Bump corlib version.
1462
1463 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1464
1465         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1466         CEE_STIND_REF when working with object references.
1467
1468 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1469
1470         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1471         Fixes #78539.
1472
1473 2006-05-30  Miguel de Icaza  <miguel@novell.com>
1474
1475         * loader.c (method_from_memberref): Fix argument value for
1476         mono_loader_set_error_method_load (I was passing the MonoClass
1477         instead of the class name char *).
1478
1479 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1480
1481         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1482         CEE_STIND_REF when working with object references.
1483
1484 2006-05-30  Martin Baulig  <martin@ximian.com>
1485
1486         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
1487         mono_method_full_name() change and replace the ':' with a '.'
1488         here.
1489
1490 2006-05-30  Martin Baulig  <martin@ximian.com>
1491
1492         * debug-mono-symfile.c
1493         (mono_debug_symfile_lookup_location): Fix the algorithm:
1494         when looking up B which is between A and C, return A not C.
1495
1496 2006-05-29  Martin Baulig  <martin@ximian.com>
1497
1498         * mono-debug.h
1499         (MonoDebugMethodInfo): Make the typedef public.
1500         (MonoDebugSourceLocation): New public struct.
1501
1502         * mono-debug.c
1503         (mono_debug_source_location_from_address): Removed.
1504         (mono_debug_source_location_from_il_offset): Removed.
1505         (mono_debug_il_offset_from_address): Removed.
1506         (mono_debug_address_from_il_offset): Removed.
1507         (mono_debug_lookup_method): New public function.
1508         (mono_debug_lookup_source_location): New public function; replaces
1509         the old mono_debug_source_location_from_*() functions; see the
1510         inline documentation.
1511         (mono_debug_free_source_location): New public function.
1512         (mono_debug_print_stack_frame): New public function; see the
1513         inline documentation.
1514
1515         * debug-mono-symfile.c
1516         (mono_debug_find_source_location): Renamed into
1517         mono_debug_symfile_lookup_location(); only take a
1518         `MonoDebugMethodInfo *' and an `offset' argument; added inline
1519         documentation.
1520         (mono_debug_find_method): Renamed into
1521         mono_debug_symfile_lookup_method().
1522
1523 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
1524
1525         * assembly.c (mono_assembly_open_full): Dont overwrite the status
1526         returned by mono_image_open_full ().
1527
1528         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
1529         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
1530         #78517.
1531
1532         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
1533         #78518.
1534
1535 2006-05-27  Miguel de Icaza  <miguel@novell.com>
1536
1537         * class.c (mono_class_from_typeref): handle missing images
1538         earlier, deals with bug #78418.   Refactor code; 
1539
1540         Fix a warning introduced in my previous commit (some stale code
1541         from before I revisited my patch).
1542
1543         * class.c (mono_class_create_from_typedef): On failure, remove the
1544         class from the MonoImage->class_cache as the class is not
1545         initialized;   Fixes the leak pointed out by Paolo.
1546
1547 2006-05-25  Dick Porter  <dick@ximian.com>
1548
1549         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
1550         DeleteCriticalSections until I figure out which one may still be
1551         sometimes locked when mono_thread_cleanup is called.
1552
1553 2006-05-24  Dick Porter  <dick@ximian.com>
1554
1555         * threads.c (mono_thread_cleanup): Move the threading cleanup out
1556         of mono_thread_manage and back into its own function, so it can be
1557         called after the finalizer thread has finished.
1558
1559         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
1560
1561 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
1562
1563         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
1564         Fixes #78495.
1565
1566         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
1567         with non-blittable elements.
1568         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
1569
1570 2006-05-24  Martin Baulig  <martin@ximian.com>
1571
1572         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1573         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
1574
1575         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
1576         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
1577         `mono_debugger_event_handler' to NULL.
1578
1579 2006-05-24  Martin Baulig  <martin@ximian.com>
1580
1581         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
1582
1583 2006-05-24  Martin Baulig  <martin@ximian.com>
1584
1585         * mono-debug-debugger.h
1586         (mono_debugger_create_notification_function): Added
1587         `MonoCodeManager *' argument.
1588
1589 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
1590
1591         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
1592
1593 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
1594
1595         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
1596         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
1597         implementation.
1598
1599 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
1600
1601         * icall.c: precise GC support: objects can't be stored in unmanaged
1602         memory anymore, even if they are kept alive by other references: since
1603         they can move the GC needs to be able to always find them.
1604
1605 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1606
1607         * object.c: precise GC support for static fields. Support
1608         for moving GCs: write barriers and pinned allocation for interned
1609         strings.
1610
1611 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1612
1613         * domain.c, domain-internals.h: precise GC support for the MonoDomain
1614         structure.
1615
1616 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1617
1618         * class.c, gc.c: sgen and precise GC updates.
1619
1620 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
1621
1622         * marshal.h, marshal.c: added write barrier wrapper and precise type
1623         fixes.
1624
1625 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
1626
1627         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
1628         support.
1629
1630 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
1631
1632         * reflection.c: precise and sgen GC updates.
1633
1634 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
1635
1636         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
1637
1638 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
1639
1640         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
1641
1642 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
1643
1644         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
1645         MONO_TYPE_OBJECT. Fixes #78462.
1646
1647 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
1648
1649         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
1650         and blittable types.
1651
1652 2006-05-17  Miguel de Icaza  <miguel@novell.com>
1653
1654         * class.c (mono_class_get_exception_for_failure): Implement parts
1655         of a TODO: if the loader error is set (instead of the class
1656         error), we return a Loader exception that can be properly thrown
1657         elsewhere.
1658
1659         This was exposed by some Winforms 2.0 code that I tried to run
1660         (Atsushi pointed me to it).
1661
1662 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
1663
1664         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
1665         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
1666         
1667         * marshal.c (emit_marshal_vtype): Add limited support for 
1668         UnmanagedType.LPStruct. Fixes #78427.
1669
1670         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
1671         Applied a patch from kangaroo to fix #77523.
1672
1673 2006-05-17  Martin Baulig  <martin@ximian.com>
1674
1675         * threads.c
1676         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
1677         (debugger_thread_created): Removed.
1678         (debugger_thread_exited): Removed.
1679
1680 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
1681
1682         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1683
1684         * object-internals.h (MonoReflectionResource): Sync with managed version.
1685
1686 2006-05-12  Wade Berrier <wberrier@novell.com>
1687
1688         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
1689
1690 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
1691
1692         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
1693         functions try to allocate from the image mempool.
1694
1695 2006-05-12  Dick Porter  <dick@ximian.com>
1696
1697         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
1698
1699 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
1700
1701         * object.c: The FieldGetter and FieldSetter methods require the full
1702         name of the class, not only the name. Fixes bug #78277.
1703
1704 2006-05-11  Miguel de Icaza  <miguel@novell.com>
1705
1706         * loader.c (method_from_memberref): Do not pass the NULL klass to
1707         mono_loader_set_error_() methods.  Pass the non-NULL value
1708         (class). 
1709
1710 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
1711
1712         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
1713         (mono_assembly_close): Null out assembly->image->references after freeing it.
1714
1715         * image.c (mono_image_close): Free image->references.
1716         
1717         * reflection.c (mono_image_basic_init): Fix a small memory leak.
1718
1719 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1720
1721         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
1722         before checking if it's NULL (g_assert).
1723
1724 2006-05-10  Martin Baulig  <martin@ximian.com>
1725
1726         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
1727         I thought I already killed that two months ago, but now it somehow reappeared.
1728
1729 2006-05-10  Martin Baulig  <martin@ximian.com>
1730
1731         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
1732
1733 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
1734
1735         * reflection.c: Allocate memory for dynamically created methods in the image
1736         mempools.
1737
1738 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1739
1740         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
1741         don't use the ad pointer before checking if it's NULL (g_assert).
1742
1743 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
1744
1745         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
1746         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
1747
1748         * marshal.c: Allocate all signatures from mempools.
1749
1750         * marshal.c: Allocate some more signatures from mempools.
1751
1752 2006-05-09  Miguel de Icaza  <miguel@novell.com>
1753
1754         * object.c (mono_load_remote_field): The code used to provide a
1755         temporary variable for returning results if the user did not
1756         provide a result pointer.  But our temporary variable was allocted
1757         on the satck.
1758
1759         Fix calling code to always pass a result area.   Coverity ID 103.
1760
1761 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
1762
1763         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
1764         value, not the old. Fixes #78312.
1765         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
1766
1767         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
1768         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
1769         per-image cache.
1770
1771         * assembly.c (mono_assembly_close): Free image->references.
1772
1773         * assembly.c (mono_assembly_names_equal): Fix a warning.
1774         (mono_assemblies_cleanup): Cleanup more global data.
1775
1776         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
1777
1778         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
1779         ptr_cache and image->modules.
1780
1781         * image.c (mono_image_init): Allocate array_cache lazily.
1782         
1783 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1784
1785         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
1786         behavior was changed recently and has bad side effects.
1787
1788 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
1789
1790         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
1791         
1792         * assembly.c (mono_assembly_close): Remove a debug printf.
1793
1794         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
1795
1796         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
1797         to also allow for temporary references between mono_image_open ()/close ().
1798
1799         * domain.c (get_runtimes_from_exe): Add a FIXME.        
1800
1801 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
1802
1803         * marshal.c: Fix support for dynamic methods.
1804
1805         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
1806
1807         * marshal.c (mono_marshal_cleanup): New cleanup function.
1808
1809         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
1810         image mempools.
1811
1812         * class.c (mono_class_init): Fix leaking class->nested_classes.
1813
1814         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
1815
1816         * image.c (mono_image_init): Initialize the new cashes.
1817
1818         * image.c (mono_image_close): Destroy the new cashes.
1819
1820         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
1821
1822         * mempool.c (mono_mempool_strdup): New helper function.
1823
1824         * class-internals.h: Add prototype for mono_loader_unlock ().
1825
1826         * domain.c (mono_jit_info_table_find): Fix a warning.
1827         (mono_debugger_check_runtime_version): Ditto.
1828
1829         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
1830         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
1831         functions to these modules.
1832
1833         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
1834         metadata modules.
1835         
1836         * marshal.c (mono_free_bstr): Fix a warning.
1837
1838         * assembly.c (mono_assembly_open_full): Fix another small leak.
1839
1840         * object.c: Fix some unload leaks in the remoting code.
1841
1842         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
1843         function.
1844
1845         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
1846
1847         * reflection.c: Fix some unload leaks in dynamic assemblies.
1848
1849 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
1850
1851         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
1852         * marshal.h: Add BSTR support on Win32
1853         * icall.c: Add BSTR icalls
1854         * metadata.h: Add BSTR enums
1855
1856 2006-04-28  Miguel de Icaza  <miguel@novell.com>
1857
1858         Work to catch the crash from #76795 and turn it into an
1859         exception.   As I stubbed out pieces of the VisualBasic support,
1860         I found a number of places where the code was failing and I added
1861         checks to those places. 
1862         
1863         * metadata.c (do_mono_metadata_parse_generic_class): Make this
1864         function return a status code.  If we fail to parse the signature
1865         from mono_metadata_parse_generic_inst, return FALSE.
1866
1867         * loader.c (mono_get_method_from_token): If we fail to load the
1868         method (mono_class_get) return NULL.   
1869
1870         * (method_from_memberref): Return NULL if we are unable to parse
1871         the method signature
1872
1873         (mono_loader_error_prepare_exception): Since we now use the
1874         loader_error flag internally to stop processing, and obtaining
1875         exceptions that might be thrown will walk this code path the
1876         proper way of going from a MonoLoaderError into a
1877         MonoException was convoluted.   This new routine encapsulates the
1878         process of turning the error into an exception and *clearing* the
1879         error afterwards.
1880         
1881 2006-04-27  Miguel de Icaza  <miguel@novell.com>
1882
1883         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
1884         with missing assemblies), and to cope with:
1885
1886                 * Missing fieldref from a non-existing assembly.
1887                 * Missing methodref from a non-existing assembly.
1888
1889         The first batch of work to address *some* of the issues from 76661.
1890         
1891         * object.c (mono_class_create_runtime_vtable): If we fail to
1892         initialize the class raise the exception here. 
1893
1894         * metadata.c (mono_class_get_overrides_full): If any methods fail
1895         to load return the failure to the caller.
1896
1897         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
1898         flagging assemblies that failed to load.   
1899
1900         Do not crash if we are unable to load the assembly.
1901
1902         (mono_assembly_close): Do nothing with REFERENCE_MISSING
1903         assemblies. 
1904
1905         * loader.c (mono_loader_set_error_type_load): Change the
1906         convention to always pass unallocated strings, so we make our own
1907         copies (I know our own code had duplicated strings before, but
1908         this keeps the normal conventions).
1909         (method_from_memberref): Call mono_loader_set_error_method_load
1910         for all possible failures of loading the class. 
1911         Remove assert, turn into a loader error.
1912
1913         (mono_loader_error_to_exception): Move this routine from mini
1914         (mini_loader_error_to_exception) there was no need to have that in
1915         mini. 
1916
1917         * class.c (mono_class_from_typeref): If we were not able to load
1918         the assembly with mono_assembly_load_reference, call the
1919         mono_loader_set_error_type_load to register the problem.
1920
1921         (mono_class_setup_fields): If we fail to load the type from
1922         mono_metadata_parse_type_full, call mono_class_set_failure and
1923         break from the loop.
1924
1925         If class->exception_type is set, we do not layout the fields as
1926         that might crash the runtime, and instead return (from breaking
1927         from the previous loop).
1928
1929         (mono_class_setup_vtable): This now returns a boolean indicating
1930         whether the table was properly setup.   The decision is driven by
1931         mono_class_get_overrides_full which might run into non-existing
1932         methods. 
1933         
1934         (mono_class_init): Returns TRUE on success or FALSE if there was a
1935         problem in loading the type (incorrect assemblies, missing
1936         assemblies, methods, etc).
1937
1938         When we call mono_class_setup_fields we also check for a potential
1939         error inside this call (either a class exception or a general
1940         loader exception).
1941
1942         (mono_class_create_from_typedef): If the parent fails to load
1943         (calling mono_class_get_full) return NULL.
1944         
1945         ** Important **
1946
1947         calls to mono_metadata_parse_type_full should be checked
1948         everywhere and set the mono_class_set_failure
1949         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
1950
1951         The current patch checks the places where my manually constructed
1952         tests show the errors are showing up, but we should do it
1953         everywhere. 
1954
1955         ** Important2 **
1956
1957         mono_class_init return values should be tested everywhere, like
1958         the previous case this is something that we should audit
1959         everywhere and not only on the cases exposed by the tests I
1960         created. 
1961
1962 2006-04-26  Miguel de Icaza  <miguel@novell.com>
1963
1964         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
1965         boolean parameter and instead pass the information on `options'
1966         parameter (FileOptions).
1967
1968         * icall.c: Register the new signature for MonoIO.Open.
1969
1970         * debug-helpers.c (dis_one): Trying to understand how coverity
1971         works.  Fix Run 5, item 78.
1972
1973 2006-04-26  Dick Porter  <dick@ximian.com>
1974
1975         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
1976         dereference.
1977
1978 2006-04-25  Martin Baulig  <martin@ximian.com>
1979
1980         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
1981
1982         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
1983         debugger_thread_created().
1984         (debugger_gc_push_all_stacks): Don't handle the main thread in any
1985         special way.
1986         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
1987         (mono_debugger_finalize_threads): New function; undo the effects
1988         of mono_debugger_init_threads().
1989         (mono_debugger_create_all_threads): Removed.
1990
1991 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
1992
1993         * image.c (mono_image_close): Tidy up trace messages.
1994
1995         * assembly.c (mono_assembly_close): Ditto.
1996
1997         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
1998         no longer references an already freed assembly. Fixes #78168.
1999
2000 2006-04-21  Dick Porter  <dick@ximian.com>
2001
2002         * threads.c (mono_thread_detach): Fix reference counting when
2003         detaching threads.
2004
2005 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2006
2007         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2008         #78155.
2009
2010 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2011
2012         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2013         (mono_type_to_stind): Ditto.
2014
2015         * marshal.c: Use the new helper functions to simplify code.
2016
2017         * image.c (mono_image_close): Add some code for help debug assembly unloading
2018         problems.
2019
2020         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2021         image mempool.
2022
2023         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2024         assembly was already loaded in another appdomain. Fixes #78083.
2025
2026 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2027
2028         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2029         referenced assemblies.
2030         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2031
2032         * domain.c (mono_domain_free): Add a trace message.
2033
2034         * appdomain.c (add_assemblies_to_domain): Ditto.        
2035
2036         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2037         field.  
2038
2039 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2040
2041         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2042
2043 2006-04-12  Martin Baulig  <martin@ximian.com>
2044
2045         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2046         `USE_INCLUDED_LIBGC'.   
2047
2048 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2049
2050         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2051         the patch contains ../ and a small directory name later. Hopefully fixes
2052         #78035.
2053
2054 2006-04-10  Martin Baulig  <martin@ximian.com>
2055
2056         Clean up the debugger's thread-handling code.
2057
2058         The debugger's thread-handling code has been moved from
2059         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2060         over the `threads' hash, keep track of exiting threads and also
2061         use proper locking.
2062
2063         We can now debug XSP and XSP based applications with the debugger.
2064
2065         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2066
2067         * threads.h
2068         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2069         (mono_install_thread_callbacks): Likewise.      
2070
2071         * threads.c (mono_thread_callbacks): Removed.
2072         (debugger_thread_created, debugger_thread_exited): New static functions.
2073         (start_wrapper): Call debugger_thread_created().
2074         (thread_cleanup): Call debugger_thread_exited().
2075         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2076         (mono_debugger_init_threads): New public function.
2077         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2078         iterate directly over the `threads' hash and also use proper locking.
2079
2080         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2081
2082         * mono-debug-debugger.h
2083         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2084
2085 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2086
2087         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2088         argument type=array. Fixes #78057.
2089
2090 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2091
2092         * culture-info-table.h : regenerated. Fixed bug #69652.
2093
2094 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2095
2096         * loader.c metadata.c: Reapply a variant r59116.
2097         
2098         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2099
2100         * class.c (mono_class_setup_interface_offsets): New internal function.
2101
2102         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2103         interfaces too. Fixes #77398.
2104
2105         * reflection.c (encode_cattr_value): Add support for 
2106         parameter type=object, argument type=array.
2107         (load_cattr_value): Ditto. Fixes #77916.
2108
2109         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2110         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2111
2112         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2113         a byval char array and CharSet is Ansi.
2114
2115         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2116
2117 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2118
2119         * metadata.c: Add some locking comments.
2120         
2121         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2122         mempool.
2123         (mono_metadata_free_method_signature): Don't free the signature itself.
2124
2125         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2126
2127         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2128         reference the same MonoImage.
2129         (mono_assembly_load_from_full): Add an assert.
2130
2131 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2132
2133         * image.c (mono_image_close): Don't put the image we are about to free into the
2134         loaded_images_guid_hash.
2135
2136         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2137         to reduce code duplication.
2138
2139         * marshal.c: Register the native functions called by this module as icalls, to
2140         somewhat centralize the creation of MonoMethodSignature's.
2141
2142         * loader.c (mono_method_signature): Add a cache for method signatures.
2143
2144         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2145         the parameter attributes of a method.
2146         (mono_metadata_parse_method_signature_full): Refactored the computation of
2147         parameter attributes into a separate function. Also avoid one allocation in
2148         most cases.
2149
2150         * assembly.c (mono_assembly_close): Ditto.
2151
2152         * image.c (mono_image_close): Log trace messages with INFO level.
2153
2154         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2155
2156         * image.c reflection.c: Correct reference counting of image modules.
2157         
2158         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2159         of this function from the image mempool.
2160         
2161         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2162         to allow more cached types to be used.
2163
2164         * mono-debug.c (mono_debug_add_method): Appled patch from
2165         David S. Miller  <davem@sunset.davemloft.net>: Access 
2166         minfo->lexical_blocks[] entry elements using read32().
2167
2168 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2169
2170         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2171         methods as it is allocated from the mempool.
2172
2173         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2174         image mempool.
2175
2176         * metadata-internals.h: Add comments describing the reference counting scheme
2177         used for MonoImage and MonoAssembly.
2178
2179         * image.c assembly.c reflection.c: Rework reference counting of images and 
2180         assemblies so they are freed when the runtime is shut down. Free some 
2181         additional memory structures when an image is unloaded.
2182         
2183 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2184
2185         * class.c loader.c reflection.c: Allocate more data structures in
2186         the image mempool.
2187
2188 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2189
2190         * icall.c
2191         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2192         build on pre glib 2.4 systems.
2193
2194 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2195
2196         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2197
2198         * icall.c: Fix some warnings.
2199
2200 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2201
2202         * culture-info-table.h : regenerated.
2203
2204 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2205
2206         * threads.c, object-internals.h, verify.c: changed the culture caching
2207         code to use a normal MonoArray for storage so the GC can keep track of
2208         them easily. Fixed bits of the cache logic, too and simplified the
2209         code.
2210
2211 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2212
2213         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2214         thread for non-Boehm GCs.
2215
2216 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2217
2218         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2219         needed to keep track of the data for static fields.
2220
2221 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2222
2223         Fix #75172
2224         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2225         for interface classes.  Use 'num_methods' instead.
2226         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2227         before using '->vtable_size' field.
2228
2229 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2230
2231         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2232         doesn't contain managed pointers, so use a normal hashtable.
2233
2234 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2235
2236         * reflection.c, class-internals.h, domain.c: fixed handling of types
2237         used as values for objects in custom attributes (bug #77915):
2238
2239 2006-03-24  Martin Baulig  <martin@ximian.com>
2240
2241         * class.c (mono_class_setup_fields): Added support for generic
2242         instances; fixes #77580.
2243
2244 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2245
2246         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2247
2248 2006-03-24  Dick Porter  <dick@ximian.com>
2249
2250         * file-io.c (get_file_attributes): More stat macro breakage.
2251         Fixes bug 77759.
2252
2253 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2254
2255         * profiler.c: added the file=filename option in the default profiler
2256         to output the profile data to filename.
2257
2258 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2259
2260         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2261         bug #77877.
2262
2263 2006-03-22  Martin Baulig  <martin@ximian.com>
2264
2265         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2266         allocated `MonoClassField *' in `fb->handle'.
2267
2268 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2269
2270         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2271         allocate interface ID to save memory and allow better ID reuse on
2272         appdomain unload. setup_generic_vtable () removal from Martin.
2273
2274 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2275
2276         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2277         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2278         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2279         write barriers for reference stores with managed objects accessed with
2280         C structures in the runtime and in embedding programs.
2281
2282 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2283
2284         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2285         'interface_id' and 'max_interface_id' fields of MonoClasses
2286         representing open generic types.
2287
2288 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2289
2290         * object.h, object.c, icall.c: added functions to deal with
2291         storing valuetypes that contain references in managed objects.
2292         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2293         fixes and comments around uses of mono_array_addr ().
2294
2295 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2296
2297         * object.h, icall.c, monitor.c: object.GetHashCode ()
2298         implementation that supports the moving garbage collector.
2299
2300 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2301
2302         * icall.c, threads-types.h, threads.c: implemented finalizer for
2303         LocalDataStoreSlot.
2304
2305 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2306
2307         * metadata.c (mono_type_size): Add a fixme.
2308         (mono_type_stack_size): Ditto.
2309
2310         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2311         'type_forwarders' field.
2312
2313         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2314         attribute from net 2.0.
2315
2316         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2317         from class.c.
2318
2319         * class.c (mono_class_setup_fields): Fix a warning.
2320         
2321         * class.c (mono_class_from_name): Add support for assemblyref entries
2322         in the EXPORTEDTYPE table.
2323
2324         * reflection.c: Add support for handling type forwarders under net 2.0.
2325
2326         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2327         
2328 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2329
2330         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2331         overwriting entries in ModuleBuild->types, also clean up the code
2332         a little. Fixes #77774.
2333
2334 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2335
2336         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2337         load friend assembly info when present.
2338
2339 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2340
2341         Fix crasher on gtest-158.cs.
2342         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2343         the return value if the MonoClass we want is yet in an
2344         inconsistent state.
2345         * class.c (mono_class_create_from_typedef): Add an comment
2346         explaining an order dependency between mono_class_setup_parent and
2347         mono_class_setup_mono_type.
2348
2349 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2350
2351         * class.c: documentation updates and events bug fix.
2352
2353 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2354
2355         * class.c: some cleanup, locking fixes.
2356
2357 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2358
2359         * class.c: fix the generics code to setup nested
2360         type info to the instantiated type (bug #77770).
2361
2362 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2363
2364         * marshal.c: fixed a few type correctness issues.
2365
2366 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2367
2368         * loader.c: the Set/Get/Addrtess array methods should be public.
2369
2370 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2371
2372         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2373         
2374         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2375         info->wrapper.
2376
2377 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2378
2379         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2380
2381         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2382
2383         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2384         (mono_mempool_alloc0): Ditto.
2385
2386 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2387
2388         * socket-io.c:
2389         (create_object_from_sockaddr): it was allocating 4 extra bytes
2390         for the AF_UNIX data. Fixes bug #77747.
2391
2392 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2393
2394         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2395
2396 2006-03-09  Dick Porter  <dick@ximian.com>
2397
2398         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2399         Fixes bug 76966 again.
2400
2401 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2402
2403         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2404         names from r57532
2405         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2406
2407 2006-03-07  Martin Baulig  <martin@ximian.com>
2408
2409         * object.c
2410         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2411
2412 2006-03-07  Martin Baulig  <martin@ximian.com>
2413
2414         * class.c
2415         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2416         regression introduced in r56970; see gtest-252.cs.
2417
2418         * loader.c (mono_get_method_constrained): Correctly handle generic
2419         methods; see gtest-253.cs.
2420
2421 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2422
2423         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2424
2425 2006-03-04  Martin Baulig  <martin@ximian.com>
2426
2427         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2428         compute the parent type at runtime, just like we're already doing
2429         it for interfaces.
2430
2431         * reflection.c
2432         (mono_reflection_bind_generic_parameters): Don't compute the
2433         parent type anymore.
2434
2435         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2436
2437 2006-03-04  Martin Baulig  <martin@ximian.com>
2438
2439         * mono-debug-debugger.h
2440         (mono_debugger_create_notification_function): Allocate memory at
2441         runtime and return a pointer to it.
2442
2443 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2444
2445         * assembly.c: Fix windows build.
2446         
2447         * assembly.c: Fix build.
2448
2449         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2450
2451         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2452         
2453 2006-03-03  Dick Porter  <dick@ximian.com>
2454
2455         * process.c
2456         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2457         Check parameters before dereferencing them.  Fixes Aaron's part of
2458         bug 77393.
2459
2460 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2461
2462         Fix performance regression.
2463         * loader.c (find_method_in_class): Add 'from_class' argument.
2464         Rename 'klass' argument to 'in_class'.  The signature is compared
2465         against the method in 'in_class', and the corresponding method is
2466         returned from 'from_class'.
2467         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2468         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2469         type definition and generic instantiation in parallel.
2470         (mono_get_method_constrained): Update to changes.
2471
2472 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2473
2474         * threads.c: make sure the domain is correct, too when doing
2475         mono_thread_attach ().
2476
2477 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
2478
2479         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
2480         windows. Fixes #77683.
2481
2482 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2483
2484         * object.h, *: introduced specific way to set elements of an array
2485         of references to be used as write barrier. Still need to audit the
2486         uses of mono_array_addr.
2487
2488 2006-03-01  Miguel de Icaza  <miguel@novell.com>
2489
2490         * object-internals.h: New field to cache the assmebly name, patch
2491         from Tambet Ingo (tambet@ximian.com)
2492
2493 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2494
2495         * decimal.h, class-internals.h, metadata-internals.h,
2496         file-io.h: mark a few function declarations as internal, to
2497         reduce the number of PLT entries.
2498
2499 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2500
2501         * file-io.c: fix typo in warning message.
2502
2503 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
2504
2505         * loader.c: on unix, lookup the "*A" version of a function
2506         if charset is auto as a second option before failing.
2507
2508 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2509
2510         * class.h (mono_class_inflate_generic_method): Revert to two
2511         argument version.
2512         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
2513         (mono_class_inflate_generic_method_full): Add.
2514         * class.c (mono_class_inflate_generic_method_full): Rename from
2515         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
2516         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
2517         * loader.c, reflection.c: Update to changes.
2518
2519 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
2520
2521         * icall.c: const fixes and small improvements.
2522
2523 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2524
2525         * threadpool.c: for asynchronous connect(), enable the same workaround
2526         for BSD 6 as for the Mac. Fixes bug #77637.
2527
2528 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
2529
2530         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
2531         formatted classes. Fixes #77524.
2532
2533 2006-02-24  Raja R Harinath  <rharinath@novell.com>
2534
2535         * class.c (inflate_generic_type): Add a couple more
2536         micro-optimizations.
2537         (inflate_generic_context): Don't use the 'gmethod' from
2538         'inflate_with'.
2539         (mono_class_inflate_generic_method): If the method has generic
2540         parameters, but the passed-in context doesn't have a 'gmethod',
2541         create one.  Use the possibly simplified generic instantiation
2542         from the declaring class instead of the one passed in.
2543
2544 2006-02-24  Raja R Harinath  <harinath@gmail.com>
2545
2546         Make generic method signature and method header handling lazy.
2547         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
2548         (inflate_generic_header): Likewise.
2549         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
2550         parameter to avoid inflating types.
2551         (mono_get_inflated_method): Empty out.
2552         * class.h (mono_class_inflate_generic_method): Update to changes.
2553         * loader.c (mono_get_method_from_token): Don't parse signature for
2554         generic methods, nor methods of generic classes.
2555         (mono_method_signature): Rename from 'mono_method_signature'.
2556         Inflate signature on demand.
2557         (mono_method_get_header): Inflate method header on demand.
2558         * reflection.c: Update to changes.
2559
2560 2006-02-23  Raja R Harinath  <rharinath@novell.com>
2561
2562         * metadata.c (mono_metadata_inflate_generic_inst): If the
2563         instantiation is closed, don't bother expanding it in the new
2564         context.
2565         * class.c (inflate_generic_class): If the generic instantiation
2566         doesn't change after inflation, return the argument itself.
2567         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
2568         Add bounds checks.
2569         (inflate_generic_context): If neither the generic class nor the
2570         generic method instantiations change, return the original context.
2571         * reflection.c (mono_method_get_object): Do
2572         'mono_get_inflated_method' before accessing the ->klass field.
2573         (inflate_mono_method): Don't create a MonoGenericMethod unless
2574         necessary.
2575         (inflate_method): Don't pass a constructed type as the declaring
2576         type of a methodbuilder.
2577
2578 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
2579
2580         * object.c: fix memory overwrite.
2581
2582 2006-02-22  Dick Porter  <dick@ximian.com>
2583
2584         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
2585         it doesn't work any more.
2586         (mono_threads_request_thread_dump): Fix unused variable warnings.
2587
2588 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2589
2590         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
2591         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
2592         the public header file.
2593
2594 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
2595
2596         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
2597
2598 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
2599
2600         * class-internals.h, object.c: reduce the size of MonoVTable
2601         and store the interface_offsets array at negative offsets.
2602
2603 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
2604
2605         * metadata.c: tweak table descriptors data structures to reduce
2606         size and runtime relocations.
2607
2608 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2609
2610         * marshal.c: fix some types and opcodes to be type-safe
2611         in marshaling wrappers.
2612
2613 2006-02-21  Ankit Jain  <jankit@novell.com>
2614
2615         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
2616
2617 2006-02-21  Raja R Harinath  <rharinath@novell.com>
2618
2619         * metadata.c (get_constraints): Relax debugging checks for monodis.
2620
2621 2006-02-21  Ankit Jain  <jankit@novell.com>
2622
2623         * metadata.c (mono_metadata_load_generic_params): Move the code
2624         checking for ambiguous generic params from here to mono/dis/get.c
2625         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
2626
2627 2006-02-21  Raja R Harinath  <harinath@gmail.com>
2628
2629         Fix assertion triggered when compiling nemerle.
2630         * class.c (mono_get_shared_generic_inst): Rename from
2631         get_shared_inst and make non-static.
2632         * loader.c (mono_get_shared_generic_method): New.  Used to create
2633         the MonoGenericContext-equivalent of a MonoGenericContainer.
2634         (mono_get_method_from_token): Initialize the 'context' field of
2635         the created MonoGenericContainer.
2636         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
2637         * metadata.c (get_constraints): Add sanity check.
2638         * class-internals.h: Add new internal methods.
2639
2640         * reflection.c (verify_safe_for_managed_space): New sanity check.
2641         Currently checks that owner-less generic parameters aren't allowed
2642         in managed space.
2643         (mono_type_get_object): Use it.
2644         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
2645         that are now in mono_type_get_object.
2646         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
2647
2648 2006-02-19  Raja R Harinath  <harinath@gmail.com>
2649
2650         * metadata.c (mono_type_create_from_typespec): Rename from
2651         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
2652         argument and caching of types in the generic container.
2653         (unwrap_arrays, find_generic_param): Remove.
2654         * metadata-internals.h: Update.
2655         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
2656
2657 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
2658
2659         * class.c (mono_class_get_exception_for_failure): Fix a warning.
2660
2661         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
2662         return values. Fixes #77581.
2663
2664         * class.c (mono_fnptr_class_get): Switch name and name_space.
2665
2666         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
2667         classes and add support for [In, Out] attributes.
2668         (mono_marshal_free_asany): Ditto. Fixes #77524.
2669
2670 2006-02-18  Raja R Harinath  <harinath@gmail.com>
2671
2672         * class.c (mono_class_from_generic_parameter): Make more robust to
2673         incomplete MonoGenericContainers from monodis.
2674
2675 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2676
2677         * class-internals.h: added some more exception types.
2678         * class.c, metadata.c: added a few checks to handle missing
2679         types.
2680
2681 2006-02-17  Raja R Harinath  <rharinath@novell.com>
2682
2683         Use owner-less generic-params some more.
2684         * class.c (my_mono_class_from_generic_parameter): Remove.
2685         (mono_class_from_generic_parameter): Handle null image,
2686         param->name and param->owner.
2687         (mono_class_from_mono_type): Update.
2688         (mono_class_create_from_typespec): Remove 'container' parameter.
2689         If that parameter is non-null, the result is always inflated by
2690         'mono_class_get_full' anyway.
2691         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
2692         parameter.
2693         (mono_class_get_full): Update.
2694
2695         * class.c (inflate_generic_type) [GENERICINST]: If the generic
2696         instance is not open, don't bother inflating.
2697         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
2698         parse metadata for inflated classes.
2699         (_mono_class_get): Change GenericContext* parameter to
2700         GenericContainer*.
2701         (mono_class_create_from_typespec): Likewise.  Simplify, and
2702         implement trivially.  All the cases are handled in
2703         mono_class_from_mono_type.  Don't inflate returned class.
2704         (mono_class_get_full): Delegate GENERICINST optimization to
2705         inflate_generic_type.
2706         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
2707
2708 2006-02-16  Dick Porter  <dick@ximian.com>
2709
2710         * socket-io.c (create_object_from_sockaddr): Fix typo.
2711         (create_sockaddr_from_object): Check array lengths before
2712         potentially accessing items off the end.
2713         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
2714         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
2715         (ves_icall_System_Net_Sockets_Socket_Send_internal)
2716         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
2717         length checks to avoid wraparound overflows.
2718         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
2719         contents of the array of sockets
2720         (hostent_to_IPHostEntry2)
2721         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
2722         Check return value of inet_ntop ().
2723         (addrinfo_to_IPHostEntry): Fix typo
2724
2725 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2726
2727         Type metadata parsing doesn't use generic-instantiation information.
2728         * metadata.c (mono_metadata_parse_array_full): Change
2729         MonoGenericContext* parameter to MonoGenericContainer*.
2730         (mono_metadata_parse_type_full): Likewise.
2731         (mono_type_create_from_typespec_full): Likewise.
2732         (mono_metadata_parse_mh_full): Likewise.
2733         (mono_metadata_parse_generic_inst): Likewise.
2734         (do_mono_metadata_parse_generic_class): Likewise.
2735         (do_mono_metadata_parse_type): Likewise.
2736         * metadata-internals.h: Update to changes.
2737         * class.c (mono_class_find_enum_basetype): Likewise.
2738         (mono_class_setup_fields): Likewise.
2739         (mono_class_create_from_typespec): Likewise.
2740         * loader.c (method_from_methodspec): Likewise.
2741         (mono_get_method_from_token): Likewise.
2742         (mono_method_get_header): Likewise.
2743
2744 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2745
2746         * marshal.c: handle additional GENERICINST case (patch from
2747         Thong Nguyen <tum@veridicus.com>).
2748         Fix a few cases where LDIND_I/STIND_I was used for references.
2749
2750 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2751
2752         * reflection.c (mono_reflection_get_token): Remove unused variable.
2753
2754 2006-02-16  Martin Baulig  <martin@ximian.com>
2755
2756         * reflection.c (mono_reflection_get_token): Add support for fields
2757         in instantiated generic types.
2758
2759         * icall.c
2760         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
2761
2762 2006-02-15  Martin Baulig  <martin@ximian.com>
2763
2764         * icall.c
2765         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
2766         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
2767         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
2768         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
2769
2770 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2771
2772         * class.c, metadata.c, metadata.h, object.c, icall.c,
2773         marshal.c: changed mono_type_get_underlying_type () to do
2774         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
2775         Fixed handling of instantiated generic valuetypes (bug #75479).
2776
2777 2006-02-15  Raja R Harinath  <rharinath@novell.com>
2778
2779         * metadata.c (mono_metadata_decode_signed_value): Simplify.
2780         Delegate to mono_metadata_decode_value, and work on the returned value.
2781
2782         * icall.c (ves_icall_MonoType_GetGenericArguments):
2783         Add consistency check here too.
2784         
2785 2006-02-15  Ankit Jain  <jankit@novell.com>
2786
2787         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
2788         char/short etc.
2789
2790 2006-02-15  Ankit Jain  <jankit@novell.com>
2791
2792         * metadata.c (mono_metadata_decode_signed_value): New function to decode
2793         signed values, used only for representing lower bounds of arrays.
2794         (mono_metadata_parse_array_full): Use new
2795         mono_metadata_decode_signed_value to decode lower bounds.
2796
2797 2006-02-14  Martin Baulig  <martin@ximian.com>
2798
2799         * reflection.c
2800         (mono_reflection_get_token): Support "MonoGenericMethod" and
2801         "MonoGenericCMethod" and allow generic instances / methods.
2802
2803 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
2804
2805         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
2806         to obtain the terminal size using an ioctl.
2807
2808         * object.c (mono_nullable_init): Revert this as nullable reference
2809         types are not valid.
2810         (mono_nullable_box): Ditto.
2811
2812 2006-02-09  Dick Porter  <dick@ximian.com>
2813
2814         * threads.c (mono_thread_detach): Drop a reference to the thread
2815         we're detaching.
2816
2817 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
2818
2819         * object.c (mono_nullable_init): Handle nullable reference types.
2820         (mono_nullable_box): Ditto. Fixes #77446.
2821
2822 2006-02-07  Martin Baulig  <martin@ximian.com>
2823
2824         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
2825
2826 2006-02-07  Ankit Jain  <jankit@novell.com>
2827
2828         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
2829         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
2830         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
2831         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
2832         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
2833         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
2834
2835 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
2836
2837         * class.c (mono_class_create_generic): Set type_token as well.
2838
2839         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
2840         compatible with MS.
2841
2842 2006-02-02  Martin Baulig  <martin@ximian.com>
2843
2844         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
2845         has never been used so far.
2846
2847 2006-02-02  Martin Baulig  <martin@ximian.com>
2848
2849         * mono-debug-debugger.h: Changed comment at the top of this file;
2850         the header is not installed, but it's safe to #include it from
2851         within the JIT.
2852
2853         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
2854         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
2855
2856 2006-02-02  Martin Baulig  <martin@ximian.com>
2857
2858         * mono-debug.h
2859         (MonoSymbolTable): Removed the `metadata_info' field.
2860
2861         * mono-debug.c
2862         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
2863
2864         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2865         (mono_debugger_add_builtin_types): Removed.
2866         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
2867         (mono_debugger_create_notification_function): We now operate on a
2868         pre-allocated area; take a `gpointer' and return `void'.
2869
2870         * mono-debug-debugger.c
2871         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
2872         (mono_debugger_add_builtin_types): Removed.
2873
2874 2006-02-02  Martin Baulig  <martin@ximian.com>
2875
2876         * threads.c (mono_debugger_create_all_threads): New public method.
2877
2878 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2879
2880         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
2881         breaks on several platforms.
2882
2883 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
2884
2885         * assembly.c: the VS.NET build doesn't supply default values for
2886         MONO_ASSEMBLIES and MONO_CFG_DIR.
2887
2888 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
2889
2890         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
2891         helper function.
2892
2893         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
2894
2895         * loader.c (method_from_memberref): Fix a warning.
2896
2897         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
2898
2899         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
2900         with explicit layout. Fixes #77433.
2901
2902 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
2903
2904         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
2905         max_interface_id is initialized before using it. Fixes #77398.
2906         (ves_icall_Type_GetInterfaces): Ditto.
2907
2908 2006-01-30  Raja R Harinath  <rharinath@novell.com>
2909
2910         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2911         allocate memory for parameter attributes when parsing memberref
2912         signatures.
2913         * loader.c (mono_loader_set_error_method_load): Don't warn.
2914         (method_from_memberref): Ensure MissingMethodException gets thrown
2915         if method is not found.  Make warning more informative.
2916
2917 2006-01-29  Raja R Harinath  <harinath@gmail.com>
2918
2919         Fix #77397
2920         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
2921         return true if is byref.
2922         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2923         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
2924         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2925
2926 2006-01-27  Raja R Harinath  <rharinath@novell.com>
2927
2928         Fix tests/find-method.2.il
2929         * loader.c (find_method, find_method_in_class): Remove is_inflated
2930         argument.  Revert 2006-01-18 change.
2931         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
2932         is generic, search for method in its generic definition.
2933         * class.c (mono_class_setup_vtable_general): Print generic
2934         arguments of generic types in debugging printf.
2935
2936 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
2937
2938         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
2939
2940         * threads.c (mono_threads_request_thread_dump): New helper function.
2941
2942 2006-01-25  Raja R Harinath  <rharinath@novell.com>
2943
2944         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
2945
2946 2006-01-25  Ankit Jain  <jankit@novell.com>
2947
2948         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
2949         move definition to ..
2950         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
2951         
2952 2006-01-25  Ankit Jain  <jankit@novell.com>
2953             Raja R Harinath  <rharinath@novell.com>
2954
2955         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
2956         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
2957         as necessary.
2958
2959 2006-01-25  Martin Baulig  <martin@ximian.com>
2960
2961         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
2962         `MonoDebuggerThread' into debug-debugger.c.
2963
2964 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
2965
2966         * profiler.c: fix printing of data.
2967
2968 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
2969
2970         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
2971           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
2972
2973 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2974
2975         * object.c: fix deadlock related to string interning.
2976
2977 2006-01-23  Martin Baulig  <martin@ximian.com>
2978
2979         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2980
2981         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
2982
2983 2006-01-23  Martin Baulig  <martin@ximian.com>
2984
2985         * mono-debug.h: Moved the prototypes of some functions which are
2986         used by the JIT here from mono-debug-debugger.h.
2987
2988 2006-01-21  Martin Baulig  <martin@ximian.com>
2989
2990         * Makefile.am: Don't install mono-debug-debugger.h.
2991
2992 2006-01-21  Martin Baulig  <martin@ximian.com>
2993
2994         * mono-debug-debugger.h: Enforce the private status of this header
2995         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
2996         Moved some stuff from mono-debugger-jit-wrapper.h here.
2997
2998 2006-01-20  Raja R Harinath  <rharinath@novell.com>
2999
3000         * class.c (mono_class_from_typeref): Add a sanity test to help
3001         catch lack of assembly load/search hooks.
3002
3003 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3004
3005         * marshal.c (emit_struct_conv): Relax the fields with same offset
3006         check even more. Fixes #77230.
3007
3008 2006-01-18  Martin Baulig  <martin@ximian.com>
3009
3010         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3011         argument; if false, we compare the uninstantiated signatures.
3012         (method_from_memberref): Compare the uninstantiated signatures;
3013         fixes #76417.
3014
3015 2006-01-18  Robert Jordan  <robertj@gmx.net>
3016
3017         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3018         Clear the weak link. Fixes bug #77170.
3019
3020         * gc.c (mono_gchandle_free):
3021         Reflect *-gc.c changes (tiny optimization).
3022
3023 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3024
3025         * metadata.c (mono_metadata_signature_dup): Applied patch from
3026         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3027         Fixes #77288.
3028
3029 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3030
3031         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3032         marshalling from native to managed code. Fixes #77230.
3033
3034 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3035
3036         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3037         connect. Fixes bug #77020.
3038
3039 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3040
3041         * class.c: fixed id assignement for nested interfaces (bug #77275).
3042         Added also better info for --print-vtable debugging.
3043
3044 2006-01-12  Martin Baulig  <martin@ximian.com>
3045
3046         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3047         interfaces on-the-fly; fixes #76625.
3048
3049         * class-internals.h
3050         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3051         don't need that anymore.
3052
3053 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3054
3055         * socket-io.c
3056         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3057         To avoid initing the nested_classes when not needed I turned the
3058         PeerCredData as a toplevel internal class, as it has to be shared
3059         anyways. 
3060
3061         Fixes the CASA issue.
3062
3063 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3064
3065         * domain.c: Accessors for MonoJitInfo
3066
3067         * profiler-private.h: Add jitinfo to the end jit hook
3068
3069         * profiler.[ch]: Define new hooks, called after jitting which give
3070         the MonoJitInfo that was compiled
3071
3072 2006-01-10  Martin Baulig  <martin@ximian.com>
3073
3074         * class.c (mono_class_setup_events): Add support for generic
3075         classes; fixes #76440.
3076
3077 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3078
3079         Fix #77160.
3080         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3081         on passed-in method.
3082
3083 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3084
3085         * object.c (mono_runtime_invoke_array): Add Nullable support.
3086
3087         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3088
3089 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3090
3091         * file-io.c: Don't consider sockets as directory and avoid an endless
3092         loop. Fix bug #76966.
3093
3094 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3095
3096         * object.c (mono_nullable_init): New helper function.
3097         (mono_nullable_box): Ditto.
3098
3099         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3100
3101         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3102
3103         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3104         
3105 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3106
3107         * class.c (mono_class_is_assignable_from): Make T assignable to 
3108         Nullable<T>.
3109
3110 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3111
3112         * appdomain.c: Bump corlib version to 46.
3113         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3114         serialization purpose) and changed ves_icall_System_Reflection_
3115         Assembly_get_code_base signature to accept a boolean (to escape, or 
3116         not, the assembly code base).
3117
3118 2005-12-23  Dick Porter  <dick@ximian.com>
3119
3120         * icall.c: 
3121         * threads-types.h: 
3122         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3123         CreateEvent icall now returns "created" boolean parameter.
3124
3125 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3126
3127         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3128         #76967.
3129
3130         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3131         when attr_klass is an interface. Fixes #77045.
3132
3133 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3134
3135         * marshal.c (emit_struct_conv): Fix previous patch.
3136         
3137         * marshal.c (emit_struct_conv): Add a check for fields with the same
3138         offset.
3139
3140 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3141
3142         Fix regression in Mono.C5.
3143         * class.c (mono_class_create_generic): If 'klass' is an interface
3144         set up the interface offsets.
3145         (mono_class_is_assignable_from): Don't throw away generic arguments.
3146
3147 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3148
3149         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3150         type parameters.
3151
3152 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3153
3154         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3155         dead store.
3156         (do_mono_metadata_parse_generic_class): Don't pass the current
3157         generic context when parsing the type being instantiated: it
3158         cannot use it, anyway.
3159
3160         * loader.c (method_from_memberref): Don't inflate a signature if
3161         it doesn't contain any type parameters.
3162
3163 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3164
3165         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3166
3167 2005-12-14  Martin Baulig  <martin@ximian.com>
3168
3169         * class.c
3170         (mono_type_get_name_recurse): Don't return null for type
3171         parameters and open generic classes.
3172         (mono_class_setup_methods): Don't exclude generic instances.
3173         (mono_get_unique_iid): Use different IDs for different
3174         instantiations of the same generic type.
3175         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3176         open generic instances; create a normal vtable for closed generic
3177         instances.
3178         (mono_class_setup_vtable_general): We're now also called for
3179         closed generic instances.
3180
3181         * reflection.c
3182         (mono_reflection_bind_generic_parameters): Correctly use
3183         mono_metadata_lookup_generic_inst() everywhere.
3184
3185 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3186
3187         * object.c (mono_class_create_runtime_vtable): Call 
3188         mono_class_setup_vtable ().
3189
3190         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3191         function.
3192         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3193         #76959.
3194
3195         * loader.c (mono_loader_set_error_type_load): Print the type load
3196         warnings to the console so they are more visible to the user.
3197         (mono_loader_set_error_method_load): Ditto.
3198
3199         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3200         is still broken.
3201         
3202         * reflection.c (ensure_runtime_vtable): Fix build.
3203
3204         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3205         doesn't work in all cases.
3206
3207 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3208
3209         * object.c (mono_array_new_full): Treat a single dimensional array
3210         with 0 lower bounds as an szarray. Fixes #76973.
3211
3212         * reflection.c (custom_attr_visible): Really fix this.
3213
3214 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3215
3216         * reflection.c (custom_attr_visible): Allow nested public attributes
3217         as well.
3218
3219         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3220         interface check.
3221
3222 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3223
3224         * class.c (set_generic_param_owner): Delete.
3225         (mono_class_create_from_typedef): Don't set ->owner field of
3226         generic parameters to "param containers" of enclosing classes.
3227         * reflection.c (mono_reflection_initialize_generic_parameter):
3228         Likewise.
3229
3230 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3231
3232         * reflection.c (custom_attr_visible): Fix build.
3233
3234 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3235
3236         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3237         private attributes.
3238         
3239         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3240         handling of null parameter defaults.
3241
3242 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3243
3244         * class.c (mono_class_from_generic_parameter): Don't set
3245         klass->generic_container.
3246         (my_mono_class_from_generic_parameter): Likewise.
3247
3248 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3249
3250         * reflection.c (load_public_key): Fix a warning.
3251         (method_encode_code): Fix unaligned accesses.
3252
3253 2005-12-07  Martin Baulig  <martin@ximian.com>
3254
3255         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3256
3257         * reflection.c
3258         (write_generic_param_entry): Encode our custom attrs.
3259
3260         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3261
3262 2005-12-07  Martin Baulig  <martin@ximian.com>
3263
3264         * reflection.c (encode_new_constraint): Removed; we don't use the
3265         `NewConstraintAttribute' anymore.
3266
3267 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3268
3269         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3270         not fire a TypeResolve event when Assembly.GetType () is called.
3271
3272 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3273
3274         Beginning of support for nullable types in the runtime. Parts of
3275         this patch are from Martin.
3276
3277         * appdomain.c (MONO_CORLIB_VERSION): Bump
3278
3279         * domain.c (mono_init_internal): get the nullable type
3280
3281         * class.c (mono_class_is_nullable): New method
3282         (mono_class_get_nullable_param): New mehod
3283         (mono_class_create_generic): In types T? set cast_class to T
3284
3285         * class-internals.h (MonoDefaults): new nullable default class
3286         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3287         new methods.
3288
3289 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3290
3291         * metadata.c (select_container): New.  Refactor code to select the
3292         appropriate GenericContainer given the type of generic parameter
3293         we are looking for.
3294         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3295         not a MonoGenericContext.  Use select_container.  Update parameters.
3296         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3297         and MONO_TYPE_MVAR.
3298         (unwrap_arrays): Remove duplicate tests.
3299         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3300         generic instantiated class to find any arguments that are generic
3301         parameters.
3302         (mono_type_create_from_typespec_full): Use find_generic_param to
3303         avoid evicting some generic instantiations from the typespec
3304         cache.
3305
3306 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3307
3308         * reflection.c: fixed writing of doubles on ARM FPA.
3309
3310 2005-12-02  Robert Jordan  <robertj@gmx.net>
3311
3312         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3313
3314 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3315
3316         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3317         least on SUSE 10 they are not the same (on debian, they are just the
3318         same thing).
3319
3320 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3321
3322         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3323         DeclaringType for VARs and MVARs.
3324         * class.c (set_generic_param_owner): Fix initialization of owner
3325         fields.
3326
3327 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3328
3329         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3330
3331 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3332
3333         * threadpool.c: workaround for a bug that shows up on the Mac:
3334         select()+connect() on a blocking socket is not like it should
3335         be, so we proceed to connect() in that case, wasting the I/O
3336         threadpool thread until connect succeedes. Fixes bug #75436.
3337
3338 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3339
3340         * threadpool.c: fix typo when setting file descriptor states.
3341
3342 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3343
3344         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3345         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3346         create a temporary signature container.
3347         (mono_metadata_parse_generic_param): Update to changes.
3348         (mono_type_create_from_typespec_full): Update to changes.
3349         * loader.c (method_from_memberref): Don't use a
3350         MonoGenericContainer while parsing a memberref signature.
3351         (method_from_methodspec): Remove dead-store of the 'container'
3352         variable.  It's overwritten before use.
3353
3354         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3355         checks tighter.
3356         (mono_metadata_parse_generic_param): Likewise.
3357         * loader.c (find_method_in_class): Does not need a
3358         MonoGenericContainer.  Use 'mono_method_signature' rather than
3359         'mono_method_signature_full'.
3360         (find_method, mono_get_method_constrained, method_from_memberref):
3361         Update to changes.
3362
3363         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3364         owner-less generic-parameters are never evicted from the typespec
3365         cache.
3366
3367         * loader.c (method_from_memberref): Don't use the current context
3368         when parsing signatures.
3369         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3370
3371         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3372         side-effects in g_assert.
3373         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3374         that we don't potentially lose information.
3375
3376 2005-11-26  Dick Porter  <dick@ximian.com>
3377
3378         * icall.c:
3379         * threads.c: icalls to implement basic (ie, not named)
3380         System.Threading.Semaphore.
3381
3382 2005-11-24  Dick Porter  <dick@ximian.com>
3383
3384         * process.c
3385         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3386         Use GetProcessId() if it's available.
3387
3388 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3389
3390         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3391
3392 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3393             Ankit Jain  <jankit@novell.com>
3394
3395         * loader.c (mono_get_method_from_token): Initialize 'method' field
3396         of all generic parameters before parsing the signature.  Remove
3397         code that "fixed"-up MVAR references.
3398
3399 2005-11-23  Ankit Jain  <jankit@novell.com>
3400
3401         * metadata.c (mono_metadata_has_generic_params):
3402         (mono_metadata_load_generic_param_constraints):
3403         (mono_metadata_load_generic_params): Move duplicate code ...
3404         (mono_metadata_get_generic_param_row): ... here. Returns the
3405         first row-id in GenericParam table for a given owner (token).
3406         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3407         prototype.
3408
3409 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3410             Ankit Jain  <jankit@novell.com>
3411
3412         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3413         comparing VARs too.
3414         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3415         type->data.generic_param only if the type is an MVAR.
3416         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3417         leak owner-less VARs and MVARs into managed space.
3418
3419 2005-11-21  Martin Baulig  <martin@ximian.com>
3420
3421         * class-internals.h
3422         (MonoMethod): Moved the `generic_container' here from
3423         `MonoMethodNormal' since we now also need it for
3424         `MonoMethodPInvoke';
3425         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3426         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3427         an union containing both `MonoMethodNormal' and
3428         `MonoMethodPInvoke'.
3429
3430         * loader.c
3431         (mono_get_method_from_token): Allow implementing generic methods
3432         as interncalls.
3433
3434         * threads.c
3435         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3436         icall.
3437
3438 2005-11-17  Dick Porter  <dick@ximian.com>
3439
3440         * icall.c: 
3441         * process.h: 
3442         * process.c: Split the Process Start_internal icall into
3443         ShellExecuteEx_internal and CreateProcess_internal, which are
3444         called depending on whether UseShellExecute is true.  Fixes bug
3445         76670.
3446
3447         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3448
3449 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3450
3451         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3452         'msize' parameters, use the information in 'mspec' instead.
3453         (emit_object_to_ptr_conv): Ditto.
3454
3455         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3456         fields out of order. Fixes #76733.
3457
3458 2005-11-17  Ankit Jain  <jankit@novell.com>
3459
3460         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3461
3462 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3463
3464         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3465           bug #76575.
3466
3467 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3468
3469         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3470         for types with non-auto layout. Fixes #76717.
3471
3472 2005-11-16  Ankit Jain  <jankit@novell.com>
3473
3474         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
3475         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
3476         if generic_context is null.
3477           (mono_metadata_generic_param_equal): param->owner can be null.
3478           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
3479         null.
3480
3481 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3482
3483         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
3484         the correct value.
3485
3486 2005-11-15  Martin Baulig  <martin@ximian.com>
3487
3488         * object.c (set_value): Use mono_class_from_mono_type() instead of
3489         the hack for generic instances; fixes #76136.
3490
3491 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
3492
3493         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
3494         fields.
3495
3496         * image.c (load_metadata_ptrs): Initialize the new fields.
3497
3498         * reflection.c (create_dynamic_mono_image): Ditto.
3499
3500         * reflection.c (build_compressed_metadata): Use the new fields.
3501
3502         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
3503         icall.
3504
3505         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
3506         icall.
3507         
3508 2005-11-15  Ankit Jain  <jankit@novell.com>
3509             Raja R Harinath  <harinath@gmail.com>
3510
3511         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
3512         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
3513         new per-generic_container cache if the cached MonoType's context matches
3514         the current context.
3515           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
3516         to the expected context.
3517           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
3518
3519 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3520
3521         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
3522         we changed the signature of an icall.
3523         * icall.c: Modify to mono_double_ParseImpl return true/false 
3524         depending on the success, instead of throwing the exception. This will
3525         help us in Double.TryParse methods.
3526         
3527 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
3528
3529         * marshal.c (emit_marshal_object): Throw an exception when
3530         marshalling 'object' instead of crashing. Fixes #76696.
3531
3532 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3533
3534         * class-internals.h: Add prototype for mono_type_get_full_name ().
3535
3536 2005-11-11  Dick Porter  <dick@ximian.com>
3537
3538         * threads.c (mono_thread_manage): Make sure the main thread has
3539         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
3540
3541 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3542
3543         * loader.c (mono_loader_set_error_type_load): Log a warning to the
3544         console about the missing type.
3545         (mono_loader_set_error_method_load): Ditto.
3546
3547 2005-11-09  Miguel de Icaza  <miguel@novell.com>
3548
3549         * mono-config.c (mono_get_config_dir): Set the system defaults if
3550         none is specified.
3551
3552         * assembly.c (mono_set_dirs): New API entry point to set the
3553         assembly and the config directory in one call
3554
3555 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
3556
3557         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
3558         the ftnptr was created from a delegate in a domain other than the
3559         current domain. Fixes #75377.
3560
3561         * exception.h exception.c: Add mono_get_exception_not_supported ().
3562
3563 2005-11-08  Martin Baulig  <martin@ximian.com>
3564
3565         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
3566
3567 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
3568
3569         * security-manager.h: Added definitions to deal with strongname key 
3570         pairs bigger (and smaller) than 1024 bits.
3571         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
3572         adjust wrt the public key length being used.
3573
3574 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
3575
3576         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
3577           Windows build (r51396-51397).
3578
3579 2005-11-03  Martin Baulig  <martin@ximian.com>
3580
3581         * class.c (mono_class_setup_vtable_general): Also add generic
3582         methods to the vtable; fixes #76581.
3583
3584 2005-11-01  Miguel de Icaza  <miguel@novell.com>
3585
3586         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
3587         sure that we lookup GetString method from the System.Text.Encoding
3588         class, not the derived class or we get an empty method.
3589
3590         Fixed class #76612.
3591
3592 2005-10-25  Miguel de Icaza  <miguel@novell.com>
3593
3594         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
3595         if it has been previously set (embedders). 
3596
3597         Make mono_set_rootdir available also on Unix.
3598
3599 005-10-24  Robert Jordan  <robertj@gmx.net>
3600
3601         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
3602
3603 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
3604
3605         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
3606         only calls which are made to native code use this flag.
3607
3608         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
3609
3610 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
3611
3612         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
3613         Add support for FieldBuilders.
3614
3615 2005-10-29  Martin Baulig  <martin@ximian.com>
3616
3617         * mono-debug.c
3618         (mono_debug_using_mono_debugger): New public method; returns
3619         whether we're running inside the debugger.
3620
3621 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
3622
3623         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
3624         for Method/Constructor/FieldBuilders.
3625
3626 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
3627
3628         * reflection.c (module_add_cattrs): Save custom attributes for global methods
3629         and fields as well.
3630
3631 2005-10-26  Martin Baulig  <martin@ximian.com>
3632
3633         * mono-debug-debugger.c
3634         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
3635
3636 2005-10-24  Raja R Harinath  <harinath@gmail.com>
3637
3638         * icall.c (base64_to_byte_array): Don't pass an out-of-range
3639         integer to isspace.
3640
3641 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
3642
3643         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
3644         when passing valuetypes byref. Fixes #76502.
3645
3646 2005-10-19  Jackson Harper  <jackson@ximian.com>
3647
3648         * profiler.c: Don't put a . in front of types that are not in a
3649         namespace.
3650
3651 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
3652
3653         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
3654
3655 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
3656
3657         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
3658         #76436.
3659         (mono_marshal_get_ldflda_wrapper): Fix a warning.
3660
3661 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3662
3663         * assembly.c metadata-internals.h icall.c: Define an additional
3664         parameter for mono_assembly_name_parse_full, so we can avoid creating
3665         S.R.AssemblyName.Version when no version info wasn't passed.
3666         
3667 2005-10-09  Miguel de Icaza  <miguel@novell.com>
3668
3669         * class.c (mono_type_get_full_name): Reimplement method that was
3670         removed. 
3671
3672         * image.c: Some docs
3673
3674 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
3675
3676         * profiler.c (output_newobj_profile): Fix printing of Total memory
3677         on x86.
3678
3679 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3680
3681         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
3682
3683 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
3684
3685         * threads.c: remove debug output.
3686
3687 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3688
3689         * threads.c (mono_thread_manage): Fix crashes if more than 64
3690         threads need to be aborted. Hopefully fixes #75899.
3691
3692         * assembly.c (mono_stringify_assembly_name): New helper function.
3693
3694         * class.c: Use mono_stringify_assembly_name instead of the similar
3695         static function.
3696
3697         * assembly.h assembly.c: Add support for calling a postload search 
3698         hook if an assembly cannot be loaded.
3699
3700         * appdomain.c: Register new search hooks which call the AssemblyResolve
3701         events in AppDomain. Fixes #75231
3702
3703 2005-10-07  Martin Baulig  <martin@ximian.com>
3704
3705         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
3706         methods without debug info.
3707
3708 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
3709
3710         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
3711         wrappers.
3712
3713 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3714
3715         * file-io.c: now that we return symlinks, use lstat and, when the file
3716         is a symbolic link, stat, to get the file attributes. Also avoid the
3717         conversion to/from utf16/external.
3718
3719 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
3720
3721         * class.c (mono_class_layout_fields): Compute klass->has_references
3722         correctly if an embedded valuetype is not yet initialized. Fixes
3723         #76331.
3724
3725 2005-10-04  Martin Baulig  <martin@ximian.com>
3726
3727         * metadata.c
3728         (mono_metadata_load_generic_param_constraints): New public
3729         function; splitted the constraints loading out from
3730         mono_metadata_load_generic_params().
3731
3732         * class.c (mono_class_create_from_typedef): Call
3733         mono_metadata_load_generic_param_constraints() after setting up
3734         the type and creating our parent; fixes #75329.
3735
3736 2005-10-04  Martin Baulig  <martin@ximian.com>
3737
3738         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
3739         non-dynamic parent classes.
3740
3741 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3742
3743         * file-io.c : win32 build fix (ETXTBSY seems not found).
3744
3745 2005-10-04  Martin Baulig  <martin@ximian.com>
3746
3747         * reflection.c
3748         (mono_image_get_methodspec_token): Make the cache actually work;
3749         fixes #75974.
3750
3751 2005-10-04  Martin Baulig  <martin@ximian.com>
3752
3753         * class.c (mono_class_name_from_token): Removed the unneccessary
3754         `MonoGenericContext *' argument.
3755
3756 2005-10-04  Martin Baulig  <martin@ximian.com>
3757
3758         * loader.c
3759         (method_from_methodspec): Make the caching work again; fixes the
3760         performance regression from #76262.
3761
3762 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3763
3764         * file-io.c:
3765         * file-io.h:
3766         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
3767         GetFileSystemEntries that performs the same work but without going
3768         into io-layer, locking, etc.
3769
3770 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
3771
3772         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
3773         ThreadState_Stopped as well. Fixes #76047.
3774
3775 2005-09-29  Martin Baulig  <martin@ximian.com>
3776
3777         * class.c
3778         (inflate_generic_context): If the new context has a `gmethod', set
3779         its `container' that that gmethod's `container'.
3780
3781         * metadata.c
3782         (mono_metadata_parse_generic_param): Simplify things;
3783         `generic_container = generic_context->container;' is just fine.
3784
3785         * loader.c (method_from_methodspec): Code cleanups.
3786
3787 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
3788
3789         * decimal.c: fix warning (and let gcc generate correct
3790         code on ARM with optimizations).
3791
3792 2005-09-28  Martin Baulig  <martin@ximian.com>
3793
3794         * loader.c
3795         (method_from_memberref): Added `MonoGenericContext *class_context'
3796         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
3797         (method_from_methodspec): If we're a memberref, use the enclosing
3798         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
3799
3800 2005-09-28  Martin Baulig  <martin@ximian.com>
3801
3802         * object.c (mono_runtime_invoke_array): Added support for
3803         MONO_TYPE_GENERICINST; fixes #75917.
3804
3805 2005-09-27  Martin Baulig  <martin@ximian.com>
3806
3807         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
3808         `k->byval_arg.type' to determine the actual type.
3809
3810         * loader.c (method_from_methodspec): Removed some hacks.
3811
3812 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
3813
3814         * class-internals.h (mono_field_is_deleted): Do the test for
3815         rtspecialname before we check the actual name of the field. This
3816         prevents us from dereferencing a pointer into the string table,
3817         saving us from accessing a few pages
3818
3819         * *.c: Replace the use of {Enter,Leave}CriticalSection with
3820         macros. This will allow a deadlock debugger to easily be plugged
3821         in.
3822
3823 2005-09-27  Martin Baulig  <martin@ximian.com>
3824
3825         * loader.c (method_from_methodspec): Create a "signature"
3826         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
3827
3828 2005-09-27  Martin Baulig  <martin@ximian.com>
3829
3830         * class.c
3831         (inflate_generic_class): Correctly set the new context's
3832         container.
3833
3834         * loader.c
3835         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
3836         instead of a `MonoGenericContext *'.
3837         (mono_method_signature_full): Take a `MonoGenericContainer *'
3838         instead of a `MonoGenericContext *'.
3839
3840         * metadata.c
3841         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
3842         instead of a `MonoGenericContext *'.
3843         (mono_metadata_parse_method_signature_full): Likewise.
3844
3845 2005-09-26  Martin Baulig  <martin@ximian.com>
3846
3847         * class.c
3848         (mono_class_from_generic_parameter): Set `klass->generic_container'
3849         (mono_class_from_generic_parameter): Likewise.
3850         (mono_bounded_array_class_get): We inherit the generic container
3851         from the element class.
3852
3853         * loader.c
3854         (find_method, find_method_in_class): Take a `MonoGenericContext *'
3855         argument rather than computing it here.
3856         (method_from_memberref): Correctly set the generic context before
3857         parsing the signature.  Fixes #75681.
3858
3859 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
3860
3861         * object.c (mono_class_has_special_static_fields): Fix warnings.
3862
3863 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3864
3865         * assembly.c: Add parse_public_key function, to
3866         par the public keys. Also added mono_assembly_name_parse_full,
3867         to define it the parsed key should be freed or not.
3868         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
3869         to parse a long format assembly name.
3870         * metadata-internals.h: Keep mono_assembly_name_parse_full as
3871         private, since calling it to preserve the key requires
3872         freeing it manually.
3873         
3874 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
3875
3876         * locales.c : removed HAVE_ICU part.
3877
3878 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
3879
3880         * object.c (mono_class_create_runtime_vtable): Avoid calling 
3881         field_is_special_static if the klass has no special static fields.
3882
3883         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
3884         (MonoCachedClassInfo): Likewise.
3885
3886         * object.c (mono_class_has_special_static_fields): New helper function.
3887
3888 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3889
3890         * class.c (mono_class_create_from_typedef): Don't call 
3891         interfaces_from_typedef_full for enums.
3892         (mono_class_create_from_typedef): Compute the base types of enums directly
3893         without calling mono_class_setup_fields ().
3894         (mono_class_find_enum_basetype): New helper function.
3895
3896         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
3897         one place inside the string heap.
3898         
3899 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
3900
3901         * class.c: locking fixes, code cleanups, some docs added.
3902         Allocate some data structures in the image mempool.
3903
3904 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3905
3906         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3907         the example code.
3908         
3909 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
3910
3911         * class-internals.h, class.c, reflection.c: reduce memory taken by
3912         MonoClass.
3913
3914 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
3915
3916         * metadata.c, metadata.h, loader.h: documentation updates, code and
3917         API cleanups.
3918
3919 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3920
3921         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3922         the example code.
3923
3924         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
3925         page faults caused by the runtime while reading metadata.
3926
3927 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3928
3929         * socket-io.c: the field names were changed 3 months ago and no one
3930         realized until bug #76077 got filed!
3931
3932 2005-09-20  Martin Baulig  <martin@ximian.com>
3933
3934         * icall.c (assembly_icalls): Removed some unused debugger icalls.
3935
3936 2005-09-20  Martin Baulig  <martin@ximian.com>
3937
3938         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
3939         write the rank into the class entry.
3940
3941 2005-09-20  Martin Baulig  <martin@ximian.com>
3942
3943         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
3944
3945 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
3946
3947         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3948
3949         * icall.c (custom_attrs_defined_internal): New icall.
3950
3951         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
3952         function.
3953         (mono_custom_attrs_construct_by_type): New helper function.
3954
3955 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
3956
3957         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
3958         terminate the resulting string. Fixes #76123.
3959
3960 2005-09-16  Martin Baulig  <martin@ximian.com>
3961
3962         * mono-debug.c
3963         (mono_debug_add_method): Ignore inflated methods for the moment.
3964
3965 2005-09-14  Martin Baulig  <martin@ximian.com>
3966
3967         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
3968
3969 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
3970
3971         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
3972         return a success/failure indication.
3973         (mono_metadata_interfaces_from_typedef_full): Ditto.
3974         (get_constraints): Ditto.
3975
3976 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
3977
3978         * marshal.c (emit_marshal_array): Fix handling of null arrays.
3979         
3980         * marshal.c (emit_marshal_array): Add support for returning string
3981         arrays from delegates. Fixes #76063.
3982
3983         * marshal.c: Use the emit_ldloc/stloc macros where possible.
3984
3985 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3986
3987         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
3988         icall.
3989
3990 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
3991
3992         * reflection.c icall.c: Fix after mono_get_exception_type_load
3993         signature change.
3994
3995         * assembly.c (mono_assembly_get_assemblyref): New helper function.
3996         (mono_assembly_load_reference): Use the new helper.
3997
3998         * class-internals.h (MonoLoaderError): New structure containing 
3999         information about type loading errors.
4000
4001         * class-internals.h loader.c: Add APIs to store per-thread loader
4002         error information.
4003
4004         * loader.c class.c: Set the loader error if needed.
4005
4006         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4007
4008 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4009
4010         * decimal.c: fixed to handle the broken ARM fp format.
4011
4012 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4013
4014         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4015         broken.
4016
4017 2005-09-06  Martin Baulig  <martin@ximian.com>
4018
4019         * domain.c (supported_runtimes): Added v2.0.50727.
4020
4021 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4022
4023         * culture-info.h: reduce the size of some structures.
4024
4025 2005-09-05  Martin Baulig  <martin@ximian.com>
4026
4027         Reflect latest API changes in the August CTP.
4028
4029         * icall.c
4030         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4031         ("MonoType.HasGenericArguments"): Removed.
4032         ("MonoMethod.BindGenericParameters"): Renamed to
4033         "MakeGenericMethod".
4034         ("MethodBuilder.BindGenericParameters"): Renamed to
4035         "MakeGenericMethod".    
4036
4037 2005-09-05  Martin Baulig  <martin@ximian.com>
4038
4039         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4040
4041 2005-09-05  Martin Baulig  <martin@ximian.com>
4042
4043         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4044
4045         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4046         generic_container is non-NULL.
4047
4048 2005-09-05  Martin Baulig  <martin@ximian.com>
4049
4050         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4051
4052         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4053
4054 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4055
4056         * reflection.c (encode_locals,
4057         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4058         for large generic types.
4059
4060 2005-09-05  Martin Baulig  <martin@ximian.com>
4061
4062         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4063
4064         * class.c (mono_dup_array_type): New public method.
4065         (mono_metadata_signature_deep_dup): New public method.
4066         (dup_type): Correctly duplicate array and function types.
4067
4068 2005-09-05  Martin Baulig  <martin@ximian.com>
4069
4070         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4071
4072         * reflection.c (get_default_param_value_blobs): Handle generic types
4073         and generic methods.
4074
4075 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4076
4077         * class.c: Fixed error reporting (method/class were inversed) for 
4078         inheritance demands.
4079         * security-manager.c|h: Added the AppDomain when calling the managed
4080         System.Security.SecurityManager.InheritanceDemand method.
4081
4082 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4083
4084         * reflection.c (encode_marshal_blob): 'marshaltype' and
4085         'marshaltyperef' are alternate sources for the custom marshaler
4086         name.
4087
4088 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4089
4090         * class.c: fix creation of array classes with rank == 1
4091         (patch by Ankit Jain <jankit@novell.com>).
4092
4093 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4094
4095         * object.c: fix check for creating the bound data for arrays vs
4096         szarrays.
4097
4098 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4099
4100         * object.c: configuration file name is now based on the executable name,
4101         not the image name. Fixes bug #75931.
4102
4103 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4104
4105         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4106         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4107
4108 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4109
4110         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4111
4112 2005-08-24  Ankit Jain  <jankit@novell.com>
4113             Raja R Harinath  <rharinath@novell.com>
4114
4115         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4116           called by it recursively.
4117           (mono_class_init): Remove special case in pending_init handling, since it's
4118           superseded by the fix to mono_class_from_typeref.
4119
4120 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4121
4122         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4123         BROKEN_THREAD_START stuff.
4124
4125 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4126
4127         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4128         trampoline.
4129
4130         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4131         
4132         * object.c (mono_delegate_ctor): Replace the original function address with
4133         a delegate trampoline.
4134
4135 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4136
4137         * icall.c: add boolean argument to base64_to_byte_array and 
4138         InternalFromBase64String to control whether a whitespace-only string
4139         is allowed (or should casue a FormatException to be thrown). We need
4140         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4141         to match the MS behaviour in both profiles.
4142         * appdomain.c: Bump corlib version.
4143
4144 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4145
4146         This patch implements a big portion of publisher policy
4147         support, used to bind assembly versions and redirect
4148         one assembly from version A to version B.
4149
4150         * assembly.c:
4151         New GSList loaded_assembly_bindings, for storing the cached
4152         assembly bindings.
4153         (assembly_binding_maps_name): New static function for checking if a 
4154         assembly binding information maps an assembly name.
4155         (mono_assembly_binding_info_free): New function for freeing
4156         assembly binding information resources.
4157         (get_publisher_policy_info): New static function for retrieving 
4158         assembly binding information from a MonoImage.
4159         (compare_versions): New static function for comparing an assembly
4160         binding information data and the version of an assembly name.
4161         (check_policy_versions): New static function for checking if an
4162         assembly binding info mapping an assembly name is valid for it.
4163         (mono_assembly_load_publisher_policy): New static function for
4164         loading the 'policy.major.minor.MyAssembly' image for an assembly
4165         with an assembly name 'aname'.
4166         (mono_assembly_bind_version): New static function for updating
4167         assembly redirection.
4168         (mono_assembly_apply_binding): New static function for applying
4169         assembly binding.
4170         (search_binding_loaded): New static function for searching 
4171         loaded assembly binding infos in the cache domain.
4172         (mono_assembly_load_full): Don't apply assembly binding for
4173         reflection only assemblies.
4174
4175         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4176         which contains information about assembly binding. Also
4177         declare signature for mono_config_parse_publisher_policy ()
4178         function, used to retrieve pub policy info.
4179         
4180         * mono-config.c:
4181         (publisher_policy_start): New static function used to parse publisher 
4182         policy config files.
4183         (publisher_policy_parser): New static MonoParseHandler containing 
4184         the functions used when parsing config files.
4185         (mono_config_parse_publisher_policy): New function for parsing
4186         publisher policy files.
4187         
4188 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4189
4190         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4191
4192         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4193
4194         * object.c (mono_get_addr_from_ftnptr): New helper function.
4195
4196         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4197
4198         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4199
4200 2005-08-19  Dick Porter  <dick@ximian.com>
4201
4202         * threads.c, threads.h, appdomain.c, appdomain.h,
4203         profiler-private.h, monitor.c, object.c, object-internals.h,
4204         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4205         store the thread ID, so it can hold a 64 bit value if needed.
4206
4207 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4208
4209         * reflection.c (mono_reflection_create_dynamic_method): Store the
4210         handle class into the method references as well so ldtoken works in
4211         dynamic methods.
4212
4213         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4214         types.
4215
4216 2005-08-19  Ankit Jain <jankit@novell.com>
4217
4218         Fix #75847.
4219         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4220           here rather than using the method signature of a arbitrary function
4221           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4222           two arguments.
4223           Hack done with Harinath.
4224
4225 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4226
4227         * threadpool.c: disable printing stack traces when we get a exception
4228         in a threadpool thread. I need to do more testing to figure out which
4229         cases actually print this. Fixes bug #75828.
4230
4231 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4232
4233         * icall.c: there might be ignored whitespace after the last '='. This
4234         fixes length computation and bug #75840.
4235
4236 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4237
4238         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4239         well. Fixes #75809.
4240
4241         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4242         #75784.
4243         
4244         * reflection.c (create_custom_attr_data): Ditto.
4245
4246 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4247
4248         * locales.c, culture-info.h : removed RegionLCIDMap.
4249         * culture-info-tables.h : regenerated.
4250
4251 2005-08-16  Martin Baulig  <martin@ximian.com>
4252
4253         * class.c (mono_type_get_name_recurse): Small fix.
4254
4255 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4256
4257         * locales.c : indentation fixie.
4258
4259 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4260
4261         * object-internals.h,
4262           locales.h,
4263           locales.c,
4264           culture-info.h,
4265           icall.c : added RegionInfo table support.
4266         * culture-info-table.h : regenerated for region support.
4267
4268 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4269
4270         * reflection.c (resolve_object): handle all kinds of MonoMethod
4271         including generic ones
4272
4273 2005-08-12  Ankit Jain <jankit@novell.com>
4274
4275         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4276           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4277
4278 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4279
4280         * process.c: Don't close a thread handle when it's NULL. This is a
4281         workaround for bug #75733.
4282
4283 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4284
4285         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4286
4287 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4288
4289         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4290
4291 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4292
4293         * threadpool.c: if a work item in the thread pool has a callback that
4294         catches a exception, don't propagate it after invoking the callback.
4295         Fixes bug #75336.
4296
4297 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4298
4299         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4300
4301         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4302
4303         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4304
4305         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4306
4307 2005-08-03  Ankit Jain  <jankit@novell.com>
4308
4309         Fix #75683.
4310         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4311           PInvoke calling convention is 0.
4312
4313 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4314
4315         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4316         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4317
4318 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4319
4320         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4321         to handle threads not started by the GC (patch by Michael Meeks
4322         <michael.meeks@novell.com>).
4323
4324 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4325
4326         * reflection.c: Make buffer used in emitting types larger for some
4327         big generic types (patch by Michal Moskal).
4328
4329 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4330
4331         * mono-debug.c: Fix some (not all) alignment problems.
4332
4333 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4334
4335         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4336         Invoke mono_image_load_from_data_full passing the refonly
4337         parameter.
4338
4339         * assembly.c
4340         (mono_assembly_open_from_bundle): Add the refonly argument, 
4341         in order to pass it to other methods it calls to.
4342         (do_mono_assembly_open): Add the refonly argument, in order 
4343         to pass it to other methods it calls to.
4344         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4345         the refonly parameter to it.
4346
4347         * image.c: Add loaded_images_refonly_hash and
4348         loaded_images_refonly_guid_hash to cache the reflection
4349         only loaded images.
4350         (mono_images_init): Initialize the hash tables used for
4351         caching the reflection only images.
4352         (load_modules): Invoke mono_image_open_full passing the refonly
4353         parameter to load the modules the correct way.
4354         (build_guid_table): Add the refonly argument, to re-build the 
4355         correct hash table.
4356         (do_mono_image_open): Added the refonly argument, in order to
4357         define it for the loaded image.
4358         (mono_image_loaded_full): New function, which receives an
4359         additional parameter to look for the image in the refonly or
4360         non-refonly section.
4361         (mono_image_loaded): Updated, using mono_image_loaded_full.
4362         (mono_image_loaded_by_guid_full): The same case that happens
4363         with mono_image_loaded_full.
4364         (mono_image_loaded_by_guid): Likewise.
4365         (register_image): Use the ref_only variable inside MonoImage
4366         to decide in which hash table store the current image.
4367         (mono_image_open_from_data_full): Rename
4368         mono_image_open_from_data to mono_image_open_from_data_full,
4369         adding the refonly argument, to define the ref_only variable 
4370         inside MonoImage.
4371         (mono_image_open_from_data): Return 
4372         mono_image_open_from_data_full.
4373         (mono_image_open_full): Rename mono_image_open to
4374         mono_image_open_full, receiving the new refonly argument,
4375         to pass it to inner methods.
4376         (mono_pe_file_open): Update this function, to open
4377         a MonoImage as a non-refonly image.
4378         (mono_image_close): Use the refonly variable inside
4379         MonoImage to remove the image from the correct caches.
4380
4381         * image.h: Add the signatures of mono_image_open_full,
4382         mono_image_open_from_data_full, mono_image_loaded_full,
4383         mono_image_loaded_by_guid_full.
4384
4385         * metadata-internals.h: Add the ref_only field to 
4386         MonoImage.
4387         
4388 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4389
4390         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4391         Fix the last behavior, which used to load the assemblies and
4392         extract MonoReflectionAssemblyName information, instead of
4393         extract it from the metadata tables. Needed for Reflection
4394         Only assemblies.
4395         
4396 2005-07-29  Martin Baulig  <martin@ximian.com>
4397
4398         * mono-debug-debugger.c
4399         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4400         not initialized.
4401
4402         * mono-debug.c
4403         (mono_debug_address_from_il_offset): Check whether we have
4404         debugging support before attempting to take the lock.
4405         (mono_debug_source_location_from_address): Likewise.
4406         (mono_debug_source_location_from_il_offset): Likewise.
4407         (mono_debug_il_offset_from_address): Likewise.
4408         (mono_debug_address_from_il_offset): Likewise.
4409
4410 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4411
4412         * class.c (mono_class_from_name_case): Add support for dynamic images.
4413         Fixes #75650.
4414
4415         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4416         for #75479.
4417
4418 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4419         
4420         * reflection.c (mono_method_get_object): Fix warning.
4421
4422 2005-07-28  Martin Baulig  <martin@ximian.com>
4423
4424         * mono-debug.c
4425         (mono_debug_add_wrapper): Also write the wrapper type.
4426
4427 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4428
4429         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4430         
4431         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4432         data indicates the class has none.
4433
4434 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4435
4436         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4437         loader lock with the debugger lock. Prevents deadlocks for beagle.
4438
4439         Beagle can now run on an smp box for a weekend without any
4440         issues. Woohoo!
4441
4442 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4443
4444         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4445         in a module. Fixes #75629.
4446
4447 2005-07-26  Martin Baulig  <martin@ximian.com>
4448
4449         * mono-debug.c (mono_debug_add_wrapper): New static method.
4450         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4451         interncall or a wrapper.
4452
4453         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4454         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4455         (MONO_DEBUGGER_VERSION): Bump to 51.
4456
4457         * mono-debug-debugger.c
4458         (mono_debugger_add_type): Removed this empty function.
4459         (mono_debugger_add_method): Likewise.
4460
4461 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4462
4463         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4464         before accessing method->slot.
4465
4466 2005-07-21  Jb Evain  <jbevain@gmail.com>
4467
4468         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4469         Fixes #75010.
4470
4471 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4472
4473         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
4474         #75587.
4475
4476 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
4477
4478         * image.h image.c: Add mono_image_get_guid () API function.
4479
4480 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
4481
4482         There were issues when multiple threads tried to load
4483         assemblies. A deadlock was created between assemblies_mutex and
4484         mono_domain_assemblies_lock. This fixes the issue by making the
4485         assembly ref counting be lock free. See bug 75586.
4486         
4487         * image.c (mono_image_close): The add ref function here was using
4488         Interlocked operations while the unref was using a mutex and a
4489         --. I don't think this was ever a bug that would be exposed in a
4490         non-pendantic way (ie, by an embedder doing a ref on one thread
4491         and an unref on another), but for the sake of correctness, this is
4492         now Interlocked.
4493
4494         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
4495         (mono_assembly_load_reference): Call mono_assembly_addref rather
4496         than touching the refcount ourselves.
4497         (mono_assembly_close): Use InterlockedDecrement to unref the
4498         assembly. Don't acquire the lock unless it is actually needed.
4499
4500 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4501
4502         * class.c (mono_class_layout_fields): Fix calculation of has_references
4503         for generic types.
4504
4505 2005-07-12  Martin Baulig  <martin@ximian.com>
4506
4507         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4508
4509         * metadata.c
4510         (mono_type_hash): Provide better hashing for generic instances.
4511         (mono_generic_inst_hash): Improve hashing.
4512         (mono_generic_class_hash): Likewise.
4513
4514         * reflection.c (mymono_metadata_type_hash): Improve hashing for
4515         generic instances.
4516
4517 2005-07-12  Martin Baulig  <martin@ximian.com>
4518
4519         * reflection.c (mono_reflection_create_runtime_class): Remove the
4520         hack for generic type definitions and non-`Run' assemblies.
4521         (mono_reflection_bind_generic_parameters): Also use
4522         `klass->wastypebuilder' to check for TypeBuilders.
4523
4524 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4525
4526         * class.c (mono_class_layout_fields): Fix calculation of has_references
4527         for generic types.
4528
4529         * class.c (inflate_generic_class): Fix a leak.
4530         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
4531         for generic types.
4532
4533 2005-07-11  Martin Baulig  <martin@ximian.com>
4534
4535         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
4536         on error.
4537
4538 2005-07-11  Martin Baulig  <martin@ximian.com>
4539
4540         * loader.c (find_method): Also lookup in
4541         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
4542
4543 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4544
4545         * appdomain.c (mono_domain_unload): Don't free the error message
4546         before passing it to mono_get_exception_...
4547
4548         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
4549         
4550 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
4551
4552         * threads.c: try to better guess an available RT signal (bug #75387).
4553
4554 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4555
4556         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
4557         and CACHE_OBJECT.
4558
4559 2005-07-07  Martin Baulig  <martin@ximian.com>
4560
4561         * class.c (mono_type_get_name_full): Return NULL for
4562         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
4563         fixes #75408.
4564
4565 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4566
4567         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
4568         exit the appdomain as well being aborted.
4569
4570         * threadpool.c: Create all threadpool threads inside the root appdomain, and
4571         change back to the root domain after calling managed code. This enables
4572         appdomains using threadpools to be unloaded.
4573
4574 2005-07-07  Martin Baulig  <martin@ximian.com>
4575
4576         * class-internals.h
4577         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
4578         into `MonoDynamicGenericClass' since we only need it for dynamic
4579         types.
4580
4581         * reflection.c (mono_class_bind_generic_parameters): We don't need
4582         to compute the `parent' here.
4583
4584 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
4585
4586         * culture-info-table.h : regenerated.
4587
4588 2005-07-06  Martin Baulig  <martin@ximian.com>
4589
4590         * icall.c
4591         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
4592
4593         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
4594
4595 2005-07-06  Martin Baulig  <martin@ximian.com>
4596
4597         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
4598         we're doing a signature-only comparision; fixes #74945.
4599
4600 2005-07-06  Martin Baulig  <martin@ximian.com>
4601
4602         * class-internals.h (MonoGenericClass): Moved some things out into
4603         a new `MonoInflatedGenericClass' type.  
4604         (MonoInflatedGenericClass): New type; the `klass' of a
4605         `MonoGenericClass' is now computed lazyly in
4606         mono_get_inflated_generic_class().      
4607
4608         * class.c (mono_get_inflated_generic_class): New public function.
4609         (mono_class_inflate_generic_method): Removed the unused
4610         `MonoClass *' argument.
4611         (setup_generic_vtable): Don't call mono_get_inflated_method() on
4612         all the methods.
4613         (mono_class_create_generic): Make this static and merge it with
4614         mono_class_create_generic_2(); we're now called automatically from
4615         mono_get_inflated_generic_class().
4616
4617         * loader.c (mono_method_signature): Call
4618         mono_get_inflated_method() here.
4619
4620 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
4621
4622         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
4623         type of fields with RVA.
4624
4625         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
4626         for this pseudo class.
4627         (my_mono_class_from_generic_parameter): Likewise.
4628         (mono_class_init): Allow interfaces to have cctors.
4629
4630 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
4631
4632         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
4633         lazily for AOT methods.
4634
4635 2005-07-05  Martin Baulig  <martin@ximian.com>
4636
4637         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
4638         returns FALSE for a successful match, not TRUE.
4639
4640 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
4641
4642         * loader.c (mono_method_get_index): Optimize this a bit.
4643
4644 2005-07-04  Martin Baulig  <martin@ximian.com>
4645
4646         * class.c
4647         (class_compute_field_layout): Move the check for generic type
4648         definitions into mono_class_layout_fields().  Fixes #74684.
4649         (mono_class_from_generic_parameter): Correctly compute
4650         `klass->parent'; fixes #75457.
4651
4652         * reflection.c (register_assembly, register_module): Make sure
4653         `domain->rejobject_hash' is already created.
4654
4655 2005-07-02  Martin Baulig  <martin@ximian.com>
4656
4657         * class-internals.h
4658         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
4659         `MonoDynamicGenericClass'.      
4660
4661 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
4662
4663         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
4664         returned by a field getter is null, since null is a valid value.
4665
4666 2005-07-01  Martin Baulig  <martin@ximian.com>
4667
4668         * reflection.c (mono_reflection_generic_class_initialize): Update
4669         the `dgclass->fields [i].parent' to the correct class.
4670         (mono_image_get_fieldref_token): Use the declaring type, not the
4671         reflected type.
4672
4673 2005-07-01  Martin Baulig  <martin@ximian.com>
4674
4675         * loader.c (find_method): Also look in the interfaces; fixes #75429.
4676
4677 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
4678
4679         * threads.c (thread_cleanup): assert that thread != NULL
4680         (wait_for_tids_or_state_change): We were using the wrong variable
4681         when accessing wait->threads. `i' was always out of the bounds of
4682         the array.
4683
4684 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4685
4686         * loader.c: map user32 and kernel32 to libMonoSupportW
4687
4688 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
4689
4690         * appdomain.c (unload_thread_main): Mark this as WINAPI.
4691
4692 2005-06-28  Martin Baulig  <martin@ximian.com>
4693
4694         * loader.c (method_from_methodspec): Fix #75334.
4695
4696 2005-06-28  Martin Baulig  <martin@ximian.com>
4697
4698         Fix #74953 - Arrays now implement the generic IList<T> interface
4699         on the 2.0 platform.
4700
4701         * class-internals.h (MonoDefaults): Added `generic_array_class'.
4702
4703         * reflection.c (mono_class_bind_generic_parameters): New public
4704         function; similar to mono_reflection_bind_generic_parameters(),
4705         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
4706
4707         * domain.c (mono_init_internal): Try to initialize.
4708         `mono_defaults.generic_array_class' here; this'll only succeed if
4709         we're using the 2.0 corlib.
4710
4711         * icall.c
4712         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
4713         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
4714         (mono_lookup_internal_call): Added support for nested classes.
4715
4716         * loader.c
4717         (mono_get_method_from_token): Set `result->signature->pinvoke' if
4718         we're an interncall and have generic arguments.
4719
4720         * class.c
4721         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
4722         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
4723         instance of System.Array.InternalArray<T> for arrays, so they
4724         implement the generic IList<T> interface.
4725
4726 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
4727
4728         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
4729         (chastamar@yahoo.com). Fixes #75374.    
4730
4731 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
4732
4733         * culture-info-table.h: regenerated.
4734
4735 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4736
4737         * icall.c: handle spaces correctly for base64 strings.
4738
4739 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
4740
4741         * *.c: Kill some warnings.
4742
4743 2005-06-23  Duncan Mak  <duncan@novell.com>
4744
4745         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
4746         that this builds on Solaris 10 (x86).
4747
4748 2005-06-23  Martin Baulig  <martin@ximian.com>
4749
4750         * class.c
4751         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
4752         generic type definitions.
4753
4754 2005-06-23  Martin Baulig  <martin@ximian.com>
4755
4756         Fix #75331.
4757
4758         * metadata.c (mono_class_get_overrides): Renamed to
4759         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
4760         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
4761         pass it to mono_get_method_full().
4762
4763 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
4764
4765         * reflection.c (mono_reflection_create_runtime_class): take the
4766         mono_domain_lock in this method. Prevents deadlocks
4767
4768 2005-06-22  Martin Baulig  <martin@ximian.com>
4769
4770         * loader.c (method_from_methodspec): Fix #75330.
4771
4772 2005-06-22  Martin Baulig  <martin@ximian.com>
4773
4774         * reflection.c (type_get_qualified_name): Use
4775         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
4776         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
4777         argument; use it if we don't have an assembly name.
4778
4779 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
4780
4781         * object.c: In mono_message_init, set "copy out" flag for in
4782         parameters with the [Out] flag.
4783
4784 2005-06-21  Martin Baulig  <martin@ximian.com>
4785
4786         * class.c
4787         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
4788         and MONO_TYPE_PTR.
4789
4790 2005-06-21  Martin Baulig  <martin@ximian.com>
4791
4792         * class.c (mono_class_init): Don't initialize `class->fields' for
4793         generic instances since they're initialized again in
4794         compute_field_layout(). 
4795         (compute_field_layout): Set the field's `generic_info' here; fix
4796         #75320. 
4797
4798 2005-06-21  Martin Baulig  <martin@ximian.com>
4799
4800         * class-internals.h
4801         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
4802
4803         * metadata.c (mono_metadata_generic_method_equal): Also
4804         distinguish the `generic_class'; fixes #75334.
4805
4806 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4807
4808         * domain.c:
4809         * appdomain.c:
4810         * domain-internals.h:
4811         * reflection.c: 'domain_assemblies' field is now protected by its own
4812         lock. Don't call into managed code to run the AssemblyLoad event if we
4813         now there are no registered delegates for it.
4814
4815 2005-06-20  Martin Baulig  <martin@ximian.com>
4816
4817         * class.c (mono_class_is_assignable_from): Use a custom version of
4818         mono_class_has_parent() to make things work for generic instances;
4819         fix #75300.
4820
4821 2005-06-20  Martin Baulig  <martin@ximian.com>
4822
4823         * loader.c (method_from_methodspec): Apply a patch from
4824         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
4825
4826 2005-06-20  Martin Baulig  <martin@ximian.com>
4827
4828         * class.c (mono_class_init): Reverted Zoltan's last change; it
4829         breaks generics.
4830
4831 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
4832
4833         * threads.c (wait_for_tids_or_state_change): Add missing locking.
4834
4835 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4836
4837         * socket-io.c: fix the index in the socket array for writable/error
4838         sockets. Fixes bug #75306.
4839
4840 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
4841
4842         * class.c (mono_class_init): Allow interfaces to have static ctors.
4843
4844 2005-06-17  Martin Baulig  <martin@ximian.com>
4845
4846         * loader.c (method_from_methodspec): Use `context->container' when
4847         parsing the `gmethod->inst'.
4848
4849 2005-06-17  Martin Baulig  <martin@ximian.com>
4850
4851         * class.c (mono_type_get_name_recurse): Don't add the assembly
4852         name for type arguments.
4853
4854 2005-06-15  Martin Baulig  <martin@ximian.com>
4855
4856         * reflection.c (mono_image_get_inflated_method_token): Encode
4857         correct klass; fixes #75260.
4858
4859 2005-06-13 Michal Moskal <malekith@nemerle.org>
4860
4861         * icall.c: Make GetCorrespondingMethod/Constructor take
4862         MonoReflectionMethod method not MonoMethod. Removed
4863         MonoType.GetCorrespondingField, and make
4864         MonoGenericType.GetCorrespondingField take name not
4865         MonoClassField.
4866
4867 2005-06-13  Michal Moskal <malekith@nemerle.org>
4868
4869         * reflection.c (field_encode_signature, encode_locals):
4870          Make sizes of buffers for types larger (for big generic types).
4871          (create_generic_typespec,
4872          mono_reflection_sighelper_get_signature_local,
4873          mono_reflection_sighelper_get_signature_field):
4874          Add asserts for too small buffers.
4875
4876 2005-06-15  Martin Baulig  <martin@ximian.com>
4877
4878         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
4879         if our parent is not a dynamic type.
4880
4881 2005-06-15  Martin Baulig  <martin@ximian.com>
4882
4883         * class-internals.h (MonoTypeNameFormat): New enum.
4884
4885         * class.c
4886         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
4887         (mono_type_get_full_name): Removed.
4888         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
4889         argument instead of the boolean's.
4890
4891         * icall.c (ves_icall_System_MonoType_getFullName):
4892         Added `gboolean assembly_qualified'.    
4893
4894         * reflection.h
4895         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
4896
4897         * reflection.c (mono_reflection_parse_type): Parse the new type
4898         name format.
4899
4900 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4901
4902         * icall.c: no need to convert from utf16 to utf8 and then back again
4903         after the call to GetLogicalDrives.
4904
4905 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4906
4907         * icall.c: frombase64. Fix problems exposed by new tests.
4908
4909 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4910
4911         * icall.c: added internal calls for converting char [] and strings in
4912         base64 into byte [].
4913
4914 2005-06-10  Martin Baulig  <martin@ximian.com>
4915
4916         * class.c (mono_class_create_generic_2): Read the nested classes
4917         from the metadata rather than from `gklass->nested_classes' since
4918         `gklass' might not be initialized yet.
4919
4920 2005-06-09  Duncan Mak  <duncan@novell.com>
4921
4922         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
4923         all public headers. Fixes #74919.
4924
4925 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
4926
4927         * domain.c: The key for proxy_vtable_hash is now a pointer
4928         array. Added new GHashFunc and GCompareFunc functions for this.
4929
4930         * class.h: The list of interfaces in MonoRemoteClass is known in
4931         advance and can't grow (we create a new MonoRemoteClass if needed),
4932         so now the interface array can be allocated together with
4933         MonoRemoteClass.
4934         
4935         * object.c: Added a new method create_remote_class_key.
4936         Fixed mono_remote_class so it does not depend on
4937         mono_upgrade_remote_class.
4938         Removed extend_interface_array.
4939         Added new method clone_remote_class(), which makes a copy of a remote
4940         class and adds a new interface or class to it.
4941         mono_upgrade_remote_class() now creates a new remote class (or gets
4942         it from the cache) if an vtable upgrade is needed. In this way
4943         we make sure that other objects sharing the same remote class
4944         don't get the new vtable with unwanted interfaces.
4945         
4946         * object-internals.h:
4947         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
4948         
4949         * marshal.c: Track changes in mono_upgrade_remote_class().
4950
4951 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
4952         * icall.c: Add runtime methods for obtaining members of inflated
4953         class, which were created from supplied non-inflated members. It
4954         is used in internal Get{Method,Constructor,Field} methods in
4955         System.Type
4956
4957 2005-06-09  Martin Baulig  <martin@ximian.com>
4958
4959         * reflection.c
4960         (mono_reflection_bind_generic_method_parameters): Fix #75169.
4961
4962 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4963         * reflection.c (mono_image_basic_init): Define
4964         Version in MonoDynamicAssembly. 
4965         
4966 2005-06-08  Martin Baulig  <martin@ximian.com>
4967
4968         Fix #75136.
4969
4970         * loader.c
4971         (mono_method_signature_full): New public method; takes a
4972         `MonoGenericContext *'.
4973         (find_method): Use mono_method_signature_full() and pass the
4974         klass'es context to it.
4975
4976         * class.c (mono_class_is_inflated_method): Use
4977         mono_method_signature_full() and pass the context to it.
4978
4979 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
4980
4981         * object.c: add proper locking in mono_remote_class_vtable(),
4982         fixes possible memory corruption.
4983
4984 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
4985
4986         * marshal.c (mono_remoting_marshal_init): set
4987         initialized after initialization.
4988
4989 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4990
4991         * locales.c : hush.
4992
4993 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
4994
4995         * object.c (extend_interface_array): fix really silly
4996         memory corrupting / comparison bug.
4997
4998 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4999
5000         * reflection.c: Functions added to support the creation
5001         of CustomAttributeData, which includes Attribute data
5002         used by ReflectionOnly methods.
5003
5004         * reflection.h:  mono_reflection_get_custom_attrs_data and
5005          mono_custom_attrs_data_construct added (functions exposed).
5006
5007          * icall.c: Added mono_reflection_get_custom_attrs_data
5008          as icall.
5009         
5010 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5011
5012         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5013         lupus's request.
5014
5015 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5016
5017         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5018
5019         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5020         dynamic DllImportAttribute.
5021
5022         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5023         dynamic DllImportAttribute.
5024
5025         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5026         Fixes #75162.
5027
5028 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5029
5030         * threads.c: avoid segfault when an unstarted thread is aborted.
5031
5032 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5033
5034         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5035         Returns the name and version of the runtime for reporting.
5036
5037 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5038
5039         * appdomain.c: bump corlib version.
5040         * object-internals.h: new field in MonoReflectionAssembly.
5041
5042 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5043
5044         * object-internals.h: Carlos forgot to add this field.
5045
5046 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5047
5048         * icall.c: Added create_version to create instances
5049         of Version of MonoReflectionAssemblyName. This change helps
5050         the AssemblyName tests to keep running fine.
5051         
5052 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5053   
5054         * object.c (mono_method_return_message_restore): A somehow less
5055         intrusive fix for #75138.
5056
5057 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5058
5059         * object.c (mono_method_return_message_restore): Fix computation
5060         of expected number of out args.
5061
5062 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5063
5064         * reflection.c (mono_image_get_method_info): Fix the case when the
5065         charset is empty.
5066
5067 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5068
5069         * object.c: Added missing null check in
5070           mono_method_return_message_restore.
5071
5072 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5073
5074         * reflection.c (mono_image_get_method_info): Handle the case when
5075         dllentry is empty.
5076
5077 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5078
5079         * object.c: When creating the vtable for a proxy, take into account
5080         all inherited interfaces, not only the ones registered in
5081         iclass->interfaces. This fixs bug #74996.
5082         Also, in mono_method_return_message_restore, verify that the array
5083         of out args has the expected lengh.
5084
5085 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5086
5087         * socket-io.c: update the timeout in Poll when the call is interrupte.
5088
5089 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5090
5091         * socket-io.c: support abort/suspend in Select_internal after last
5092         change.
5093
5094 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5095
5096         * threadpool.c: remove warning.
5097
5098 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5099
5100         * icall.c:
5101         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5102         removing the 1024 limit from select(). Runtime part of the fix for
5103         bug #71203.
5104
5105 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5106
5107         * socket-io.c: when resolving the addresses for the same
5108         host returned by gethostname(), get the local IPs from the interface
5109         list. Loopback addresses are discarded if the are interfaces up with
5110         non-loopback ones. Fixes bug #63265.
5111
5112 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5113
5114         * appdomain.c, verify.c, object-internals.h, reflection.c:
5115         bumped corlib number to 36, and added new extra_flags field
5116         to ReflectionMethodBuilder and friends.  Fixes #75060.
5117
5118 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5119
5120         * gc.c: register a new weak link only if the object is non-null
5121         (fixes bug#75047).
5122
5123 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5124
5125         * culture-info.h : short time pattern too.
5126
5127 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5128
5129         * culture-info.h : expand long time pattern string length.
5130
5131 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5132
5133         * culture-info-table.h : update (more French date format; #72788).
5134
5135 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5136
5137         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5138         the method is static. Fixes #75029.
5139
5140 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5141
5142         * reflection.c: Update the table_idx field of method builders after
5143         saving the module, since it can change. This is a workaround for
5144         bug #74914. 
5145
5146 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5147
5148         * culture-info-table.h : update (additional French date format).
5149
5150 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5151
5152         * icall.c (ves_icall_type_Equals): Revert last change.
5153         
5154         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5155
5156         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5157
5158 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5159
5160         * class-internals.h: Added executioncontext_class field to 
5161         MonoDefaults structure.
5162         * domain.c: Cache System.Threading.ExecutionContext class in 
5163         mono_defaults.
5164         * object.c: Capture the ExecutionContext for asynchroneous calls in
5165          mono_async_result_new.
5166         * object-internals.h: Added execution_context and original_context 
5167         fields to MonoAsyncResult. Added execution_context to MonoThread.
5168         * security-manager.c|.h: Added mono_get_context_capture_method to 
5169         return the capture method (if required by the security manager or by
5170         the framework version used).
5171         * threadpool.c: Apply capture (if present) ExecutionContext in 
5172         mono_async_invoke and revert to original context after it completes.
5173
5174 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5175
5176         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5177
5178 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5179
5180         * culture-info-table.h : zh-CHT related workaround.
5181
5182 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5183
5184         * marshal.c (emit_marshal_custom): Add some error checking and call the
5185         methods in the ICustomMarshaler interface. Fixes #74875.
5186         
5187         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5188         native->managed wrappers.
5189
5190 2005-05-12  Martin Baulig  <martin@ximian.com>
5191
5192         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5193         here and use the loader lock.
5194
5195         * mono-debug.c: Properly lock when the debugger is not attached.
5196         (mono_debug_init): Release the initial lock if we're not running
5197         in the debugger.
5198
5199 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5200
5201         * marshal.c (emit_marshal_custom): Pass through NULL values without
5202         calling the custom marshalling routines.
5203
5204         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5205         conversion in structures. Fixes #74882.
5206
5207 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5208
5209         * culture-info-table.h : zh-* cultures were missing.
5210
5211 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5212
5213         * threads.c: Added a new event background_change_event which is signaled
5214         when a thread changes its background mode.
5215         Moved here several checks previously done in managed code. The checks
5216         require the thread lock, and using the thread lock in managed code
5217         can result in deadlocks.
5218         Merged Start_internal and Thread_internal into a single method. Now 
5219         Thread_internal does all work of creating and starting a thread.
5220         Added icalls for setting and getting the state of the object. Moved from
5221         managed code to avoid locking there.
5222         Added wait_for_tids_or_state_change() which is called instad of
5223         wait_for_tids when waiting for non-backround threads to end. This method
5224         will return if one of the threads ends or the background_change_event
5225         is signaled.
5226         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5227         the background mode. This method signals the background_change_event
5228         event.
5229         * icall.c:
5230         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5231         removed Start_internal.
5232         
5233 2005-05-11  Martin Baulig  <martin@ximian.com>
5234
5235         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5236         to order of some fields to get proper alignment on 64-bit machines.
5237
5238 2005-05-11  Martin Baulig  <martin@ximian.com>
5239
5240         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5241         changes as they're broken and completely fuck up the debugger.
5242
5243         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5244
5245 2005-05-10  Martin Baulig  <martin@ximian.com>
5246
5247         * reflection.c (mono_reflection_generic_class_initialize): Don't
5248         call mono_class_setup_parent() here.
5249
5250 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5251
5252         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5253         send/receive timeout use an integer in milliseconds. We were using a
5254         struct timeval.
5255
5256 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5257
5258         * locales.c:
5259         (internal_get_cultures): reserve the first slot of the array for the
5260         InvariantCulture, which will be filled in managed code.
5261
5262 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5263
5264         * reflection.c (mono_image_fill_module_table): Initialize the
5265         GENERATION field as well.
5266
5267 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5268
5269         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5270         Monitor.Enter on the object.
5271
5272 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5273
5274         * threads.c: Enable the wait for running threads when exiting.
5275         * icall.c: Suspend all threads before exiting.
5276
5277 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5278
5279         * assembly.c (mono_assembly_load_reference): Fix warning.
5280
5281 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5282
5283         * threadpool.c: changed the default number of threads per cpu. From now
5284         on, the default will be 20 + (5 * number of cpus) instead of 50.
5285
5286 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5287
5288         * loader.c (mono_method_get_signature_full): Add locking here.
5289
5290 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5291
5292         * appdomain.c: Moved methods for parsing and freeing assembly
5293         names to assembly.c.
5294         * assembly.c, domain-internals.h: Created public methods for parsing
5295         assembly names. Fixed mono_assembly_load_with_partial_name:
5296         it now finds the best match, taking into account the version,
5297         token and culture specified in the partial name. Also return
5298         the latest version if no version information is specified.
5299
5300 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5301
5302         * threadpool.c: replace check for SocketAsyncCall class.
5303
5304 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5305
5306         * threadpool-internals.h:
5307         * Makefile.am: added threadpool-internals.h
5308
5309         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5310         that happen in threadpool threads (tested on MS).
5311         (mono_thread_pool_remove_socket): new function that dispatch any pending
5312         AIO call on a socket that is closing. By now only epoll really needs it,
5313         as select/poll wake up when the socket closes.
5314
5315
5316         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5317
5318 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5319
5320         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5321
5322 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5323
5324         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5325
5326 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5327
5328         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5329         has an abort request, convert it into a suspend request.
5330
5331 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5332
5333         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5334         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5335         is not supported yet.
5336
5337 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5338
5339         * image.c: register assemblies loaded from data (bundles) in the loaded
5340         assemblies hash. Fixes bug #74772.
5341
5342 2005-04-29  Martin Baulig  <martin@ximian.com>
5343
5344         * class.c (mono_type_get_name_recurse): Update to the new naming
5345         schema from the latest .NET 2.x beta2.
5346         (mono_class_setup_vtable_general): If we're a generic instance,
5347         copy the vtable from our generic type definition and inflate all
5348         the methods in it.
5349
5350         * loader.c (find_method): Update to the new naming schema from the
5351         latest .NET 2.x beta2.
5352
5353 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5354
5355         * class.c (mono_class_init): Add a mono_loader_unlock to the
5356         #74734 fix.
5357
5358 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5359
5360         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5361         suspend_all_other_threads () call for the time being, since it can hang.
5362
5363         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5364         the background threads to exit, since it can also hang.
5365
5366         * class.c (mono_class_init): Applied patch from Ankit Jain 
5367         (radical@gmail.com). Avoid pending init errors when a field refers
5368         to a nested class using a typeref. Fixes #74734.
5369
5370         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5371         this for dynamic modules.
5372
5373 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5374
5375         * threads.c: don't wait for threads that are in the process of aborting
5376         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5377         and waiting for background threads to finish. This makes xsp and
5378         mod-mono-server exit without random length delays and/or hangs.
5379
5380 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5381
5382         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5383
5384 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5385
5386         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5387         dynamic types to prevent infinite loops. Fixes #74727.
5388
5389         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5390         ..._is_assignable_to.
5391
5392 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5393
5394         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5395
5396 2005-04-25  Martin Baulig  <martin@ximian.com>
5397
5398         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5399
5400         * domain.c
5401         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5402
5403         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5404
5405         * reflection.c (build_compressed_metadata): Set metadata header
5406         version to 2.0.
5407
5408 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5409
5410         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5411         number into an integral and a decimal part. Fixes #70473.
5412
5413         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5414
5415 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5416
5417         * culture-info-table.h : reflected the latest locale-builder output.
5418
5419 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5420
5421         * threadpool.c: check for SuspendRequested too when deciding if
5422         mono_thread_interruption_checkpoint should be called.
5423
5424 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5425
5426         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5427         * threads.c: remove interruption_mutex and use Interlocked instead. When
5428         suspending all the threads, wait for all the suspended events at once.
5429         If we're shutting down and get an APC that is going to be queued,
5430         call mono_thread_execute_interruption immediately, as the thread might
5431         be sleeping on a pthread condition or mutex.
5432
5433         * icall.c: call mono_runtime_set_shutting_down before suspending the
5434         threads.
5435
5436         Fixes bug #74693. And now xsp is happier when exiting.
5437
5438 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5439
5440         * loader.c (mono_stack_walk): Fix #74690.
5441
5442 2005-04-22  Martin Baulig  <martin@ximian.com>
5443
5444         * mono-debug.h (MonoDebugMethodJitInfo): Added
5445         `MonoDebugMethodJitInfo *jit'.
5446
5447         * mono-debug.c (mono_debug_read_method): Cache the
5448         MonoDebugMethodJitInfo in `address->jit'.
5449         (mono_debug_free_method_jit_info): New public method.
5450
5451 2005-04-22  Martin Baulig  <martin@ximian.com>
5452
5453         * class.c (mono_class_is_assignable_from): Disallow
5454         type parameter -> interface.
5455
5456 2005-04-21  Dick Porter  <dick@ximian.com>
5457
5458         * threads.c (mono_thread_create): Turn an assertion into an error.
5459
5460 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5461
5462         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5463         
5464         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5465         Fix some gcc 4.0 warnings.
5466
5467 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5468
5469         * file-io.c: fix alt dir separator char on unix systems
5470         and cleanup (fixes bug #71214).
5471
5472 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
5473
5474         * marshal.c: Use CALLVIRT instead of CALL when dispatching
5475         a call to a remote domain, since the method may be an
5476         interface method in the client domain. This fixes bug #74192.
5477
5478 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5479
5480         * threadpool.c: recv/send are now performed before going back to managed
5481         code to save one transition.
5482
5483 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5484
5485         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
5486
5487         * metadata/threadpool.c: removed hack to workaround the bug above.
5488
5489         Fixes bug #74618.
5490
5491 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
5492
5493         * reflection.c reflection.h: Fix handling of parameter defaults in
5494         dynamic methods. Also fixes handling of parameter attributes.
5495         Fixes #74609.
5496
5497         * mono-debug.c (mono_debug_close_image): Fix warning.
5498
5499 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5500
5501         * socket-io.h: replaced old unused field with new 'blocking'.
5502         * threadpool.c: restore socket blocking state on windows(tm).
5503
5504 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
5505
5506         * icall.c: don't return the codebase in the AssemblyName[] returned by
5507         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
5508         * object-internals.h: Removed FIXME (fields were presents) and fixed
5509         versioncompat declaration.
5510
5511 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5512
5513         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
5514         not closed, so don't cleanup when it happens.
5515
5516 2005-04-13  Chris Toshok  <toshok@ximian.com>
5517
5518         * mono-debug-debugger.h: change prototype for
5519         mono_debugger_lookup_type.
5520
5521         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
5522         this function, although it should probably be named
5523         mono_debugger_init_type.
5524
5525 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5526
5527         * threadpool.c: fix non-AIO case.
5528
5529 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
5530
5531         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
5532         the built-in profiler to measure just JIT compilation times.
5533
5534 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5535
5536         * threadpool.c: the epollfd might be closed by another thread at
5537         any time, so ignore EBADF at treat it as a "we're closing" sign.
5538
5539 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5540
5541         * threadpool.c: release the semaphores with a count equals to the number
5542         of working threads in both IO and regular pools. Fixed typo that messed
5543         up the count of IO pool threads. Don't initialize the pipe handles if
5544         we're using epoll.
5545
5546 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5547
5548         * threadpool.c: some systems don't like a NULL when deleting the socket
5549         from epoll.
5550
5551 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5552
5553         * threadpool.c: fix semaphore allocation.
5554
5555 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5556
5557         * threadpool.c: added epoll() based implementation for asynchronous IO
5558         that is used instead of the default poll() when available.
5559         It can be disabled by setting MONO_DISABLE_AIO.
5560
5561 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5562
5563         * threadpool.c: windows needs 'closesocket' and instead of returning
5564         0 when the stream is closed while in select, it returns -1. Fixes bug
5565         #74573.
5566
5567 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
5568
5569         * class.c (class_compute_field_layout): Fix the regression caused by
5570         the previous try.
5571
5572 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5573
5574         * threadpool.c: separate pool for socket async. IO.
5575         * threadpool.h: mono_max_worker_threads is not a global any more.
5576
5577 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
5578
5579         * class.c (class_compute_field_layout): Fix #74549.
5580
5581 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5582
5583         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
5584         use 2 connected sockets instead.
5585
5586 2005-04-08  Miguel de Icaza  <miguel@novell.com>
5587
5588         * mono-config.c: Add new entry point for mkbundle
5589         mono_config_parse_memory. 
5590
5591 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5592
5593         * threadpool.c: removed another unused function.
5594
5595 2005-04-08  Ankit Jain  <radical@corewars.org>
5596
5597         * reflection.c (get_default_param_value_blobs): Add 'types'
5598         parameter to get the types encoded in the constant table.
5599         (mono_param_get_objects): Use the type from the constant table,
5600         not the type of the parameter, when creating default values.
5601         Handle null default values correctly.
5602
5603 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5604
5605         * file-io.c:
5606         * file-io.h:
5607         * threadpool.c:
5608         * threadpool.h:
5609         * icall.c:
5610         * socket-io.c: removed dead code for async IO.
5611
5612 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5613
5614         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
5615
5616         * threadpool.c: intercept socket async. calls and pass them to a thread
5617         that is polling and dispatching the job items to the threadpool as
5618         socket become ready. Fixes bugs #71217, #71933.
5619
5620         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
5621         between char and short/ushort arrays.
5622
5623         * socket-io.c: remove dead code.
5624
5625 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
5626
5627         * locales.c,
5628           icall.c : removed InternalToUpper_Comp() and
5629           InternalToLower_Comp().
5630
5631 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
5632
5633         * char-conversions.h : The tables were incorrectly generated. Should
5634           be generated against invariant culture.
5635
5636 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
5637
5638         * object.c (mono_runtime_invoke_array): Fix return value when 
5639         passing pre-created valuetype objects to ctors.
5640
5641         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
5642         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
5643         Fixes #74338.
5644
5645 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
5646
5647         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
5648         only used with --security and hides the wrong corlib version error.
5649
5650 2005-03-30  Joshua Tauberer  <tauberer@for.net>
5651
5652         * class.c: Changed mono_class_name_from_token so that types
5653         outside of a namespace don't have an initial period.  Improved
5654         the g_warning message used in _mono_class_get when loading
5655         fails.
5656         * assembly.c: In mono_assembly_load_reference, when an assembly
5657         can't be found, "No such file or directory" is misleading and
5658         unhelpful because a few paths were checked for the presence of
5659         the assembly.  When that happens (ENOENT), display a nicer
5660         message indicating the directories that were searched.  In all
5661         cases, the warning is made easier to read for non-hackers.
5662
5663 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
5664
5665         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
5666         project/solution.
5667         * appdomain.h|domain.c: Removed inline from functions.
5668         * appdomain.c: Reduced warnings when compiling on windows.
5669         * icall.c: Fixed output_debug declaration to gunichar2*.
5670         * mono-config.c: Reduced warnings when compiling on windows.
5671         * rand.c: Added missing "windows.h". Added missing return value.
5672         * rawbuffer.c: Added missing winsock2.h for windows.
5673         * sysmath.h: Added mono-compiler.h header to allow/ease 
5674         compilation with non-GCC compilers.
5675         * threads.c: Fixed declarations to compile with VS.NET C compiler.
5676         Removed cast warnings.
5677
5678         Adapted from the work of J Lothian (for VC6).
5679
5680 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
5681
5682         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
5683         from default_path.
5684
5685 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
5686
5687         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
5688         the 2.0 profile.
5689
5690 2005-03-27  Raja R Harinath  <harinath@gmail.com>
5691
5692         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
5693         has to be in $(exec_prefix).  $(prefix) is for arch-independent
5694         stuff, and it would probably use $(prefix)/share rather than
5695         $(prefix)/lib.
5696
5697 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5698
5699         * console-io.c: added 2 includes that might be missing.
5700
5701 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
5702
5703         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
5704         profile.
5705
5706         * reflection.c (create_custom_attr): Allocate the params array using
5707         alloca so it gets GC tracking.
5708
5709 2005-03-23  Chris Toshok  <toshok@ximian.com>
5710
5711         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
5712         out some spew.
5713
5714 2005-03-24  Raja R Harinath  <rharinath@novell.com>
5715
5716         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
5717         changes to pick up any changes in prefix, etc.
5718
5719 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5720
5721         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
5722         
5723         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
5724         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
5725
5726 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5727
5728         * class-internals.h object-internals.h class.c reflection.c: Extend the
5729         mono_lookup_dynamic_token () function to return the class of the
5730         token as well. 
5731
5732         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
5733         well. Fixes #73848.
5734
5735 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
5736
5737         * security-manager.c: Skip inheritance checks for intra-corlib
5738         class inheritance and method overrides. This skips a lot of checks
5739         and (anyway) permissions cannot work until corlib is loaded.
5740
5741 2005-03-23  Martin Baulig  <martin@ximian.com>
5742
5743         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
5744         MONO_TYPE_GENERICINST.  
5745
5746 2005-03-23  Martin Baulig  <martin@ximian.com>
5747
5748         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
5749
5750 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5751
5752         * class.c: added locking comments to some functions.
5753         Cache the interface offsets arrays (saves about 20 KB
5754         of runtime memory in a typical app).
5755         Reduce the time overhead in mono_class_setup_supertypes ().
5756
5757 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
5758
5759         * icall.c: speedup and fix leaks in GetMethodsByName and
5760         GetPropertiesByName.
5761
5762 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5763
5764         * reflection.c: some locking fixes.
5765
5766 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5767
5768         * metadata.c: added missing break in case statement.
5769
5770 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
5771
5772         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5773         typedbyref return values. Fixes #73941.
5774
5775 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
5776
5777         * security-manager.c|h: Added demandunmanaged method and 
5778         suppressunmanagedcodesecurity class to MonoSecurityManager.
5779         Renamed aptc class to allowpartiallytrustedcallers.
5780
5781 2005-03-17  Martin Baulig  <martin@ximian.com>
5782
5783         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
5784
5785 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5786
5787         * file-io.c: disabled file async. IO using aio_*. It uses the
5788         threadpool now. Workaround for bug #73718.
5789
5790 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5791
5792         * assembly.h, mono-config.c: added code to deal with bundled configs
5793         for bundled assemblies.
5794
5795 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
5796
5797         * *.c, private.h: cleanup, removing old private.h header file.
5798
5799 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
5800
5801         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
5802         and throw_on_unmappable_char attributes.
5803
5804 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
5805
5806         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
5807         _ProcessName_internal.
5808
5809 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
5810
5811         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
5812         #73631.
5813
5814         * icall.c threads.c threads-types.h: Remove slothash icalls as they
5815         are no longer used.
5816
5817 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
5818
5819         * object.c (compute_class_bitmap): Add support for generics. Fixes
5820         #73527.
5821
5822 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
5823
5824         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
5825
5826 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5827
5828         * filewatcher.c: commented out the code for windows watcher, as we don't
5829         use it (we use the managed implementation instead).
5830
5831 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
5832
5833         * object-internals.h (MonoThread): Remove 'unused1' field.
5834
5835         * appdomain.c: Bump corlib version.
5836
5837         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
5838
5839         * reflection.c (mono_reflection_create_runtime_class): Remove the
5840         AssemblyBuilder.Save optimization since it causes too many problems.
5841
5842 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
5843
5844         * exception.c|h: Added mono_get_exception_reflection_type_load to
5845         create a ReflectionTypeLoadException object.
5846         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
5847         to return NULL is a InheritanceDemand fails during reflection. Updated
5848         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
5849         ReflectionTypeLoadException if an InheritanceDemand fails during 
5850         reflection. Added icall mapping for GetLinkDemandSecurity.
5851         * security-manager.c|h: Added ves_icall_System_Security_
5852         SecurityManager_GetLinkDemandSecurity internal call to return the
5853         class and methods permissions set for a LinkDemand. Removed unused
5854         fields in MonoSecurityManager.
5855
5856 2005-03-10  Martin Baulig  <martin@ximian.com>
5857
5858         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
5859         it's a generic instance.
5860
5861 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
5862
5863         * reflection.c (mono_get_object_from_blob): Applied patch from
5864         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
5865
5866         * class.c (mono_class_is_assignable_from): Another try at fixing 
5867         #73469 without breaking anything.
5868
5869 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
5870
5871         * class.c: (mono_class_is_assignable_from): Revert the last changes
5872         since they don't work with generics.
5873         
5874         * class.c (mono_class_is_assignable_from): Fix build bustage.
5875
5876         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
5877         the managed IsAssignableFrom method. Fixes #73469.
5878
5879         * reflection.c (mono_reflection_call_is_assignable_from): New helper
5880         function.
5881
5882 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
5883
5884         * object.c (mono_load_remote_field_new): Fix returning uninitialized
5885         memory when the remoting callback does not sets the out arguments.
5886         Fixes #73007.
5887
5888         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
5889         by mistake.
5890
5891         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
5892
5893         * object-internals.h (MonoStackFrame): Sync with managed object layout.
5894
5895         * appdomain.c: Bump corlib version.
5896
5897 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
5898
5899         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
5900         function.
5901
5902         * threads.c (mono_thread_attach): Detect threads which are not started
5903         by the GC pthread wrappers.
5904
5905 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
5906
5907         * icall.c: Added new icall for RNG.
5908         * rand.c|h: Added new icall to open the RNG. This allows to share a 
5909         single handle on Linux to access /dev/urandom and fix #73183.
5910
5911 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
5912
5913         * object.c: setting the new vtable in a transparent proxy object must
5914         not change the GC descriptor.
5915
5916 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5917
5918         * object.c: fixed compilation without GCJ support.
5919         * reflection.c: for runtime-created types ensure klass->has_references
5920         is correct (bug #73215).
5921
5922 2005-03-02  Martin Baulig  <martin@ximian.com>
5923
5924         * class.c (mono_class_is_assignable_from): Make this work if
5925         `oklass' is a generic instance; fixes #72831.
5926
5927 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5928
5929         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
5930         with hasthis set.
5931         
5932         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
5933
5934         * marshal.c: Reorganize native->managed marshalling code to also use
5935         the emit_marshal_... functions.
5936
5937 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5938
5939         * object.c: typed allocs have issues with bitmap sizes > 30,
5940         so check for max_set >= 30.
5941
5942 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5943
5944         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
5945         managed code. Fixes #73012.
5946
5947         * metadata.h (MonoMarshalSpec): Add elem_mult field.
5948
5949         * metadata.c reflection.c: Load/Emit elem_mult as well.
5950         
5951         * metadata.h (MonoMarshalSpec): Add comment.
5952
5953         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
5954
5955         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
5956         num_elem to -1 if not given.
5957
5958         * object-internals.h (MonoReflectionMarshal): Add has_size field.
5959
5960         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
5961         given values.
5962
5963 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
5964
5965         * null-gc.c (mono_gc_free_fixed): Was not compilable.
5966
5967 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
5968
5969         * reflection.c (encode_marshal_blob): Encode param_num field as well.
5970
5971         * object-internals.h (MonoReflectionMarshal): Add param_num field.
5972
5973 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5974
5975         * object.c: generalized the reference bitmap creation
5976         and added hooks for the new GC.
5977         * class-internals.c: removed the gc_bitmap field from MonoClass.
5978
5979 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5980
5981         * domain.c: help the compiler to produce better code
5982         in mono_jit_info_table_find ().
5983
5984 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5985
5986         * object.c: make all allocations look typed.
5987
5988 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5989
5990         * socket-io.c: load Mono.Posix if it's not loaded already
5991         (fixes bug#73033).
5992
5993 2005-02-24  Martin Baulig  <martin@ximian.com>
5994
5995         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
5996         * reflection.c (dup_type): Likewise.
5997
5998 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
5999
6000         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6001         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6002
6003 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6004
6005         * domain.c, threads.c, object-internals.h: make the critical thread
6006         local vars use the fast access mode (even when we're compiled in
6007         a lib). Provide accessors to be used by the jit during codegen.
6008
6009 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6010
6011         * appdomain.c: Changed hook functios behavior to include
6012         support for the reflection only assemblies. Some icalls were changed
6013         to support the mentioned assemblies too. Signatures of static methods
6014         try_assembly_resolve and real_load now have an additional parameter:
6015         refonly.
6016
6017         * assembly.c: General changes to mono_assembly_ methods to support
6018         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6019         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6020         suffix, to support an additional gbool parameter to specify whether
6021         the assembli is reflection only or not. Created some new hook functions 
6022         to add support for reflection only assemblies. Signatures of static 
6023         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6024         have now an additional parameter: refonly.
6025
6026         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6027         indicating whether the assembly is reflection only or not.
6028
6029         * exception.c: Add mono_get_exception_invalid_operation.
6030
6031         * icall.c: Throw an InvalidOperationException when trying to invoke
6032         a property/method/event, or trying to set/get the value of a field.
6033         Also add an icall to retrieve the ref_only flag to the
6034         MonoReflectionAssembly.
6035
6036 2005-02-23  Chris Toshok  <toshok@ximian.com>
6037
6038         Part of fix for #72827.
6039         * mono-debug.c (mono_debug_add_method): add lexical block data to
6040         the info we write.  Kind of a hack at the moment - we copy the
6041         lexical block info from the MonoDebugMethodInfo to the
6042         MonoDebugMethodJitInfo here, before writing it.
6043         (mono_debug_read_method): read the lexical block info.
6044
6045         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6046
6047         * debug-mono-symfile.h: add lexical block support.
6048
6049         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6050         support.
6051
6052 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6053
6054         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6055
6056         * object.c (mono_runtime_free_method): Call mono_free_method () and
6057         put the TODOs there.
6058
6059         * loader.c (mono_free_method): Free up most memory allocated for 
6060         dynamic methods.
6061
6062 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6063
6064         * reflection.c: properly flag a Type argument to a
6065         named custom attr value (bug #72248).
6066
6067 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6068
6069         * reflection.c: reduce code duplication in named custom
6070         attribute encoding.
6071
6072 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6073
6074         * reflection.c: properly encode custom attrs of type object
6075         (bug #72649).
6076
6077 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6078
6079         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6080
6081 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6082
6083         * socket-io.c: load System.dll if it's not loaded already
6084         (bug #72850 and #70477).
6085
6086 2005-02-21  Martin Baulig  <martin@ximian.com>
6087
6088         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6089         generic instances.
6090
6091 2005-02-21  Martin Baulig  <martin@ximian.com>
6092
6093         * reflection.c (mono_image_build_metadata): We also need to
6094         "fixup" the MethodImpl table after we computed the final method
6095         indices.  Call fixup_methodimpl() to do that.
6096         (fixup_methodimpl): New private method.
6097
6098 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6099
6100         * assembly.c: special case mscorlib.dll (bug#72536),
6101         patch from Carlos Alberto Cortez.
6102
6103 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6104
6105         * threads-types.h threads.c: Fix build bustage.
6106
6107         * threads.c: Use a union for long<->double conversions.
6108
6109         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6110         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6111
6112         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6113         containing the checkpoint call with NOT_TAKEN.
6114         
6115         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6116         checkpoint before pushing the arguments, so they won't have to be
6117         spilled to stack.
6118
6119 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6120
6121         * domain.c, assembly.c, domain-internals.h: make some data
6122         const and relocation-free.
6123
6124 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6125
6126         * object.c, appdomain.c, class-internals.h: introduce the
6127         MonoClassRuntimeInfo structure to hold the info needed to
6128         use a class at runtime. Made mono_class_vtable() lock-free
6129         for all the appdomains.
6130
6131 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6132
6133         * metadata-internals.h, image.c: introduce a per-image mempool to
6134         be used for memory that has the same lifetime as the image.
6135
6136 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6137
6138         * domain.c: In mono_init_internal(), instead of selecting the first
6139         runtime version supported by an executable, get a list of all
6140         supported versions and select the one for which an mscorlib exists
6141         (since even if the runtime supports a given version, it doesn't mean
6142         that the framework for that version is installed).
6143         Modified get_runtimes_from_exe to support this behavior.
6144         In supported_runtimes, added information about additional system
6145         assembly versions.
6146         
6147         * assembly.c: Added support for more than one system assembly version
6148         per runtime version. Updated the assembly list.
6149         In mono_assembly_remap_version, removed the initial version check,
6150         since we don't know to which version we need to compare until we
6151         get the version set on which the assembly is based.
6152         Moved the code for loading corlib into the new method
6153         mono_assembly_load_corlib(), so it can be used by the initialization
6154         code.
6155         
6156         * domain-internals.h: Updated data structures and added declaration
6157         for mono_assembly_load_corlib.
6158
6159 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6160
6161         * reflection.c (resolve_object): Fix the creation of the signature in 
6162         the SignatureHelper case.
6163
6164         * assembly.c (mono_assembly_remap_version): Fix binary search.
6165         
6166 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6167  
6168         * class.c: Added inheritance check when a method is overloaded (from a
6169         virtual method or when implementing an interface) and when a class is
6170         inherited. Added functions to set a failure for a class and to 
6171         retreive the exception from a failure.
6172         * class-internals.h: Added fields to MonoClass to keep the exception
6173         information status for inheritance (or other exceptions) to be thrown
6174         later (i.e. not at load time).
6175         * object.c: Throw the inheritance SecurityException when a type is to 
6176         be created with either class or method inheritance violations.
6177         * reflection.c|h: Fix when getting declsec from a class. Removed 
6178         unrequired code for class. Improved sanity in parameter naming.
6179         * security-manager.c|h: Added functions to check for class and method
6180         inheritance.
6181
6182 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6183
6184         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6185         and has_finalize in dynamic types as well.
6186
6187 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6188
6189         * culture-info-table.h : fixed currency format for en-GB (and so on).
6190
6191 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6192
6193         * gc.c: ensure the GC handles never have 0 as a value.
6194
6195 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6196
6197         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6198         a pointer to a struct to unmanaged code. Fixes #72625.
6199
6200 2005-02-16  Martin Baulig  <martin@ximian.com>
6201
6202         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6203
6204 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6205
6206         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6207
6208 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6209
6210         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6211
6212         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6213         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6214         etc. Fixes #71471.
6215
6216         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6217
6218         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6219
6220 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6221
6222         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6223         changes to make the current context a field in MonoThread.
6224
6225 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6226
6227         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6228         the last change.
6229         
6230         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6231         extracted from mono_marshal_get_native_wrapper.
6232
6233         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6234         to create wrappers around native functions.
6235
6236         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6237         delegates for arbitrary function pointers. Fixes #71472.
6238
6239 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6240
6241         * threads.c: cleaned up the code a little.
6242
6243 2005-02-15  Martin Baulig  <martin@ximian.com>
6244
6245         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6246         the data table.
6247
6248         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6249         allocate larger chunks if needed.
6250
6251 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6252
6253         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6254         in by mistake.
6255
6256 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6257
6258         * domain.c: keep the domains in an array and ensure the domain ids
6259         are kept small, so they can be used as indexes to domain-specific data
6260         with a small memory overhead.
6261
6262 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6263
6264         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6265
6266 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6267
6268         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6269
6270 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6271
6272         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6273
6274         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6275         values.
6276
6277         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6278         
6279 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6280
6281         * domain-internals.h: add the hashtable here.
6282
6283         * class-internals.h: Remove `info' from MonoMethod
6284
6285         * domain.c: Add a new hashtable, jit_trampoline_hash
6286
6287 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6288
6289         * object.c: don't set the value of static fields
6290         (fixes bug#72494).
6291
6292 2005-02-11  Martin Baulig  <martin@ximian.com>
6293
6294         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6295         (mono_debug_add_method): Silently ignore the method if it's too big.
6296         (mono_debug_add_type): Likewise.
6297
6298 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6299
6300         * threads.c, appdomain.c: remove #ifdefs from the code.
6301
6302 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6303
6304         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6305         common security informations. This allows us to stay in unmanaged code
6306         when doing LinkDemand and it's special cases (except for the first 
6307         time for initialization). The flags a very much used with --security.
6308         * reflection.c|h: Added code to get declarative security attributes 
6309         for LinkDemand and InheritanceDemand. This required to refactor the
6310         existing code for Demand.
6311         * security-manager.c|h: Added new method fields for the special cases
6312         of LinkDemand.
6313
6314 2005-02-10  Martin Baulig  <martin@ximian.com>
6315
6316         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6317         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6318
6319 2005-02-10  Martin Baulig  <martin@ximian.com>
6320
6321         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6322         debugging code; this is almost a complete rewrite.
6323
6324         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6325
6326 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6327
6328         * domain.c, object.h: expose mono_string_equal () and 
6329         mono_string_hash ().
6330         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6331         it's implemented in managed code.
6332
6333 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6334
6335         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6336         lo leak objects between appdomains.
6337
6338 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6339
6340         * assembly.c: old compilers compilation fix from 
6341         robertj@gmx.net (Robert Jordan).
6342
6343 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6344
6345         * class-internals.h: Little reminder for the future.
6346
6347         * debug-helpers.c: Fix up wrapper_type_names
6348
6349 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6350
6351         * image.c, metadata-internals.h: when loading an image from a file,
6352         mmap all of it and use the same codepaths as when using a
6353         in-memory image: the code is simpler and we use less memory
6354         (both writable and readonly).
6355
6356 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6357
6358         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6359         API to alloc runtime data structures that need to be tracked by the
6360         GC and contain pointers.
6361         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6362         make the code more readable and eventually use a different GC.
6363
6364 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6365
6366         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6367         for out arguments.
6368         
6369 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6370
6371         * object.c: In release_type_locks(), don't release the cctor lock
6372         if it has already been released. This fixes a crash in the
6373         thread5 test.
6374
6375 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6376
6377         * gc.c, marshal.c, icall.c: register a delegate for finalization
6378         only when the native function pointer has been allocated for it.
6379
6380 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6381
6382         * object.c: cleaned up some code, allocate objects that are
6383         pointer free with the atomic malloc variant. Allocate memory
6384         for static data from the mempool if it's pointer-free.
6385         Allocate the bounds array at the end of the array data, when needed.
6386         * object-internals.h, object.h: move a private function in a private
6387         header.
6388         * class.c: handle missing case in tracking references in fields.
6389
6390 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6391
6392         * class.c, class-internals.h: keep track if a type has
6393         reference fields in either the instance or static fields.
6394
6395 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6396
6397         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6398         and renamed to MonoRuntimeInfo. Added fields to store the expected
6399         framework assembly version. Changed mono_get_framework_version and
6400         mono_get_runtime_version for a single mono_get_runtime_info method.
6401         
6402         * assembly.c: Added method to remap system assembly versions to the
6403         current executing runtime version. Removed old mapping code.
6404         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6405         
6406         * icall.c, reflection.c: Track api changes.
6407
6408 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6409
6410         * loader.c (method_from_memberref): Improve error reporting,
6411         produce the class name instead of the typeref/typedef index. 
6412
6413 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6414
6415         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6416
6417 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6418
6419         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6420         stdcall and charset name mangling.  Reorganize the code and add
6421         some tracing stuff.
6422
6423 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6424
6425         * monodiet.c: More iters!
6426
6427         * marshal.c: Iter usage.
6428
6429         * icall.c: Iter usage.
6430
6431         * object.c: Use iters.
6432
6433         * debug-helpers.c: More iters
6434
6435 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6436
6437         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6438         under win32.
6439
6440 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6441
6442         * mono-debug-debugger.c: use iters
6443
6444         * class.c, class-internals.h: mono_class_setup_events is static
6445         now
6446
6447         * All callers: use iters
6448
6449 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6450
6451         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6452         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6453
6454 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6455
6456         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6457
6458         * marshal.h: Add prototypes for ldfld/stfld_remote.
6459
6460         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6461         this is called during startup.
6462         
6463 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6464
6465         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6466         MonoThreadsSync struct private in monitor.c. Changed the way
6467         MonoThreadsSync is allocated so it's faster and there is no
6468         need to keep track of it with a finalizer and it uses less memory.
6469         This also finally allows us to allocate mono objects as ptrfree when
6470         there are no reference fields.
6471
6472 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
6473
6474         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
6475         disappearing link to the GC interface and use them to simplify
6476         the gchandles code.
6477
6478 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6479
6480         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
6481         stfld_remote which call mono_load/store_field_new. This allows methods
6482         calling ldfld/stfld wrappers to be AOTed.
6483
6484         * console-io.c: Include sys/filio.h under solaris.
6485         
6486         * console-io.c: Include curses.h if needed correctly.
6487
6488 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6489         
6490         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
6491         method->klass as well.
6492
6493         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
6494
6495         * class.c (mono_class_init): Switch on lazy initialization of 
6496         methods.
6497
6498         * class.c (mono_class_get_finalizer): Handle the case when the 
6499         finalizer is inherited.
6500
6501 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6502
6503         * console-io.c: <curses.h> is needed by term.h on solaris.
6504
6505 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
6506
6507         * icall.c, class-internals.h, monodiet.c, class.c: Remove
6508         mono_class_setup_properties where possible. Remove this ftn from
6509         the header file, and make it static.
6510
6511 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6512
6513         * loader.c: Add missing setup_... call.
6514
6515         * class.c: Add missing setup_... calls.
6516
6517         * class.c (mono_class_init): Switch on lazy initialization of 
6518         the generic vtable.
6519         
6520         * class.c (mono_class_init): Fix generics broken by the recent changes.
6521
6522         * monodiet.c (handle_type): Add missing setup_... calls.
6523
6524         * class.c: Back out garbage in previous patch.
6525         
6526         * class.c: Add missing setup_... calls.
6527
6528         * class.c (mono_class_get_method_from_name_flags): Avoid calling
6529         mono_class_setup_methods () if possible.
6530
6531         * class-internals.h (MonoClass): Add 'has_cctor' flag.
6532
6533         * class-internals.h (MonoCachedClassInfo): New structure.
6534
6535         * class.c: Initialize properties and events fields of MonoClass lazily.
6536
6537         * class.c: Add infrastructure for lazily initializing the methods and
6538         vtable fields of MonoClass. Not yet used.
6539
6540         * class.c (mono_class_get_finalizer): New helper function.
6541
6542         * class.c: Add infrastructure for loading some class related data from
6543         an AOT file.
6544
6545         * object.c: Add infrastructure for initializing the vtable from data
6546         in the AOT file.
6547
6548         * gc.c (run_finalize): Use mono_class_get_finalizer ().
6549
6550         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
6551         appropriate initialization function before accessing parts of the
6552         MonoClass structure.
6553
6554         * marshal.c: Fix warnings.
6555         
6556         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
6557
6558         * mono-debug-debugger.c (get_exception_message): Use 
6559         mono_class_get_method_from_name_flags ().
6560
6561 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
6562
6563         * reflection.c, appdomain.c: Replace a few manual searches that
6564         Zoltan missed. (Paolo approved this part of my initial patch).
6565
6566 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
6567
6568         * profiler.c: disable recording statistical events at report time.
6569
6570 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6571
6572         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
6573         to byteswap arrays of enum values, too (bug #72080).
6574
6575 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
6576
6577         * appdomain.c (set_domain_search_path): Allow this to be called if
6578         domain->setup is not yet set.
6579
6580         * loader.c (mono_method_get_index): New helper function.
6581
6582         * loader.c reflection.c: Use mono_method_get_index ().
6583
6584         * class.c (mono_class_get_method_from_name_flags): New helper method.
6585
6586         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
6587         this.
6588
6589         * class.c (mono_class_get_cctor): New helper method.
6590
6591         * string-icalls.c object.c class.c marshal.c reflection.c: Use
6592         mono_class_get_method () to look up methods.
6593
6594 2005-02-01  Miguel de Icaza  <miguel@novell.com>
6595
6596         * console-io.c: Fix the build, this should work on Windows.
6597
6598 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
6599
6600         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
6601         be set to null to keep things valid
6602
6603 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6604
6605         * icall.c: added Console 2.0 icalls.
6606         * Makefile.am: added console-io.[ch]
6607         * console-io.[ch]: internal calls for Console 2.0 API.
6608
6609 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6610
6611         * class.c: make sure we consider all the interfaces
6612         when calculating max_interface_id (bug found by
6613         Jeroen Frijters running ikvm).
6614
6615 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
6616
6617         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
6618         valuetype fields to null.
6619
6620         * object.c (set_value): Ditto. Fixes #71669.    
6621
6622 2005-01-31  Martin Baulig  <martin@ximian.com>
6623
6624         * metadata.c (mono_metadata_has_generic_params): New public
6625         function; checks whether something is a generic method.
6626
6627 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
6628
6629         * appdomain.c: fix infinite recursion when adding assemblies.
6630
6631 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
6632
6633         * object.c: Fix small typo to return all items for Environment.
6634         GetCommandLineArgs.
6635
6636 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6637
6638         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
6639         reflection.c: more domain and assembly-unload related fixes
6640         and memory leaks plugs.
6641
6642 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
6643
6644         * 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.
6645
6646 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
6647
6648         * loader.c (mono_method_signature): Make this method lazy
6649         (mono_get_method_from_token): Don't computate the signature here.
6650
6651         Doing this saves quite a bit of memory. I got 90 kb on starting up
6652         monodoc. It should also save some disk reads on startup.
6653
6654         * *: MonoMethod->signature might be NULL now. You *MUST* use
6655         mono_method_signature.
6656
6657 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
6658
6659         * object.c (mono_runtime_get_main_args): Return an array from the
6660         current domain here. Fixes #71938.
6661
6662 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
6663
6664         * monitor.c: formatting changes to comply with the
6665         mono coding style and remove #ifdefs from the code.
6666
6667 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6668
6669         * metadata.c, private.h: remove some unneeded data
6670         and use a more compact representation for table schemas.
6671
6672 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
6673
6674         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
6675         to get a better distribution in hash tables.
6676         * *.c: use mono_aligned_addr_hash() where appropriate.
6677         * assembly.c: make var static.
6678
6679 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
6680
6681         * domain-internals.h: Put MonoJitInfo on a diet.
6682
6683         * domain.c: Fix a warning.
6684
6685 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6686
6687         * gc.c: rework the gc handles code to reuse handles
6688         when freed.
6689
6690 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6691
6692         * domain.c: fixed long standing bug in mono_string_equal() which
6693         was brought to light with the ldstr changes.
6694
6695 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
6696
6697         * reflection.c: Remove warning by adding missing include for marshal.h
6698
6699 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6700
6701         * domain.c, object.c: change the ldstr_table to hold
6702         MonoString* as keys: makes the runtime isinterned lookup
6703         faster and simplifies memory management.
6704
6705 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
6706  
6707         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
6708         possible to add imperative security checks before calling the icall.
6709         * reflection.c: Return security attributes on the original MonoMethod
6710         (and not the wrapped one). This fix permissions on icalls.
6711
6712 2005-01-25  Dick Porter  <dick@ximian.com>
6713
6714         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
6715         the check for mktime() support actually test the mktime() return
6716         value.  "Fixes" bug 71682, though the output is still different to
6717         MS.
6718
6719 2005-01-25  Martin Baulig  <martin@ximian.com>
6720
6721         * class.c (mono_class_is_assignable_from): Make this work for
6722         generic instances.
6723
6724 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
6725
6726         * marshal.c (mono_string_utf8_to_builder)
6727         (mono_string_builder_to_utf16): We might not have ownership of the
6728         string. In thise case, we need to create a new buffer.
6729
6730         * object-internals.h (mono_stringbuilder_capacity): sb->str might
6731         be null, in which case, use the default capacity.
6732
6733 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6734
6735         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
6736         GC events to the profiler.
6737
6738 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6739
6740         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
6741         if you don't want the GC to run.
6742
6743 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
6744
6745         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
6746         start providing a GC API and keeping different implementations in
6747         their own file.
6748         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
6749
6750 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
6751
6752         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
6753         mmap rather than allocating a huge buffer.
6754         (mono_debug_close_mono_symbol_file): Free the buffer allocated
6755         above.
6756
6757 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
6758
6759         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
6760         and CheckExecutionRights.
6761         * reflection.c|h: Keep the index of the declarative security to be 
6762         used, instead of the pointer, when AOT compiler is used. Also add 
6763         class initialization when requesting demands.
6764         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
6765         CheckExecutionRights. Both properties are now FALSE by default, and
6766         unmodifiable, unless the --security option is used.
6767
6768 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6769
6770         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
6771         reflection.c: properly refcount images and assemblies, many leaks fixed.
6772
6773 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6774
6775         * threadpool.c: increase the timeout for threads in the thread pool to
6776         10s.  Fixes bug #67159.
6777
6778 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
6779
6780         * class-internals.h: Sun's compiler insists on explicit
6781         signed on bit fields to handle then correctly.
6782
6783 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
6784
6785         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
6786         Make the size of the array fit only the number of invalid path
6787         chars that we have.
6788
6789         * class.c (_mono_class_get): Improve the error reporting when a
6790         class referenced is not found, to assist debugging. 
6791
6792 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
6793
6794         * threads.c: fix off-by-one error.
6795         * domain.c: free data allocated in the domain.
6796
6797 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
6798
6799         * reflection.c (mono_method_body_get_object): Fill out exception info
6800         as well.
6801
6802         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
6803         structure.
6804         
6805 2005-01-19  Martin Baulig  <martin@ximian.com>
6806
6807         * loader.c (mono_get_method_constrained): Make this work again.
6808
6809 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
6810
6811         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
6812         guint16 to match the managed side.
6813
6814         * reflection.c (mono_reflection_body_get_object): Fill out local
6815         variables array.
6816
6817         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
6818         as well.
6819
6820         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
6821         'local_var_sig_token'.
6822
6823 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
6824
6825         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
6826         System.Drawing.
6827
6828         * reflection.c (mono_method_body_get_object): Handle abstract and
6829         runtime methods.
6830
6831 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
6832
6833         * marshal.c, loader.c, class-internals.h, reflection.c:
6834         store the emthod data for a wrapper in an array instead of a list.
6835
6836 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
6837
6838         * marshal.c: change the code to allocate memory more
6839         conservatively for method wrappers.
6840
6841 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
6842
6843         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
6844         fields from MonoClass to the marshal info structure where they belong.
6845
6846 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6847
6848         * class.c, object.c, class-internals.h, marshal.c: rearrange
6849         some fields and tweak some types to lower memory usage.
6850
6851 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
6852
6853         * threads.c (signal_thread_state_change): Handle the case when the
6854         target thread is the current thread.
6855
6856         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
6857
6858         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
6859         emit_ptr_to_object_conv. 
6860
6861         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
6862         marshalling. Fixes #71352.
6863
6864 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6865
6866         * metadata.h, blob.h: move table enum to blob.h so it can be included
6867         in any header.
6868         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
6869         cut the size of MonoImage/MonoDynamicImage.
6870
6871 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
6872
6873         * profiler.c (mono_profiler_install_simple): Fix default arguments.
6874
6875 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6876
6877         * reflection.c, reflection.h, icall.c: add a function to check
6878         if an attribute type is defined for a metadata object.
6879
6880 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
6881
6882         * object-internals.h: Added some needed fields from StringBuilder class.
6883         * marshal.c: Set the maxCapacity when creating a StringBuilder.
6884
6885 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
6886
6887         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
6888         threads before shutting down the runtime.
6889
6890         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
6891
6892 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6893
6894         * object-internal.h, threads.c: implement stacksize and 
6895         parameterized thread start functionality (requires
6896         matching corlib). Marked broken code for later removal.
6897
6898 2005-01-12  Martin Baulig  <martin@ximian.com>
6899
6900         * class-internals.h (MonoGenericClass): Moved the `initialized'
6901         flag to MonoDynamicGenericClass, removed `init_pending'.
6902         (MonoGenericInst): Added `is_reference' flag.
6903
6904 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
6905
6906         * reflection.c (mono_image_create_pefile): Only set the pe_offset
6907         inside the MSDOS header. Fixes #71201.
6908
6909         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
6910         gc thread.
6911         (mono_domain_finalize): Ditto.
6912
6913 2005-01-12  Martin Baulig  <martin@ximian.com>
6914
6915         * class.c (mono_get_shared_generic_class): Use the cache for
6916         non-dynamic generic classes.
6917
6918         * class-internals.h (mono_class_create_generic_2): Removed
6919         function prototype, this function is now static inside class.c.
6920
6921         * class.c (mono_class_create_generic_2): Made this static, only
6922         call it from mono_class_init() and mono_class_setup_parent().
6923         (collect_implemented_interfaces_aux): Call mono_class_init() on
6924         the interfaces we collect.
6925         (mono_class_setup_vtable): Call mono_class_init (class->parent).
6926
6927 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6928
6929         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
6930         it a real thread handle.
6931
6932         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
6933         MonoJitExceptionInfo, since each catch clause needs its own variable.
6934         
6935 2005-01-11  Dick Porter  <dick@ximian.com>
6936
6937         * image.c (mono_pe_file_open): New variant on mono_image_open()
6938         that does not set up the CLI metadata; used for FileVersionInfo so
6939         it can get the data for windows binaries too.
6940         
6941         * process.c (process_read_string_block): Don't read off the end of
6942         the StringTable block.
6943
6944         These both fix bug 70766.
6945
6946 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
6947
6948         * gc.c: set some fields to NULL at GC cleanup time.
6949         * threads.c: if we quit the main thread, call exit ().
6950
6951 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6952
6953         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
6954
6955 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
6956
6957         * threads.h, threads.c, object.c: added accessor and settor for
6958         main_thread. Handle it specially when exiting from it: wait
6959         for other foreground threads to exit.
6960
6961 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
6962
6963         * process.c, verify.c: remove some bloat.
6964
6965 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
6966
6967         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
6968         the calling convention to cdecl under win32.
6969
6970 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
6971
6972         * object.c (mono_object_get_size): New function to get the size of
6973         an object instance.
6974
6975         * profiler.c (simple_allocation): Use above.
6976
6977 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
6978
6979         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
6980         ves_icall_System_AppDomain_getRootDomain (as it's not required to
6981         get an appdomain by it's id and we can't assume the root's id is 0).
6982         * domain-internals.h: Change the function prototype to match.
6983         * icall.c: Change the icall table for AppDomain.
6984
6985 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
6986
6987         * locales.c (string_invariant_compare_char): Only compute
6988         GUnicodeTypes in the case where we need them.  Test for ordinality
6989         first and return if so.
6990
6991         From the commit:
6992
6993                 /*
6994                  * FIXME: here we must use the information from c1type and c2type
6995                  * to find out the proper collation, even on the InvariantCulture, the
6996                  * sorting is not done by computing the unicode values, but their
6997                  * actual sort order.
6998                  */
6999
7000 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7001
7002         * loader.c: for P/Invoke methods, allow the "Internal" shared
7003         library name to refer to the calling process symbol namespace.
7004
7005 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7006
7007         * Makefile.am: Add the security manager to the build.
7008         * security-manager.c|h: New. Initialization of the security manager.
7009
7010 2005-01-07  Dick Porter  <dick@ximian.com>
7011
7012         * threads.c: 
7013         * monitor.c: Update thread state during Monitor and WaitHandle
7014         waits.  Fixes bug 71031.
7015
7016 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7017
7018         * reflection.c (property_encode_signature): Correctly handle when the
7019         property has no methods.
7020
7021 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7022
7023         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7024         
7025         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7026         fields from mb, not rmb. Fixes #71017.
7027
7028         * marshal.c (emit_ptr_to_str_conv): Add support for 
7029         ByValTStr -> string conversion. Fixes #71015.
7030
7031         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7032
7033         * mempool.c (mono_mempool_contains_addr): New helper function.
7034
7035 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7036
7037         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7038         HasSematics encoded fields.
7039         
7040         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7041         invalid string marshalling.
7042
7043         * metadata.c: Fix warnings.
7044         
7045 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7046
7047         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7048         profiler support.
7049
7050 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7051
7052         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7053         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7054         tests.
7055
7056 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7057
7058         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7059         so methods containing these can be AOTed.
7060
7061 2005-01-03  Martin Baulig  <martin@ximian.com>
7062
7063         * loader.c (find_method): Removed the hack for generic instances.
7064         (method_from_memberref): If our parent is a generic instance, pass
7065         its generic type definition to find_method() and then inflate the
7066         method.
7067         (mono_get_method_constrained): Pass the generic type definition to
7068         find_method() and inflate the method later.
7069
7070         * class-internals.h (MonoStats): Added `generic_class_count'.
7071
7072         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7073         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7074
7075         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7076         generic type definitions.
7077
7078 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7079
7080         * loader.c icall.c: Fix warnings.
7081
7082 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7083
7084         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7085         blittable types. Fixes #70864.
7086
7087 2004-12-29  Martin Baulig  <martin@ximian.com>
7088
7089         * icall.c
7090         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7091
7092         * reflection.c (mono_method_get_object): Create a
7093         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7094         call mono_get_inflated_method().
7095
7096         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7097
7098 2004-12-27  Martin Baulig  <martin@ximian.com>
7099
7100         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7101         (MonoMethodInflated): Added `inflated' field.
7102
7103         * class.c (mono_class_inflate_generic_method): Don't really
7104         inflate the method here; just set the `is_inflated' flag in the
7105         MonoMethod.
7106         (mono_class_get_inflated_method): Actually inflate the method here
7107         if it's not already inflated; we use the MonoMethodInflated's new
7108         `inflated' field as a cache.
7109
7110 2004-12-26  Martin Baulig  <martin@ximian.com>
7111
7112         * class.c
7113         (inflate_generic_class): Moved some code out of inflate_generic_type().
7114         (mono_class_inflate_generic_method): If we're already inflated,
7115         inflate the context and use the declaring method; ie. make sure
7116         the declaring method of an inflated method is always the generic
7117         method definition.
7118         (mono_class_create_from_typedef): Create
7119         `class->generic_container->context->gclass'.
7120
7121 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7122
7123         * metadata-internals.h, marshal.c, reflection.c: More
7124         MonoGHashTable->GHashTable.
7125
7126         * domain-internals.h, class.c: Change MonoGHashTable's into
7127         GHashTables for some cases where no gc stuff is used
7128
7129         All users: update apis
7130
7131 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7132
7133         * metadata.c (builtin_types): Make this `const'. Makes this get
7134         put into the shareable section.
7135         (mono_metadata_init): Casts to make gcc happy.
7136
7137 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7138
7139         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7140
7141 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7142
7143         * icall.c: Added an internal call to retrieve the position and length
7144         of assembly-level declarative security attributes (RequestMinimum, 
7145         RequestOptional and RequestRefuse). This is used by the Assembly class
7146         to re-create the corresponding permission sets.
7147
7148 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7149
7150         * marshal.c: fix the stelemref wrapper to be type correct
7151         (and faster).
7152
7153 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7154
7155         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7156         to do key & 0x7fffffff. Hashtable already does this. It just
7157         results in longer code.
7158
7159 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7160
7161         * appdomain.c: Bump corlib version.
7162         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7163         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7164         * reflection.c|h: Add functions to get declarative security infos
7165         (blob position and length) for assemblies, classes and methods.
7166
7167 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7168
7169         * reflection.c: sort the constant table (bug #70693).
7170
7171 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7172
7173         * object-internals.h, threads.c, domain.c: add accessors for
7174         the MonoThread and MonoDomain tls keys.
7175
7176 2004-12-18  Martin Baulig  <martin@ximian.com>
7177
7178         * class.c (inflate_generic_type): If we're inflating a generic
7179         instance, set `ngclass->context->container = context->container';
7180         ie. the container we inflated into.
7181
7182         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7183         inflate_generic_type() changes.
7184
7185 2004-12-17  Martin Baulig  <martin@ximian.com>
7186
7187         * class-internals.h
7188         (MonoGenericClass): Replaced `MonoType *generic_type' with
7189         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7190         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7191         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7192
7193 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7194
7195         * exception.c (mono_exception_from_token): New helper function.
7196
7197 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7198
7199         * assembly.c (mono_assembly_load_with_partial_name): Call 
7200         mono_assembly_loaded before invoking the preload hooks. Fixes
7201         #70564.
7202
7203         * object-internals.h (MonoThread): Change culture_info and 
7204         ui_culture_info into an array.
7205
7206         * threads.c: Cache culture info objects from more than one appdomain.
7207
7208         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7209         current UI culture.
7210
7211 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7212
7213         * threads.h threads.c appdomain.c: Clear the culture_info field of
7214         all threads during unloading if they point to an object in the dying
7215         appdomain.
7216
7217 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7218
7219         * culture-info.h (TextInfoEntry): New struct
7220         * object-internals.h: sync with managed
7221         * locales.c: fill the `text_info_data' field
7222         * culture-info-tables.h: update
7223
7224 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7225
7226         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7227         collector.
7228
7229 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7230
7231         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7232         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7233
7234 2004-12-12  Martin Baulig  <martin@ximian.com>
7235
7236         * mono-debug-debugger.c (write_type): If we're an enum and the
7237         builtin types have already been initialized, call mono_class_init().
7238
7239 2004-12-11  Martin Baulig  <martin@ximian.com>
7240
7241         * metadata.c (mono_metadata_load_generic_params): Added
7242         `MonoGenericContainer *parent_container' argument; automatically
7243         compute `container->is_method'; pass the correct owner to
7244         get_constraints().      
7245
7246         * reflection.c (compare_genericparam): Sort the GenericParam table
7247         according to increasing owners. 
7248
7249 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7250
7251         * profiler.c: allow disabling the default profiler.
7252
7253 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7254
7255         * decimal.c, icall.c: allow disabling System.Decimal support.
7256
7257 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7258
7259         * reflection.c: Add support for null attribute arguments.
7260
7261 2004-12-09  Martin Baulig  <martin@ximian.com>
7262
7263         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7264         names to get rid of compiler warnings.
7265
7266 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7267
7268         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7269         mono_marshal_load_type_info (). Fixes #69625.
7270         (mono_marshal_get_ptr_to_struct): Likewise.
7271
7272 2004-12-08  Martin Baulig  <martin@ximian.com>
7273
7274         * mono-debug.h: Bumped version number to 47.
7275
7276         * mono-debug-debugger.c
7277         (mono_debugger_event_handler, mono_debugger_event): Take two
7278         guint64 arguments insteed of a gpointer and a guint32.  
7279
7280 2004-12-08  Martin Baulig  <martin@ximian.com>
7281
7282         * debug-mono-symfile.h
7283         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7284         `address' to `native_offset'.
7285
7286 2004-12-08  Martin Baulig  <martin@ximian.com>
7287
7288         * class.c (mono_class_create_from_typespec): Only inflate if we
7289         either have `context->gclass' or `context->gmethod'.
7290
7291 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7292
7293         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7294
7295         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7296
7297         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7298
7299         * reflection.c (mono_assembly_get_object): Remove the workaround put
7300         in for the release.
7301         
7302         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7303
7304         * appdomain.c: Bump corlib version.
7305
7306         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7307         be visible in other appdomains.
7308
7309 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7310
7311         * threads.c: Interlocked inc and dec for longs were messed up,
7312         use a KISS based impl for this. Fixes 70234
7313
7314 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7315
7316         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7317
7318 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7319
7320         * icall.c: fix to follow policy not to allow struct
7321         arguments in icalls.
7322
7323 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7324
7325         * process.c: make the patch that handles spaces in file paths work
7326         on mono/windows too.
7327
7328 2004-12-06  Martin Baulig  <martin@ximian.com>
7329
7330         * class.c (mono_class_create_generic): Call
7331         mono_class_setup_supertypes() if we're dynamic.
7332         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7333
7334 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7335
7336         * object-internals.h: Add new fields to MonoThread.
7337
7338         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7339
7340         * icall.c threads-types.h threads.c: Add new icalls.
7341
7342         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7343
7344         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7345         managed side.
7346
7347         * appdomain.c: Bump corlib version.
7348
7349         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7350         internal assemblies. Fixes #69181.
7351
7352 2004-12-05  Martin Baulig  <martin@ximian.com>
7353
7354         * class.c (mono_class_inflate_generic_signature): Make this a
7355         no-op if `context' is NULL or we don't have any type parameters;
7356         also copy `sentinelpos'.        
7357
7358 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7359
7360         * image.c: Add unbox_wrapper_cache.
7361
7362         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7363
7364         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7365         function generator.
7366         
7367         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7368         Fixes #70173.
7369
7370         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7371         
7372 2004-12-04  Martin Baulig  <martin@ximian.com>
7373
7374         * loader.c (mono_method_get_signature_full): New public function;
7375         like mono_method_get_signature(), but with an additional
7376         `MonoGenericContext *' argument.
7377
7378         * class.c (mono_class_inflate_generic_signature): Formerly known
7379         as inflate_generic_signature(); make this public.
7380
7381 2004-12-04  Martin Baulig  <martin@ximian.com>
7382
7383         * metadata.c
7384         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7385         instead of a `MonoGenericContainer *'.  
7386         (mono_metadata_parse_array_full): Likewise.
7387         (mono_metadata_parse_signature_full): Likewise.
7388         (mono_metadata_parse_method_signature_full): Likewise.
7389         (mono_metadata_parse_generic_inst): Likewise.
7390         (mono_metadata_parse_generic_param): Likewise.
7391         (mono_metadata_parse_mh_full): Likewise.
7392         (mono_type_create_from_typespec_full): Likewise.
7393
7394 2004-12-03  Martin Baulig  <martin@ximian.com>
7395
7396         * class-internals.h (MonoGenericContainer): Replaced the
7397         `MonoGenericContext * pointer with a `MonoGenericContext'
7398         structure and made it the first element.
7399
7400 2004-12-03  Martin Baulig  <martin@ximian.com>
7401
7402         * class.c
7403         (inflate_generic_type): Set the `context->container' when creating
7404         a new MonoGenericContext.
7405         (mono_class_inflate_generic_method): Likewise.
7406         (mono_class_create_from_typespec): Just use `context->container'
7407         to get the container.
7408
7409         * loader.c (method_from_methodspec): Set `context->parent' from
7410         `context->container' - and if that's a method container, use its
7411         parent.  Also set the `context->container' when creating a new
7412         MonoGenericContext.
7413         (mono_get_method_from_token): Use just `context->container' to get
7414         the container.
7415
7416         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7417         `gclass->context->container'.
7418
7419         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7420         the `context->container' when creating a new MonoGenericContext.
7421
7422 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7423
7424         * reflection.c (compare_genericparam): Sort params with identical
7425         owner by their number. Fixes gen-111 on sparc.
7426
7427 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7428
7429         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7430         around the domain changes.
7431
7432         * appdomain.c (mono_domain_unload): Handle the case when the thread
7433         calling Unload is itself being aborted during unloading. Fixes #70022.
7434
7435         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7436
7437         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7438         checkpoint_func as an icall so it gets a wrapper.
7439         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7440         in the cross-appdomain wrappers too.
7441
7442         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7443
7444         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7445
7446         * reflection.c: Fix some memory leaks.
7447         
7448 2004-12-02  Martin Baulig  <martin@ximian.com>
7449
7450         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7451
7452         * metadata.c (generic_class_cache): New static hashtable.
7453         (mono_metadata_lookup_generic_class): New public method.
7454
7455 2004-12-02  Martin Baulig  <martin@ximian.com>
7456
7457         * class.c (mono_class_create_from_typedef): Call
7458         mono_class_setup_parent() and mono_class_create_mono_type() before
7459         parsing the interfaces.
7460
7461 2004-12-02  Martin Baulig  <martin@ximian.com>
7462
7463         * metadata.c (generic_inst_cache): New static hashtable.
7464         (mono_metadata_lookup_generic_inst): New public function.
7465         (mono_metadata_inflate_generic_inst): New public function.
7466         (mono_metadata_parse_generic_inst): New public function.
7467         (do_mono_metadata_parse_generic_class): Use the new
7468         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7469         since this'll also use the cache.
7470
7471         * reflection.c (mono_reflection_bind_generic_method_parameters):
7472         Use mono_metadata_lookup_generic_inst() to use the new cache.
7473
7474         * class.c (inflate_mono_type): Use
7475         mono_metadata_inflate_generic_inst() to inflate a generic
7476         instance; this'll also use the new cache.
7477
7478         * loader.c (method_from_methodspec): Use
7479         mono_metadata_parse_generic_inst() and
7480         mono_metadata_inflate_generic_inst() rather than parsing it
7481         manually, so we can use the new cache.
7482
7483 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7484
7485         * threads.c (wait_for_tids): Do not incorrectly free threads when 
7486         the wait times out.
7487
7488 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
7489
7490         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
7491         iter->args based on whether parameters are passed in registers (i.e.
7492         MONO_ARCH_REGPARMS is defined)
7493
7494 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
7495
7496         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
7497         the exception message. Fixes #70070.
7498         (method_from_methodspec): Fix warnings.
7499
7500 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7501
7502         * process.c: (complete_path) return the path quoted
7503
7504 2004-12-01  Martin Baulig  <martin@ximian.com>
7505
7506         * class-internals.h (MonoGenericInst): New structure.
7507         (MonoGenericClass): Replaced `type_argc', `type_argv' and
7508         `is_open' with `MonoGenericInst *inst'.
7509         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
7510         `is_open' with `MonoGenericInst *inst'.
7511
7512 2004-11-30  Martin Baulig  <martin@ximian.com>
7513
7514         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
7515
7516         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
7517         to `generic_class_cache'.
7518
7519         * metadata.c
7520         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
7521         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
7522         (mono_generic_inst_is_valuetype): Renamed to
7523         mono_generic_class_is_valuetype().
7524
7525         * class-internals.h
7526         (MonoGenericInst): Renamed to MonoGenericClass.
7527         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
7528         (MonoClass): Renamed `generic_inst' to `generic_class'.
7529         (MonoGenericContext): Renamed `ginst' to `gclass'.
7530
7531         * object-internals.h
7532         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
7533
7534         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
7535         mono_reflection_generic_class_initialize().
7536
7537         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
7538         now known as "System.Reflection.MonoGenericClass".
7539         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
7540
7541 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
7542
7543         * class-internals.h: Added a flag field to MonoClass to cache the
7544         declarative security attributes actions associated with the class.
7545         * domain-internals.h: Added booleans to MonoJitInfo to cache the
7546         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
7547         applicable to the JITted method.
7548         * reflection.c|h: Added functions to extract (as flags) which security
7549         actions are available (declaratively) for a method, class or assembly.
7550         * metadata.c|h: Added functions to search the declarative security
7551         table in the metadata.
7552         
7553 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
7554
7555         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
7556         EXPORTEDTYPES are already in the class name cache, so there is no
7557         need to add extra code here to look at them. Just removes a bit of
7558         cruft.
7559
7560         (ves_icall_System_Environment_get_TickCount): No need for #if
7561         WINDOWS. We already have the code in io-layer.
7562
7563 2004-11-28  Martin Baulig  <martin@ximian.com>
7564
7565         * loader.c
7566         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
7567         Fixes gen-112.cs.
7568
7569 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
7570
7571         * assembly.c (do_mono_assembly_open): Instead of having a
7572         conditional WITH_BUNDLE, incorporate support for bundles here, by
7573         having a global `bundles' variable holding a pointer to the actual
7574         bundles. 
7575
7576         (mono_register_bundled_assemblies): New API call used by the
7577         bundle code. 
7578
7579         See mkbundle.1 for details.
7580         
7581 2004-11-27  Martin Baulig  <martin@ximian.com>
7582
7583         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
7584         the vtable for generic methods.
7585
7586 2004-11-26  Martin Baulig  <martin@ximian.com>
7587
7588         * metadata.c
7589         (mono_metadata_generic_method_hash): New public function.
7590         (mono_metadata_generic_method_equal): Likewise.
7591
7592         * class-internals.h
7593         (MonoGenericContainer): Added `GHashTable *method_hash'.
7594
7595         * reflection.c (ReflectionMethodBuilder): Added
7596         `MonoGenericContainer *generic_container'.
7597         (reflection_methodbuilder_to_mono_method): Don't create a new
7598         MonoGenericContainer each time we're called.
7599         (mono_reflection_bind_generic_method_parameters): Use
7600         `container->method_hash' to cache the results so we don't create a
7601         different method if we're called several times with the same
7602         arguments.
7603
7604         * loader.c (method_from_methodspec): Use the new
7605         `container->method_hash' here, too.
7606
7607 2004-11-26  Martin Baulig  <martin@ximian.com>
7608
7609         * class.c (inflate_generic_signature): Correctly compute
7610         `res->has_type_parameters'.
7611         (mono_class_vtable): Use the `has_type_parameters' flag to
7612         determine whether we're a generic method.
7613
7614         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
7615
7616 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
7617
7618         * object.c (mono_runtime_run_main): Fix a small memory leak.
7619
7620 2004-11-25  Martin Baulig  <martin@ximian.com>
7621
7622         * class.c (set_generic_param_owner): Fixed the loop.
7623
7624 2004-11-25  Martin Baulig  <martin@ximian.com>
7625
7626         * object.c (mono_class_vtable): Don't create any JIT wrappers for
7627         generic methods.
7628
7629 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
7630
7631         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
7632         names. Fixes #69787.
7633
7634 2004-11-24  Martin Baulig  <martin@ximian.com>
7635
7636         * class.c (mono_class_create_generic_2): If we don't have a
7637         `ginst->parent', inflate `gklass->parent' to get our parent.
7638
7639 2004-11-24  Martin Baulig  <martin@ximian.com>
7640
7641         * reflection.c (compare_genericparam): Correctly sort the
7642         GenericParam table; fixes #69779.
7643
7644 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
7645
7646         * reflection.c: When writing a PE file, don't create a huge
7647         buffer in memory. Just write the arrays we have to the file.
7648         This reduces memory usage.
7649
7650         * metadata-internals.h: MonoDynamicStream pefile is no longer used
7651         globally.
7652
7653 2004-11-17  Martin Baulig  <martin@ximian.com>
7654
7655         * class.c (mono_class_init): Don't setup `class->parent' for
7656         dynamic instances; moved this to mono_class_generic_2().
7657         (mono_class_create_generic): Also set `klass->inited' for dynamic
7658         generic instances.
7659         (mono_class_create_generic_2): Don't do anything for dynamic
7660         generic instances.  Set `klass->parent' here and also call
7661         mono_class_setup_parent() here. 
7662
7663         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
7664         `MonoType *parent' argument; set `ginst->parent' before calling
7665         mono_class_create_generic_2(), so we set the correct parent.
7666
7667 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
7668
7669         * reflection.c: allow getting attributes from ModuleBuilder
7670         (used by ikvm).
7671
7672 2004-11-17  Martin Baulig  <martin@ximian.com>
7673
7674         * class.c (mono_class_create_from_typedef): If a type parameter is
7675         inherited from an outer class, set its owner to that class.
7676
7677 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
7678
7679         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
7680           for (int*) written size. This fixes bug #69592.
7681
7682 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
7683
7684         * icall.c: Added IsAuthenticodePresnet internal call.
7685         * image.c|h: New function that check a MonoImage for an Authenticode
7686         signature in the certificate PE data directory.
7687         * security.c|h: New internal call to ask the runtime if an 
7688         Authenticode signature seems referenced in the PE header.
7689
7690 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
7691
7692         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
7693
7694         * reflection.c (mono_image_create_pefile): Free the assembly streams
7695         after writing out the assembly file.
7696
7697         * object.c (mono_runtime_run_main): Fix small memory leak.
7698
7699         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
7700         property access modifiers. Fixes #69389.
7701
7702 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
7703
7704         * domain.c, object.c, object-internals.h, domain-internals.h,
7705         object.h, marshal.c: keep dynamic code info per domain.
7706
7707 2004-11-15  Martin Baulig  <martin@ximian.com>
7708
7709         * class.c (mono_type_get_name_recurse): Put type arguments in
7710         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
7711         see bug #68387.
7712
7713 2004-11-15  Martin Baulig  <martin@ximian.com>
7714
7715         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
7716         (mono_class_setup_vtable): When computing `the_cname' for a
7717         generic instance, don't include the namespace since we'd otherwise
7718         add it twice.
7719
7720 2004-11-15  Martin Baulig  <martin@ximian.com>
7721
7722         * class.c (mono_class_create_generic): Changed return type to void.
7723         (mono_class_create_generic_2): New public function; setup
7724         `class->method', `class->field' and `class->interfaces' here
7725         instead of in mono_class_init().
7726
7727         * class.h (mono_class_create_generic): Moved to class-internals.h.
7728
7729 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
7730
7731         * reflection.c (mono_image_create_pefile): take a file HANDLE.
7732         rather than writing to memory, write to this file. Right now,
7733         we are just writting into a buffer, and copying that. However
7734         we can avoid the buffer later.
7735
7736         (mono_dynamic_stream_reset): new function
7737
7738         * icall.c, object-internals.h: update for the above.
7739
7740 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
7741
7742         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
7743         have been using gc'd memory. First it is slower, unlikely
7744         the comment in the source code said, secondly, it increases
7745         our footprint to do it in the gc.
7746
7747         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
7748         the method so that it does not have to copy to managed code.
7749
7750 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
7751
7752         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
7753
7754 2004-11-12  Martin Baulig  <martin@localhost>
7755
7756         * reflection.c (mono_image_create_token): Allow generic method
7757         definitions here, since they may appear in an `.override'; see
7758         gen-98/gen-99 for an example.
7759
7760 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
7761
7762         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
7763         #69365.
7764
7765         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
7766         descriptive.
7767
7768 2004-11-11  Martin Baulig  <martin@ximian.com>
7769
7770         * class.c (mono_class_setup_vtable): In an explicit interface
7771         implementation, the method name now includes the arity.
7772
7773 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
7774
7775         * object.c (mono_array_full_copy): Fix warning.
7776
7777 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
7778
7779         * appdomain.c: Removed look_for_method_by_name(). Use the new method
7780         mono_class_get_method_from_name() instead.
7781         
7782         * class-internals.h: Added two new types of wrappers. 
7783         Added MonoRemotingTarget enum. Added new trampoline function type, which
7784         takes an additional MonoRemotingTarget value as parameter, so it is
7785         possible to request a trampoline for a specific target.
7786         
7787         * class.c: Added new mono_class_get_method_from_name() method.
7788         
7789         * class.h: In MonoRemoteClass, we can have now to vtables, one for
7790         general remoting sinks and one specific for cross domain calls.
7791         
7792         * debug-helpers.c: Added new wrapper names.
7793         
7794         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
7795         of a remote class.
7796         
7797         * image.c: Porperly delete value objects form the remoting invoke hashtable.
7798         
7799         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
7800         with several other methods (mono_marshal_get_xappdomain_dispatch,
7801         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
7802         and others) can generate a fast remoting wrapper for cross domain calls.
7803         More information can be found in docs/remoting.
7804         Other changes: Removed mono_find_method_by_name, and used
7805         mono_class_get_method_from_name instead.
7806         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
7807         is stored in the remoting invoke hashtable.
7808         
7809         * marshal.h: published the new method for getting the xdomain wrapper,
7810         and also added a method for getting the adequate wrapper for a given
7811         method and target.
7812         
7813         * object-internals.h, object.c: Added a couple of methods for capying and
7814         cloning arrays.
7815         Modified mono_install_remoting_trampoline, which takes the new remoting
7816         trampoline that has a remoting target as parameter.
7817         mono_class_proxy_vtable now also takes a remoting target as parameter, and
7818         will return the most suitable vtable for the target.
7819         Added mono_remote_class_vtable, which returns the vtable of a remote class
7820         (which can be the normal remoting vtable or the xdomain vtable).
7821         
7822         * threads.c: the xdomain invoke and dispatch wrappers must also be
7823         protected against interruptions.
7824
7825 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7826
7827         * icall.c: use memmove in BlockCopyInternal when the source and
7828         destination arrays are the same.
7829
7830 2004-11-09  Martin Baulig  <martin@ximian.com>
7831
7832         * class-internals.h (MonoGenericContainer): Removed `method' and
7833         `signature', replaced them with `is_method' and `is_signature'
7834         flags.  Added `context'.
7835
7836         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
7837         instead of a `MonoGenericContainer *'.
7838
7839         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
7840         for dynamic type parameters.
7841         (mono_metadata_load_generic_params): Setup `container->context'.
7842
7843         * reflection.c (mono_reflection_setup_generic_class): Setup
7844         `tb->generic_container->context'.
7845         (do_mono_reflection_bind_generic_parameters): Use
7846         mono_class_inflate_generic_type() to correctly inflate types,
7847         rather than using our own hack just for MONO_TYPE_VAR.
7848
7849 2004-11-09  Martin Baulig  <martin@ximian.com>
7850
7851         * class.c (mono_class_inflate_generic_method): Small fix; don't
7852         crash here.
7853
7854         * icall.c
7855         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
7856         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
7857         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
7858         (ves_icall_Type_BindGenericParameters): Likewise.
7859         (ves_icall_Type_get_IsGenericInstance): Likewise.
7860         (ves_icall_Type_GetGenericParameterPosition): Likewise.
7861         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
7862         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
7863         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7864
7865 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
7866
7867         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
7868         assembly versions and public key tokens. Fixes #69113.
7869
7870 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
7871
7872         * metadata.c: fix bug introduced with the type cache changes
7873         on 2004-11-06.
7874
7875 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
7876
7877         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
7878         the MonoClass pointer instead of the token in exception clauses.
7879         * reflection.c: updates for the above and make the code not depend
7880         on the structure of MonoExceptionClause.
7881
7882 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
7883
7884         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7885         Add support for dynamic assemblies. Fixes #69114.
7886
7887         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
7888
7889 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
7890
7891         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
7892         since most only those methods use it. the code member of
7893         MonoMethodPInvoke was dead, so that can be removed too. Also,
7894         remove inline_count (again, not used), and move slot so that it
7895         can share bits with some other flags. This saves 8 bytes in the
7896         structure and gives us about 50 kb back for mcs helloworld.cs
7897
7898         * *.[ch]: Do naming changes for the above.
7899
7900         * loader.c (mono_method_get_header): Lazily init the header
7901         on first access.
7902         (mono_get_method_from_token): don't init the header here
7903         (mono_free_method): the header may never be allocated
7904
7905         Overall, this saves 150 kb of unmanaged allocations
7906         for mcs helloworld.cs. That accounts for 10% of the unmanaged
7907         memory at runtime.
7908         
7909         * loader.c, loader.h (mono_method_get_header): new accessor.
7910
7911         * *.[ch]: use the above method. Prepares us to lazily load
7912         the header.
7913
7914         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
7915         three warnings, which are actual bugs (see 69206).
7916
7917         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
7918         unused. Saves a cool 4 bytes / method.
7919
7920 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
7921
7922         * metadata.c (builtin_types): Add types for System.Object here.
7923         (mono_metadata_parse_type_full): Cache MonoType*'s that are
7924         for a class or valuetype from klass->this_arg or klass->byval_arg.
7925
7926         On mcs for a hello world, this gets us down from 21836 MonoType's
7927         to 14560.
7928
7929         (mono_metadata_free_type): Account for the above change.
7930
7931 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
7932
7933         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
7934         exception instead of asserting if name is null.
7935         (ves_icall_System_AppDomain_GetData): Ditto.
7936
7937 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
7938
7939         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
7940         EnumBuilder.
7941
7942         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
7943         Return NULL when the domain does not have entry_assembly set.
7944
7945         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
7946         Add a 'resource_modules' argument.
7947         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
7948
7949         * reflection.c (mono_reflection_create_runtime_class): Move setting
7950         of wastypebuilder here, so mono_get_type_object () returns a MonoType
7951         for enums too.
7952
7953         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
7954         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
7955         Throw an ArgumentNullException if 'ptr' is null.
7956
7957         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
7958         assemblies here. Fixes #69020.
7959
7960 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
7961
7962         * reflection.c (build_compressed_metadata): Fix the previous patch for
7963         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
7964         the stack.
7965
7966 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
7967
7968         * assembly.c (mono_assembly_names_equal): Allow a match if one of
7969         the cultures is false. Fixes #69090.
7970
7971         * reflection.c (build_compressed_metadata): Fix invalid memory read 
7972         detected by valgrind.
7973         
7974         * reflection.c (mono_reflection_get_type): Avoid triggering a 
7975         TypeResolve multiple times for the same type. Fixes #65577.
7976
7977 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
7978
7979         * marshal.c: Avoid using ldftn to call managed functions. It is
7980         much slower than just a call.
7981
7982         * reflection.c (mono_module_get_object): free the basename we
7983         allocate here from glib.
7984         
7985         * reflection.c (ensure_runtime_vtable): make sure to free
7986         overrides.  Also, we were allocating an array of MonoMethod not an
7987         array of MonoMethod*.
7988
7989         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
7990
7991         * image.c (mono_image_close): free image->guid here.
7992
7993 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
7994
7995         * reflection.c: Fix some spec conformance issues with the PE file
7996         structures so mcs compiled apps run on the Net 2.0 beta.
7997
7998 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
7999
8000         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8001         Implement this. Fixes #67264.
8002
8003         * debug-helpers.h debug-helpers.c marshal.c: Move 
8004         mono_find_method_by_name to debug-helpers.c.
8005
8006 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8007
8008         * object.c (mono_release_type_locks): type_initialization_hash is
8009         a GHashTable.
8010
8011         * reflection.c object.c object-internals.h: Fix warnings.
8012
8013         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8014         without accessors. Fixes #61561.
8015
8016         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8017         application base from the root domain if not set. Fixes #65641.
8018         (mono_runtime_init): Fix warning.
8019
8020 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8021
8022         * appdomain.c: call mono_thread_pool_init.
8023         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8024         of worker threads based on the number of CPUs and the environment
8025         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8026         for non-windows (windows) systems.
8027
8028 2004-10-27  Chris Toshok  <toshok@ximian.com>
8029
8030         * mono-debug-debugger.c (write_class): don't call mono_class_init
8031         here, as even with the check for (!klass->init_pending), we get
8032         into a situation where we're hitting cycles in class
8033         initialization.  Fixes #68816.
8034
8035 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8036
8037         * image.c: Avoid overwriting values in the loaded_images_hash when an
8038         assembly is loaded multiple times. Fixes #61152.
8039
8040         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8041         so multiple satellite assemblies for the same name can be loaded.
8042         Fixes #68259.
8043
8044         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8045         not NULL.
8046
8047         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8048         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8049
8050         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8051         pending finalizers are not invoked after the appdomain has been 
8052         unloaded. Fixes #67862.
8053
8054 2004-10-22  Martin Baulig  <martin@ximian.com>
8055
8056         * mono-debug-debugger.c
8057         (mono_debugger_runtime_invoke): Don't box valuetypes.
8058
8059 2004-10-22  Chris Toshok  <toshok@ximian.com>
8060
8061         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8062         don't hide private methods.
8063
8064 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8065
8066         * icall.c: Allows the runtime to "share" (when known) the public key
8067         token of an assembly. This avoid the need to recalculate the token 
8068         (from the public key) in managed code.
8069
8070 2004-10-21  Chris Toshok  <toshok@ximian.com>
8071
8072         * debug-helpers.c (append_class_name): argh, revert last patch.
8073         
8074 2004-10-21  Chris Toshok  <toshok@ximian.com>
8075
8076         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8077         not '/', so that it matches what the debugger uses to look up
8078         methods.
8079
8080 2004-10-21  Martin Baulig  <martin@ximian.com>
8081
8082         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8083         public method; this is called each time an exception is thrown and
8084         allows the debugger to use exception catch points.
8085
8086 2004-10-21  Martin Baulig  <martin@ximian.com>
8087
8088         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8089         the stack pointer and the exception object in some struct and pass
8090         that to the debugger.
8091
8092 2004-10-21  Chris Toshok  <toshok@ximian.com>
8093
8094         * mono-debug-debugger.c (do_write_class): add instance/static
8095         event support.  We don't expose "raise" or "other" yet.
8096         (event_is_static): new method.
8097
8098 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8099
8100         * mono-debug-debugger.c
8101         (mono_debugger_handle_exception): Remove
8102         bogus return value for fussy compilers.
8103
8104 2004-10-20  Martin Baulig  <martin@ximian.com>
8105
8106         * mono-debug-debugger.c
8107         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8108         (mono_debugger_handled_exception): Likewise.
8109
8110 2004-10-20  Martin Baulig  <martin@ximian.com>
8111
8112         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8113         MONO_DEBUGGER_EVENT_EXCEPTION.
8114
8115         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8116         public function to send the debugger a notification for an
8117         exception and inform it about a catch/finally clause.
8118
8119 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8120
8121         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8122         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8123         fix 2.95 build. 
8124
8125         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8126
8127 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8128
8129         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8130         marshalled as [In,Out]. Fixes #58325.
8131
8132 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8133
8134         * reflection.c (mono_method_body_get_object): Implement some fields.
8135
8136 2004-10-12  Martin Baulig  <martin@ximian.com>
8137
8138         * reflection.c (mono_reflection_bind_generic_parameters): Small
8139         fix, correctly retrieve our parent from a generic instance.
8140
8141 2004-10-12  Martin Baulig  <martin@ximian.com>
8142
8143         * metadata.c (mono_metadata_generic_param_equal): We always have
8144         an owner.
8145
8146         * class.c
8147         (mono_class_from_generic_parameter): We need to have an owner.
8148         (my_mono_class_from_generic_parameter): Likewise.
8149
8150         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8151         mono_reflection_create_generic_class() and added a new
8152         mono_reflection_setup_generic_class().  
8153         (mono_reflection_initialize_generic_param): If we're a nested
8154         generic type and inherited from the containing class, set our
8155         owner to the outer class.
8156
8157 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8158
8159         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8160
8161         * reflection.c (mono_method_body_get_object): New function to create
8162         a MethodBody object.
8163
8164         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8165
8166 2004-10-11  Martin Baulig  <martin@ximian.com>
8167
8168         * metadata.c (_mono_metadata_type_equal): Renamed to
8169         do_mono_metadata_type_equal() and made static.
8170
8171 2004-10-11  Martin Baulig  <martin@ximian.com>
8172
8173         * appdomain.c: Bump corlib version number to 28.
8174
8175 2004-10-10  Martin Baulig  <martin@ximian.com>
8176
8177         * class-internals.h
8178         (MonoGenericInst): Added `MonoGenericContainer *container'.
8179         (MonoGenericMethod): Likewise.
8180         (MonoGenericContext): Likewise.
8181         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8182
8183         * metadata.c
8184         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8185         (do_mono_metadata_parse_generic_inst): Likewise.
8186         (mono_metadata_parse_type_full): New public method.  This is the actual
8187         mono_metadata_parse_type() implementation - with an additional
8188         `MonoGenericContainer *' argument.
8189         (mono_metadata_parse_array_full): Likewise.
8190         (mono_metadata_parse_signature_full): Likewise.
8191         (mono_metadata_parse_method_signature_full): Likewise.
8192         (mono_metadata_parse_mh_full): Likewise.
8193         (mono_type_create_from_typespec): Likewise.
8194         (mono_metadata_interfaces_from_typedef_full): New public method;
8195         this is similar to the other _full() methods, but we take a
8196         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8197         (mono_metadata_parse_generic_param): Take an additional
8198         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8199         from that container.
8200         (mono_metadata_generic_param_equal): New static method to compare
8201         two type parameters.
8202         (_mono_metadata_type_equal): New static method; takes an
8203         additional `gboolean signature_only' argument - if true, we don't
8204         compare the owners of generic parameters.
8205         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8206         with a TRUE argument - do a signature-only comparision.
8207
8208         * loader.c: Use the new _full() methods and pass the
8209         MonoGenericContainer to them.
8210
8211         * object-internals.h (MonoReflectionTypeBuilder): Added
8212         `MonoGenericContainer *generic_container' field.
8213         (MonoReflectionMethodBuilder): Likewise.
8214
8215 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8216
8217         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8218         case initial images of dynamic assemblies.
8219
8220         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8221
8222         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8223
8224         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8225         length of event->other array.
8226         (typebuilder_setup_events): Ditto.
8227
8228         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8229         'assembly_by_name' and add an 'assemblies' list.
8230
8231         * assembly.h assembly.c: Add a new search hook for determining whenever
8232         an assembly is already loaded. Use this instead of searching in the
8233         loaded_assemblies list.
8234
8235         * domain.c appdomain.c: Implement the new search hook so loaded 
8236         assemblies are now scoped by appdomain. Fixes #67727.
8237
8238 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8239
8240         * threads.c (mono_thread_attach): Initialize synch_lock field so
8241         mono_thread_detach works again.
8242
8243         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8244         'lib' too. Fixes #63130.
8245
8246 2004-10-06  Jackson Harper  <jackson@ximian.com>
8247
8248         * culture-info-tables.h: regenerated.
8249
8250 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8251
8252         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8253         implemented by other interfaces in the result. Fixes #65764.
8254         
8255         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8256         Handle unloadable modules without crashing.
8257
8258         * image.c (load_modules): Revert the previous patch since modules must
8259         have a fixed index inside the array.
8260         
8261         * image.c (load_modules): Don't include native modules in the modules
8262         array.
8263
8264 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8265
8266         * reflection.h: Add param_defaults field.
8267
8268         * reflection.c: Add support for parameter defaults in dynamic methods.
8269         Fixes #64595.
8270
8271         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8272         an empty string when a type has no namespace. Fixes #64230.
8273
8274 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8275
8276         * tabledefs.h: Added "internal" security actions to support non-CAS
8277         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8278         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8279
8280 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8281
8282         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8283         constructor of abstract class. Fixes #61689.
8284
8285 2004-10-04  Martin Baulig  <martin@ximian.com>
8286
8287         * class-internals.h (MonoGenericContainer): New type.
8288         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8289         `MonoGenericContainer *generic_container'.
8290         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8291         `MonoGenericContainer *generic_container'.
8292
8293         * metadata.c (mono_metadata_load_generic_params): Return a
8294         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8295         removed the `num' argument.
8296
8297 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8298
8299         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8300         for dynamic images.
8301
8302         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8303         machine fields.
8304
8305         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8306
8307         * reflection.c: Save pe_kind and machine values into the generated
8308         image file.
8309
8310         * appdomain.c: Bump corlib version number.
8311
8312         * object-internals.h: Reorganize layout of LocalBuilder.
8313
8314         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8315         New helper function.
8316
8317         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8318         created MonoType for dynamic types. Fixes #66180.
8319
8320 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8321
8322         * threadpool.c: the ares hashtable needs a critical section around it.
8323         this prevents some nasty segfaults
8324
8325 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8326
8327         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8328         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8329         bug 67324).
8330         
8331 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8332
8333         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8334         
8335 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8336
8337         * image.c: Always canonicalize image file names, to avoid loading
8338         the same assembly twice when referenced using a relative path.
8339
8340 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8341
8342         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8343
8344         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8345
8346         * marshal.c: Fix warnings.
8347
8348 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8349
8350         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8351         attempting to marshal the delegate_trampoline as the method_addr.
8352         This patch has a static hashtable of marshalled delegates so that 
8353         we can map delegate_trampoline addresses back to delegates.  This
8354         allows a delegate passed to managed code to be passed back into native
8355         code.  Fixes #67039
8356
8357 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8358
8359         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8360
8361         * reflection.c (method_encode_code): Align method headers properly.
8362         Fixes #66025.
8363
8364 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8365
8366         * marshal.c: In the runtime invoke wrapper, reset the abort
8367         exception if it is cached. This avoids the automatic rethrowal of 
8368         the exception after the catch of the wrapper. Also check for pending
8369         interruptions before calling the managed method. This is done using
8370         the new method emit_thread_force_interrupt_checkpoint, since the
8371         normal checkpoint method is ignored when running the invoke wrapper.
8372         * object.c: If the abort exception is rethrown, set the abort_exc
8373         field of the thread, so it will be rethrown aftere every catch.
8374         * threadpool.c: Only run an interruption checkpoint if what has been
8375         requested is a stop of the thread (aborts will be ignored).
8376         * threads.c: By default, a thread will now never be interrumped while
8377         running the runtime invoke wrapper (this ensures that runtime_invoke
8378         will always return to the caller if an exception pointer is provided).
8379         There is a new special method mono_thread_force_interruption_checkpoint()
8380         to force an interruption checkpoint even if running a protected
8381         wrapper, which is used by the same runtime invoke wrapper to do a check
8382         at a safe point.
8383
8384 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8385
8386         * object.c, object-internals.h: Implemented mono_release_type_locks,
8387         which releases the cctor locks held by a thread.
8388         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8389         by a thread. Added mono_thread_exit() method to be used to safely stop
8390         a thread.
8391
8392 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8393
8394         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8395         Move null check before dereference.  Avoid indexing beyond the end
8396         of the 'modules' array.
8397
8398 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8399
8400         * metadata-internals.h (MonoImage): Add module_count field.
8401         * image.c (load_modules): Set image->module_count.
8402         (mono_image_load_file_for_image): Use image->module_count.
8403         * reflection.c (mono_image_load_module): Append to image->modules array 
8404         of dynamic assembly.
8405         (mono_module_get_object): Fix loop to actually increment index.
8406         Use image->module_count.
8407         * assembly.c (mono_assembly_load_references): Use image->module_count.
8408         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8409         Likewise.
8410
8411 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8412
8413         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8414         Avoid assert on generic types.
8415
8416 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8417
8418         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8419
8420         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8421
8422         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8423         function to convert a MarshalSpec structure to its managed counterpart.
8424
8425         * reflection.c: Fix warnings.
8426         
8427         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8428         field.
8429
8430         * icall.c (mono_create_icall_signature): Fix build.
8431
8432 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8433
8434         * icall.c: Add MakePointType icall.
8435
8436         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8437         warnings.
8438
8439 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8440
8441         * threadpool.c: reuse allocated slots in the queue.
8442
8443 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8444
8445         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8446
8447         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8448
8449         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8450         previous change.
8451
8452         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8453         ThrowOnUnmappableChar.
8454
8455         * icall.c (ves_icall_Type_GetPacking): New icall.
8456
8457 2004-09-24  Martin Baulig  <martin@ximian.com>
8458
8459         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8460
8461 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8462
8463         * appdomain.c:
8464         (mono_domain_set): allow setting a domain that is being unloaded.
8465         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8466         being unloaded.
8467
8468 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8469
8470         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8471         the GetCustomAttributes icall.
8472
8473 2004-09-23  Martin Baulig  <martin@ximian.com>
8474
8475         * object-internals.h (MonoReflectionGenericParam): Replaced
8476         'has_ctor_constraint', `has_reference_type' and `has_value_type'
8477         with `guint32 attrs'.
8478
8479 2004-09-23  Martin Baulig  <martin@ximian.com>
8480
8481         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
8482
8483 2004-09-23  Martin Baulig  <martin@ximian.com>
8484
8485         * object-internals.h (GenericParameterAttributes): New enum.
8486
8487 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8488
8489         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
8490         
8491         * class.c (init_events): Fill out event->other field.
8492
8493         * class.c: Fix warnings.
8494
8495         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
8496
8497 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
8498
8499         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
8500         walk which doesn't supply the IL offset.
8501
8502 2004-09-22  Martin Baulig  <martin@ximian.com>
8503
8504         * reflection.c (mono_reflection_setup_internal_class): If we're
8505         System.ValueType, System.Object or System.Enum, set
8506         `klass->instance_size' and create the vtable.
8507         (mono_reflection_create_internal_class): If we're an enum type,
8508         get the base class from our current corlib.
8509
8510 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
8511
8512         * reflection.h (MonoResolveTokenError): New type.
8513
8514         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
8515         icall.
8516
8517         * icall.c: Add an 'error' argument to the ResolveToken icalls.
8518
8519 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
8520
8521         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
8522         Support also calling constructors, but only for already allocated objects.
8523
8524 2004-09-17  Geoff Norton <gnorton@customerdna.com>
8525
8526         * reflection.c (type_get_qualified_name): If the klass is null
8527         return the typename to avoid a NullRefEx.
8528         (encode_cattr_value): Get the qualified name of the boxed type,
8529         not the underlying enumtype.  Fixes #62984.
8530
8531 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
8532
8533         * marshal.c: Fix problems with previous checkin.
8534
8535 2004-09-21    <vargaz@freemail.hu>
8536
8537         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
8538         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
8539
8540         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
8541
8542 2004-09-21  Geoff Norton <gnorton@customerdna.com>
8543
8544         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
8545         should only return a type for pointers, arrays, and passbyref types.
8546         Fixes bug #63841.
8547
8548 2004-09-21  Martin Baulig  <martin@ximian.com>
8549
8550         * domain.c (mono_debugger_check_runtime_version): New public
8551         function.
8552
8553         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
8554
8555 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
8556
8557         * reflection.c: Added missing sort to the declarative security 
8558         attributes table. MS implementation stops seeing the attributes if the
8559         token number regress in the table (as shown by ildasm and permview).
8560
8561 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
8562
8563         * object-internals.h (MonoReflectionModule): Add 'token' field.
8564         
8565         * reflection.c (mono_reflection_get_token): Add support for Module
8566         and Assembly.
8567         (mono_module_get_object): Set 'token' field.
8568         (mono_module_file_get_object): Set 'token' field.
8569
8570         * icall.c: Add new Assembly and Module icalls.
8571
8572         * appdomain.c: Bump corlib version.
8573
8574 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
8575
8576         * loader.h loader.c class.h class.c: Add helper functions for obtaining
8577         tokens of metadata objects.
8578
8579         * reflection.h reflection.c (mono_reflection_get_token): New function
8580         to obtain the token of a metadata object.
8581
8582         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
8583
8584 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
8585
8586         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
8587         
8588         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
8589
8590 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
8591
8592         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
8593         * object-internals.h: Added 3 MonoArray* members to MonoReflection
8594         AssemblyBuilder to access the permissions set in the class lib.
8595         * reflection.c: Added security attributes encoding step in 
8596         mono_image_build_metadata.
8597         * tabledefs.h: Added new security actions defined in 2.0:
8598         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
8599
8600 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
8601
8602         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
8603         macro parameter.
8604
8605 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
8606  
8607         * locales.c: nullify the ICU_collator member of CompareInfo when it is
8608           finalized. There where random SIGSEVs at program termination, when
8609           an object being finalized was trying to do a string comparison and
8610           the current culture was already finalized.
8611  
8612 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8613
8614         * threads.c: call thread_cleanup before finishing the thread if we get
8615         there.
8616
8617 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
8618
8619         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
8620         assemblies from the parent. Fixes #65665.
8621
8622 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
8623
8624         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
8625         modifiers.
8626
8627 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
8628
8629         * reflection.h: add prototype for mono_get_dbnull_object
8630         * reflection.c: add prototypes for get_default_param_value_blobs 
8631         and mono_get_object_from_blob for fussier compilers
8632
8633 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
8634  
8635         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
8636         false deadlock checks in class initialization.
8637  
8638 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
8639
8640         * image.c (mono_image_addref): Fix comment.
8641
8642         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
8643         possible.
8644
8645 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
8646
8647         * reflection.c (mono_param_get_objects): Modified to return
8648         ParameterInfo.DefaultValue object.
8649
8650         (get_default_param_value_blobs):
8651         (mono_get_object_from_blob):
8652         (mono_get_dbnull_object): New helper routines. 
8653
8654         * object.c (mono_get_constant_value_from_blob): New helper routine
8655         carved out from get_default_field_value ()
8656
8657         * object-internals.h (mono_get_constant_value_from_blob): Added
8658         function declaration.
8659
8660 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
8661
8662         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
8663         referenced assemblies. Fixes #62135.
8664
8665         * exception.h exception.c (mono_get_exception_file_not_found2): New
8666         helper function.
8667
8668 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
8669
8670         * class.h class.c: Add mono_type_get_underlying_type ().
8671
8672 2004-09-09  Geoff Norton <gnorton@customerndna.com>
8673
8674         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
8675         Fix GetTypes() to support dynamically created assemblies.
8676
8677 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
8678
8679         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
8680         
8681         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
8682         previous patch.
8683
8684         * reflection.h reflection.c loader.c: Allow dynamic construction of
8685         pinvoke methods. Fixes #65571.
8686         
8687         * reflection.c (mono_reflection_get_type): Revert previous change since
8688         it causes regressions.
8689
8690 2004-09-08  Martin Baulig  <martin@ximian.com>
8691
8692         * class.c (class_compute_field_layout): Don't call
8693         mono_class_layout_fields() for open generic instances.
8694
8695 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
8696         * threads.c appdomain.c: fix typo in GC macro
8697
8698 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8699
8700         * threads.c: don't call mono_thread_detach() in start_wrapper(),
8701         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
8702
8703 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
8704
8705         * image.c (mono_image_close): Applied patch from 
8706         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
8707         assembly is loaded multiple times from data.
8708         
8709         * image.c (mono_image_open): Fix warning.
8710
8711 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8712
8713         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
8714         once. Fixes #58334.
8715         
8716         * reflection.c (mono_reflection_create_runtime_class): Initialize
8717         klass->nested_classes. Fixes #61224.
8718
8719 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8720
8721         * threads.c: sched_yield() on exit, to allow threads to quit.
8722
8723 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8724
8725         * object.c (mono_unhandled_exception): Remove leftover debug code.
8726
8727 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
8728
8729         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
8730
8731 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8732
8733         * marshal.c (emit_marshal_array): Really null terminate string arrays.
8734         
8735         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
8736
8737 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8738
8739         * marshal.c (emit_marshal_array): Null terminate string arrays.
8740         
8741         * marshal.c (raise_auto_layout_exception): Fix warning.
8742
8743         * reflection.c (mono_param_get_objects): Initialize the default value
8744         with DBNull.Value, not null. Fixes #62123.
8745
8746 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
8747
8748         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
8749         throw an exception with a cute explanation.
8750
8751 2004-09-06  Dick Porter  <dick@ximian.com>
8752
8753         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
8754         Close the new process's thread handle, as we don't use it.  The
8755         handle stays around forever otherwise.
8756
8757 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8758
8759         * object.c (arith_overflow): Fix warning.
8760
8761         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
8762         calling conventions in method refs. Fixes #65352.
8763
8764         * reflection.c: Fix warnings.
8765
8766 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
8767
8768         * icall.c: Add a new icall for Array.Clear
8769
8770 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
8771
8772         * object.c: When allocating an array, we have to throw
8773         an overflow exception if any of the lengths are < 0.
8774
8775 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8776
8777         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
8778         properly. Also move implementation of string array marshalling to 
8779         managed code. Fixes #42316.
8780
8781 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8782
8783         * assembly.c: provide more information when loading an assembly fails.
8784
8785 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8786
8787         * filewatcher.c: don't expect the development fam package to be
8788         installed.
8789
8790 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
8791
8792         * marshal.c: Make a copy of the signature cookie since it will be
8793         freed by the caller.
8794         
8795         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
8796
8797         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
8798
8799         * metadata.c (mono_metadata_free_marshal_spec): New function to free
8800         marshal specs.
8801
8802         * marshal.c: More refactoring.
8803         
8804         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
8805         smaller functions.
8806
8807 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
8808
8809         * object.c: In mono_message_invoke, fill the output parameter array after
8810           calling the managed method (it was done before the call). This fixes
8811           bug #59299.
8812
8813 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
8814
8815         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
8816         as well.
8817
8818 2004-09-02  Martin Baulig  <martin@ximian.com>
8819
8820         * class.c (mono_class_instance_size): Don't allow generic type
8821         definitions or open generic instances.
8822         (mono_class_array_element_size): If we're a value type, call
8823         mono_class_instance_size() on the original class.
8824
8825         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
8826         handle generic instances.
8827
8828         * mono-debug-debugger.c (write_type): Handle generic instances
8829         like classes.
8830
8831 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
8832
8833         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
8834         the allocation request fails. Fixes #65089.
8835
8836         * object.c (mono_runtime_free_method): Do not call mono_free_method.
8837         
8838         * object.c (mono_runtime_free_method): New function to free a dynamic
8839         method.
8840
8841         * marshal.c (mono_delegate_free_ftnptr): New function to free the
8842         delegate trampoline.
8843
8844         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
8845         with hasthis as dynamic,
8846
8847         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
8848
8849         * domain.c (mono_jit_info_table_remove): New function to remove an
8850         entry from the jit info table.
8851
8852         * class-internals.h (MonoMethod): Add 'dynamic' field.
8853
8854         * loader.c: Fix warnings.
8855
8856 2004-09-01  Martin Baulig  <martin@ximian.com>
8857
8858         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
8859         instead of mono_debugger_lock() because the latter one is a no-op
8860         unless running in the debugger.
8861
8862 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
8863
8864         * class.c (class_compute_field_layout): Classes with auto-layout or
8865         reference fields are not blittable.
8866         
8867 2004-09-01  Dick Porter  <dick@ximian.com>
8868
8869         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
8870         mono_image_get_filename() to get the assembly location.
8871
8872         * icall.c:
8873         * metadata.h: Fix compile warnings
8874
8875 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
8876
8877         * class.c (class_compute_field_layout): System.Object is blittable.
8878
8879         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
8880         as in/out. Fixes #59909.
8881
8882 2004-09-01  Martin Baulig  <martin@ximian.com>
8883
8884         * metadata.h (MONO_TYPE_ISREFERENCE): Call
8885         mono_metadata_generic_inst_is_valuetype() if we're a generic
8886         instance to check whether our underlying type is a reference type.
8887
8888 2004-09-01  Martin Baulig  <martin@ximian.com>
8889
8890         * metadata.c (mono_type_size): If we're a generic instance, call
8891         mono_class_value_size() for value types.
8892
8893 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
8894
8895         * marshal.c: Implement more custom marshalling functionality. Fixes
8896         #64915.
8897
8898 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8899
8900         * mono-debug.c, debug-mono-symfile.c: add some locking love.
8901
8902 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
8903
8904         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
8905
8906         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
8907
8908         * icall.c: Fix some warnings.
8909
8910         * threads.c (abort_appdomain_thread): Fix unref errors.
8911         (mono_thread_current): Fix THREAD_DEBUG define.
8912
8913 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
8914
8915         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
8916
8917         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
8918
8919 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
8920
8921         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
8922         string arrays.
8923
8924 2004-08-28  Martin Baulig  <martin@ximian.com>
8925
8926         * metadata.c
8927         (mono_metadata_generic_inst_is_valuetype): New public function.
8928
8929         * metadata.h (MONO_TYPE_ISSTRUCT): Call
8930         mono_metadata_generic_inst_is_valuetype() if we're a generic
8931         instance to check whether our underlying type is a valuetype.
8932
8933 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
8934
8935         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
8936         #63768.
8937
8938 2004-08-25  Martin Baulig  <martin@ximian.com>
8939
8940         * loader.c (mono_get_method_from_token): Abstract methods can also
8941         be generic and thus have type parameters.
8942
8943         * metadata-internals.h
8944         (MonoDynamicImage): Added `GPtrArray *gen_params'.
8945
8946         * reflection.c (mono_image_get_generic_param_info): Don't create a
8947         metadata row, just add an entry to the `gen_params' array.
8948         (build_compressed_metadata): Sort the `gen_params' array and then
8949         actually create the metadata.
8950
8951 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8952
8953         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
8954
8955 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
8956
8957         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
8958
8959 2004-08-24  Martin Baulig  <martin@ximian.com>
8960
8961         * class.cs (mono_class_is_subclass_of): Like an interface, a
8962         generic instance also derives from System.Object.
8963
8964 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
8965
8966         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
8967         custom modifiers to be in any order. Fixes #61990.
8968
8969 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
8970
8971         * object.c: Register mono_object_new_fast icall.
8972         
8973         * object.c (mono_class_get_allocation_ftn): Return to calling
8974         mono_object_new_fast, since it seems faster to compute the object 
8975         size in unmanaged code than passing it as a parameter.
8976
8977         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
8978
8979         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
8980         this function with Boehm as the oom handler, so we don't have to check
8981         the result of GC_malloc.
8982
8983         * object.c: Remove checks for oom.
8984
8985         * object.h object.c (mono_class_get_allocation_ftn): New function to
8986         return the icall which can be used to allocate an instance of a given
8987         class. 
8988
8989         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
8990
8991         * class-internals.h: Add 'enabled' field.
8992
8993 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
8994
8995         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
8996
8997 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
8998         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
8999         value 0x0010.
9000
9001 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9002
9003         * appdomain.c: use the Tls function for appdomain too,
9004         at Zoltan's request. Actually return in mono_context_get
9005
9006         * appdomain.c, profiler.c, threads.c: use __thread
9007
9008 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9009
9010         * appdomain.c threads.c: Call GC_CreateThread on windows.
9011
9012         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9013         multiple libraries since this don't work on windows.
9014
9015 2004-08-18  Martin Baulig  <martin@ximian.com>
9016
9017         * class-internals.h
9018         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9019         MonoMethodHeader.
9020
9021         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9022         MonoMethodNormal since we also need it for abstract and interface
9023         methods.
9024
9025         * reflection.c
9026         (build_compressed_metadata): Sort the GenericParam table.
9027         (mono_image_create_token): Added `gboolean create_methodspec'
9028         argument; this is false when generating a MethodImpl token.
9029         (reflection_methodbuilder_to_mono_method): Abstract and interface
9030         methods may also have generic parameters.
9031
9032 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9033
9034         * appdomain.c: thread local alloc
9035
9036 2004-08-17  Martin Baulig  <martin@ximian.com>
9037
9038         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9039
9040         * icall.c
9041         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9042         argument.
9043
9044         * class.c (mono_type_get_full_name): New public function.
9045         (mono_type_get_name): Don't include the type arguments.
9046
9047 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9048
9049         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9050         for inclusion into the mono executable.
9051
9052 2004-08-16  Martin Baulig  <martin@ximian.com>
9053
9054         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9055         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9056
9057 2004-08-14  Martin Baulig  <martin@ximian.com>
9058
9059         * class.c (dup_type): Also copy the `byref' field.
9060
9061 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9062
9063         * reflection.c (create_dynamic_mono_image): Revert the last change 
9064         since it breaks bootstrap.
9065
9066 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9067
9068         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9069
9070         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9071         not free them with g_free.
9072
9073 2004-08-11  Martin Baulig  <martin@ximian.com>
9074
9075         * reflection.c (mono_reflection_setup_internal_class): Also call
9076         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9077
9078 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9079
9080         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9081         called during default (first) AppDomain creation. Keep track of
9082         Evidence when loading assemblies.
9083
9084 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9085
9086         * opcodes.c, opcodes.h: reduce runtime relocations.
9087
9088 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9089
9090         * culture-info.h, locales.c: fixes and chages to sue the new
9091         optimized format of the locale data.
9092         * culture-info-tables.h: regenerated.
9093
9094 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9095         
9096         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9097
9098 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9099
9100         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9101         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9102         * domain-internals.h: icall declaration.
9103         * icall.c: icall registration.
9104         * object-internals.h: New fields in MonoAssembly for CAS.
9105
9106 2004-08-05  Duncan Mak  <duncan@ximian.com>
9107
9108         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9109         CEE_LDELEM_ANY.
9110
9111 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9112
9113         * reflection.c: fix to deal with object[] arrays in custom ctors
9114         (bug #62550).
9115
9116 2004-08-05  Martin Baulig  <martin@ximian.com>
9117
9118         * class.c (mono_class_array_element_size): Added support for
9119         generic instances and correctly handle "recursive" types.
9120
9121 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9122
9123         * assembly.c: Fix warnings.
9124
9125 2004-08-04  Martin Baulig  <martin@ximian.com>
9126
9127         * class.c
9128         (mono_type_get_name_recurse): Added `gboolean include_arity'
9129         argument specifying whether or not we should include the generic
9130         arity in the type name.
9131         (_mono_type_get_name): New static function.
9132         (mono_class_setup_vtable): If we're a generic instance, don't
9133         include the generic arity in the names of explicit method
9134         implementations.        
9135
9136 2004-08-03  Martin Baulig  <martin@ximian.com>
9137
9138         * class.c (mono_type_get_name_recurse): Enclose the generic type
9139         arguments in `<', '>'.
9140
9141 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9142
9143         * gc.c: make GC warning messages use the trace API, they are just
9144         noise to most of the users.
9145
9146 2004-08-03  Martin Baulig  <martin@ximian.com>
9147
9148         * debug-mono-symfile.c (read_string): Correctly read the string.
9149
9150 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9151
9152         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9153         
9154         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9155         icalls.
9156         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9157
9158 2004-07-30  Martin Baulig  <martin@ximian.com>
9159
9160         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9161         Reflect latest symbol writer changes.   
9162
9163 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9164
9165         * object.c: always create an object if null is passed
9166         to Invoke() where a valuetype is expected.
9167
9168 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9169
9170         * marshal.c (mono_marshal_init): make managed
9171         signatures match native ones better for 64bits.
9172
9173 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9174
9175         * appdomain.c: hack to build correctly the private bin path on windows.
9176         Fixes bug #61991.
9177
9178 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9179
9180         * assembly.c: Load mscorlib from the correct framework directory
9181           (mono/<version>/mscorlib.dll).
9182         * appdomain.h: Added prototypes for new functions.
9183         * internals.h: Added some prototypes.
9184         * domain.c: When initializing the runtime, get from the executable and
9185           the configuration files the runtime version that the app supports.
9186           Added support methods for reading app.exe.config. Added list of versions
9187           supported by the JIT. Added two new methods: mono_init_from_assembly,
9188           which initializes the runtime and determines the required version from
9189           the provided exe file, and mono_init_version, which initializes
9190           the runtime using the provided version.
9191         * icall.c: Get machine.config from version-specific directory.
9192         * reflection.c: When generating an image, embed the version number
9193           of the current runtime.
9194
9195 2004-07-28  Dick Porter  <dick@ximian.com>
9196
9197         * socket-io.c
9198         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9199         returned sockaddr size before creating the remote address object.
9200         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9201         61608.
9202
9203 2004-07-28  Dick Porter  <dick@ximian.com>
9204
9205         * locales.c (string_invariant_compare_char): Fix invariant char
9206         compares between upper and lower cases.  Fixes bug 61458.
9207
9208 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9209         
9210         * marshal.c: actually cache stelem.ref wrappers.
9211         
9212 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9213
9214         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9215         sections and remove the mono_cli_rva_map () function.
9216
9217 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9218
9219         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9220         by Geoff Norton (<gnorton@customerdna.com>).
9221
9222 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9223
9224         * class.c: fix class loads for pointer types (typeof(int) !=
9225         typeof(int*)).
9226
9227 2004-07-27  Martin Baulig  <martin@ximian.com>
9228
9229         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9230         reading the debugging information from an external ".mdb" file.
9231
9232 2004-07-24  Martin Baulig  <martin@ximian.com>
9233
9234         * reflection.c (mono_image_get_type_info): Only write a class
9235         layout entry if we actually have a size or a packing size.
9236
9237 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9238
9239         * reflection.c (type_get_fully_qualified_name): 
9240         insert cast to get type checking of ?: with non-gcc compilers
9241
9242 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9243
9244         * rand.c: use g_getenv for both lookups of
9245         MONO_EGD_SOCKET
9246
9247 2004-07-17  Martin Baulig  <martin@ximian.com>
9248
9249         * reflection.c (mono_reflection_bind_generic_method_parameters):
9250         Set `gmethod->reflection_info'.
9251
9252 2004-07-17  Martin Baulig  <martin@ximian.com>
9253
9254         * class.c (mono_class_create_from_typedef): Insert the newly
9255         created class into the hash table before computing the interfaces
9256         since we could be called recursively.
9257
9258 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9259
9260         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9261         function to implement stelem.ref in managed code
9262         * class-internals.h, debug-helpers.c: a new wrapper type
9263         for the above.
9264
9265 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9266
9267         * gc.c: allow GC handles to work even when no GC is compiled in.
9268         Fix part of bug #61134 (GetAddrOfPinnedObject).
9269
9270 2004-07-13  Peter Williams  <peter@newton.cx>
9271  
9272         * process.c (complete_path): Make sure we don't attempt to execute
9273         directories.
9274  
9275 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9276
9277         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9278           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9279           and will add/subtract the hour if needed
9280
9281 2004-07-12  Martin Baulig  <martin@ximian.com>
9282
9283         * reflection.c (mono_field_get_object): If we have
9284         `field->generic_info', take the attributes from
9285         `field->generic_info->generic_type'.    
9286
9287 2004-07-12  Martin Baulig  <martin@ximian.com>
9288
9289         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9290         This function must be called before initializing the runtime.
9291         (mono_debug_init_1): New function; call this after initializing
9292         the runtime, but before loading the assembly.  It tells the
9293         debugger to load corlib and the builtin types.
9294
9295         * mono-debug-debugger.c: Did some larger changes in the debugging
9296         code; support recursive class declarations, make sure we actually
9297         add all classes.
9298
9299 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9300
9301         * debug-helpers.c: undo my previous patch and fixed the real issue in
9302         ../mini/exceptions-x86.c
9303
9304 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9305
9306         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9307         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9308         called from other .cctors.
9309
9310 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9311
9312         * loader.c: Removed the mono_loader_wine_init hack now that we are
9313         doing a managed version of Windows.Forms.
9314
9315 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9316
9317         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9318         threadpool.c, threads.c: remove static data from rootset.
9319
9320 2004-07-09  Dick Porter  <dick@ximian.com>
9321
9322         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9323         Don't do any more processing if the matched length was 0.  It was
9324         increasing the size of the string before.  Fixes bug 61167.
9325
9326 2004-07-09  Dick Porter  <dick@ximian.com>
9327
9328         * socket-io.h:
9329         * socket-io.c
9330         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9331         Add support for SO_PEERCRED if its available.
9332
9333 2004-07-09  Peter Bartok <pbartok@novell.com>
9334         * loader.c: winelib.exe.so error message is now only displayed if
9335         MONO_DEBUG is set. To help us avoid questions when people are trying
9336         out the new Managed.Windows.Forms.
9337
9338 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9339
9340         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9341         for isinst and castclass wrappers.
9342
9343         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9344         to libmetadata from the JIT, so they could be used by the marshalling
9345         code and the interpreter.
9346
9347         * marshal.c: Register marshalling related JIT icalls here instead of
9348         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9349         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9350
9351         * metadata.h: Remove unneeded marshalling conversions.
9352
9353         * opcodes.c: Update for new opcodes.
9354         
9355 2004-07-08  Martin Baulig  <martin@ximian.com>
9356
9357         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9358         (mono_debug_get_domain_data): Make this function static.
9359
9360 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9361
9362         * gc.c, object.h: add nice GC handle API for embedders.
9363
9364 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9365
9366         * reflection.c: more changes for the new api
9367
9368         * object.c: When we reflect on a field w/ a constant value, it
9369         will not have a memory location, so we must access metadata. Also,
9370         allow easier reading of strings so that we can read them from
9371         the constant data.
9372
9373         * class.c (mono_class_layout_fields): no need for literal fields here.
9374
9375         * class-internals.h: api changes for const fields
9376
9377         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9378
9379 2004-07-06  Martin Baulig  <martin@ximian.com>
9380
9381         * mono-debug.h: Increment version number to 44.
9382
9383         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9384         now a gpointer, rewrote this whole method.
9385
9386         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9387         function.  Add information about the wrapper in a new "misc table".
9388
9389         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9390         for the new misc table.
9391
9392 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9393
9394         * metadata-internals.h image.c: Add a cache for helper signatures.
9395
9396         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9397
9398 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9399
9400         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9401         delegates from a delegate. Fixes #61033.
9402         
9403         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9404         marshalling of stringbuilder arrays. Fixes #59900.
9405
9406 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9407
9408         * icall.c: Add EnumBuilder:setup_enum_type icall.
9409
9410 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9411
9412         * icall.c: Added a new icall for the property version of
9413         OffsetOfStringData.
9414
9415 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9416
9417         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9418         it has a constant size across platforms.
9419
9420         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9421         stack trace.
9422
9423 2004-06-29  Martin Baulig  <martin@ximian.com>
9424
9425         * mono-debug.c (mono_debug_add_method): Protect the whole function
9426         in mono_debugger_lock(), not just parts of it.
9427
9428 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9429
9430         * reflection.c: make sure padding bytes in heaps are zeroed.
9431
9432 2004-06-24  David Waite  <mass@akuma.org>
9433
9434         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9435         image.c, loader.c, locales.c, marshal.c, metadata.c,
9436         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9437         string-icalls.c, threads.c: change to C90-style comments from C99 /
9438         C++ -style
9439
9440 2004-06-24  Dick Porter  <dick@ximian.com>
9441
9442         * threads.c
9443         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9444         return createdNew.  Fixes bug 60412.
9445
9446         * threads-types.h: 
9447         * icall.c: Add createdNew parameter to CreateMutex icall
9448
9449 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9450
9451         * reflection.c, object-internals.h: save default value in params.
9452
9453 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9454
9455         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9456         no need to build a new path combining that with the application base.
9457         Fixes bug #60442.
9458
9459 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9460
9461         * reflection.c: fixed minor standard compliance issues.
9462
9463 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9464
9465         * reflection.c: fixed issue with encoding some custom attributes
9466         (arrays in properties and fields, bug #60411).
9467
9468 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9469
9470         * reflection.c: fix start address when copying the public key token.
9471
9472 2004-06-23  Martin Baulig  <martin@ximian.com>
9473
9474         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
9475         the `exc' object in a static object to put it into the GC's root set.
9476
9477 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
9478
9479         * reflection.c: make mono_reflection_setup_internal_class ()
9480         callable a second time to setup a new parent class.
9481
9482 2004-06-23  Dick Porter  <dick@ximian.com>
9483
9484         * threads.c: Check for WAIT_IO_COMPLETION return values.
9485
9486 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
9487
9488         * appdomain.c: Removed the g_free on the public key token. Now copy 
9489         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
9490         * assembly.c: Added public key token string value when loading 
9491         assemblies. Fix bug #60439.
9492         * icall.c: Added missing informations (like public key) in 
9493         GetReferencedAssemblies. Fix #60519.
9494         * image.h: Changed definition for public key token from const char*
9495         public_tok_value to guchar public_key_token [17];
9496         * reflection.c: Updated for changes to public key token.
9497
9498 2004-06-22  Lluis Sanchez Gual
9499
9500         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
9501         for the field in base classes.
9502
9503 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9504
9505         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
9506         mark headers as not supported, they are installed only for use by the
9507         debugger.
9508
9509 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
9510
9511         * *.c, *.h: avoid namespace pollution in public headers.
9512
9513 2004-06-21  Martin Baulig  <martin@ximian.com>
9514
9515         * exception.c (mono_get_exception_security): It's in
9516         "System.Security", not in "System".
9517
9518         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
9519         the exception classes.
9520
9521 2004-06-21  Martin Baulig  <martin@ximian.com>
9522
9523         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
9524         Protect the exception object from being finalized.
9525
9526 2004-06-21  Martin Baulig  <martin@ximian.com>
9527
9528         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
9529         public function.
9530
9531 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
9532
9533         * reflection.c: Load the assembly in mono_reflection_type_from_name,
9534         if it was not loaded before. Fix parts of #60439.
9535
9536 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
9537
9538         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
9539         code that was broken since Ben's change: wrappers are now
9540         dependent on the method signature only again.
9541
9542 2004-06-21  Martin Baulig  <martin@ximian.com>
9543
9544         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
9545         added interface support.
9546
9547 2004-06-21  Martin Baulig  <martin@ximian.com>
9548
9549         * class.c (mono_vtable_get_static_field_data): New public method.
9550
9551 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
9552
9553         * filewatcher.c : Windows build fix to be compliant with API changes.
9554
9555 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
9556
9557         * class.h, class.c: more accessors.
9558         * metadata.h, metadata.c: prepare for hiding MonoType and
9559         MonoMethodSignature: people should use the accessors from now on
9560         outside of the tree.
9561
9562 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
9563
9564         * *.c, *.h: more API cleanups.
9565
9566 2004-06-18  Jackson Harper  <jackson@ximian.com>
9567
9568         * assembly.c: Trace loading assemblies.
9569         * loader.c: Trace loading native libraries.
9570         * mono-config.c: Trace loading config files.
9571         
9572 2004-06-18  Dick Porter  <dick@ximian.com>
9573
9574         * locales.c: Tell ICU the lengths of strings, it can cope with
9575         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
9576
9577 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
9578
9579         * image.c: swapped name/filename;
9580
9581 2004-06-18  Martin Baulig  <martin@ximian.com>
9582
9583         * mono-debug-debugger.c (write_class): Write the parent class at
9584         the end of the header.
9585
9586 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9587
9588         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
9589
9590 2004-06-17  Raja R Harinath  <rharinath@novell.com>
9591
9592         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
9593         (bundle_obj): New conditional define.
9594         (BUILT_SOURCES): Remove.
9595         ($(bundle_srcs)): Make parallel-make safe.
9596         (libmonoruntime_la_LIBADD): Make unconditional.
9597         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
9598         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
9599
9600 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
9601
9602         * culture-info-tables.h: It was inconsistent with the latest
9603           supp info files.
9604
9605 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
9606
9607         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
9608         be loaded.
9609
9610         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
9611         with gcc 2.95.
9612
9613 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9614
9615         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
9616         cleaned up public header threads.h.
9617
9618 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9619
9620         * Makefile.am, *.c, *.h: more API cleanups.
9621
9622 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
9623
9624         * Makefile.am: removed monosn from compilation.
9625         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
9626         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
9627         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
9628         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
9629         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
9630         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
9631
9632 2004-06-15  Jackson Harper  <jackson@ximian.com>
9633
9634         * assembly.c: Make locales lower case when searching the GAC for
9635         assemblies. gacutil will always make locales lowercase when
9636         installing so this effectively makes them case insensitive.
9637         
9638 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
9639
9640         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
9641         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
9642           parameter which allows to choose whether the wait can be interrupted or 
9643           not. Also added the method mono_monitor_enter(), which locks the monitor
9644           using an infinite wait and without allowing interruption.
9645           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
9646           interrupted.
9647         * object.h: Added new fields in MonoThread. suspend_event holds the event
9648           used to susped/resume the thread. synch_lock is the lock object to use for
9649           modifying the thread state.
9650         * threads.c: Use the new synch_lock object for locking, instead of "this",
9651           which can generate deadlocks.
9652           Moved thread state change in Thread.Sleep and Thread.Join from managed
9653           to unmanaged code. This avoids a deadlock when the thread was suspended
9654           just after acquiring the thread lock.
9655           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
9656           Implemented Thread.Suspend using an event instead of ThreadSuspend,
9657           which is not fully implemented in the io-layer.
9658         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
9659
9660 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
9661
9662         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
9663         threads-types.h: more API cleanups.
9664
9665 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9666
9667         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
9668         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
9669         threadpool.c, threads.c: first pass at the exported API cleanup.
9670
9671 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
9672
9673         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
9674
9675 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9676
9677         * icall.c: added internalGetHome.
9678
9679 2004-06-14  Dick Porter  <dick@ximian.com>
9680
9681         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
9682         possible to return successfully when '.' or '..' were the only
9683         entries in a directory, but were skipped.  The MonoIOStat was not
9684         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
9685         Fixes bug 59574.
9686
9687 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9688
9689         * reflection.c: make binaries run on .Net 1.1 by default.
9690
9691 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9692
9693         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
9694
9695 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
9696
9697         * marshal.c: keep track of struct size with explicit layout
9698         (bug #59979).
9699
9700 2004-06-12  Martin Baulig  <martin@ximian.com>
9701
9702         * mono-debug-debugger.c: Comment out a debugging g_message().
9703
9704 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9705
9706         * reflection.c, reflection.h: do not free custom attrs that are cached.
9707         * icall.c: use braces to make code clearer.
9708
9709 2004-06-11  Martin Baulig  <martin@ximian.com>
9710
9711         * class.h (MonoInflatedField): New type.
9712         (MonoClassField): Replaced `MonoType *generic_type' with
9713         `MonoInflatedField *generic_info'.
9714
9715         * icall.c
9716         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
9717
9718 2004-06-11  Martin Baulig  <martin@ximian.com>
9719
9720         * reflection.c (mono_image_create_method_token): Correctly encode
9721         varargs methods.
9722
9723 2004-06-11  Martin Baulig  <martin@ximian.com>
9724
9725         * metadata.c (mono_metadata_parse_method_signature): When parsing
9726         a MethodDef which has VarArgs, also set sentinelpos if we don't
9727         have any parameters.
9728
9729 2004-06-11  Martin Baulig  <martin@ximian.com>
9730
9731         * verify.c (mono_method_verify): In CEE_CALL, use
9732         mono_method_get_signature() to get the method's signature, unless
9733         we're a PInvoke method.
9734
9735 2004-06-10  Jackson Harper  <jackson@ximian.com>
9736
9737         * assembly.c: Use <path>/lib/mono/gac for the extra paths
9738         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
9739         logical name as the supplied path is just a prefix to the gac not
9740         the direct path to it.
9741         
9742 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
9743
9744         * reflection.c: make the token for a created method match
9745         the token of the MethodBuilder it was created from
9746         (IKVM requires this behaviour now).
9747
9748 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
9749
9750         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
9751         reflection.c, socket-io.c: leak fixes.
9752
9753 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
9754
9755         * icall.c: handle sentinel pos in vararg methods in position different
9756         from 0.
9757
9758 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9759
9760         * culture-info-tables.h: freshly generated.
9761
9762 2004-06-09  Martin Baulig  <martin@ximian.com>
9763
9764         * loader.c (mono_get_method_constrained): Call `mono_class_init
9765         (constrained_class)'.   
9766
9767 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
9768
9769         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
9770         any methods. Fixes #59629.
9771
9772 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9773
9774         * culture-info-tables.h: reflecting locale-builder updates.
9775
9776 2004-06-08  Dick Porter  <dick@ximian.com>
9777
9778         * object.h:
9779         * locales.c: Fixed compile warnings, including a real bug in
9780         CompareInfo_internal_compare.
9781         
9782 2004-06-08  Dick Porter  <dick@ximian.com>
9783
9784         * locales.c
9785         (ves_icall_System_Globalization_CompareInfo_internal_index):
9786         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
9787         Double-check the resuls of usearches, because ICU currently
9788         ignores most of the collator settings here.  Fixes bug 59720.
9789         
9790 2004-06-08  Dick Porter  <dick@ximian.com>
9791
9792         * locales.c
9793         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
9794         Fix memory leak and segfault-causing typo.  No idea how this one
9795         lasted so long without being noticed.
9796
9797 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
9798
9799         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
9800         any methods. Fixes #59629.
9801
9802 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9803
9804         * assembly.c:
9805         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
9806         own the critical section before). Removed dead code (that's done
9807         in the preload hook).
9808
9809         (mono_assembly_load_with_partial_name): call the preload hook.
9810
9811 2004-06-08  Martin Baulig  <martin@ximian.com>
9812
9813         * metadata.c (mono_metadata_signature_alloc): Default
9814         `sentinelpos' to -1.
9815
9816         * reflection.c (mono_image_get_array_token): Likewise.
9817
9818 2004-06-08  Martin Baulig  <martin@ximian.com>
9819
9820         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
9821
9822         * metadata.c (mono_metadata_parse_method_signature): When parsing
9823         a MethodDef which has VarArgs, set sentinelpos.
9824
9825         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
9826         `gint16' since we're using -1 for non-varargs methods.
9827
9828         * reflection.c
9829         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
9830         (method_encode_signature): Added varargs support.
9831         (method_builder_encode_signature): Likewise.
9832         (mono_image_get_varargs_method_token): New static method.
9833         (mono_image_create_method_token): New public method; this is
9834         called via an icall instead of mono_image_create_token() when
9835         calling a varargs method.       
9836
9837 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
9838
9839         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
9840
9841 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9842
9843         * culture-info-tables.h : Reflecting the latest locale-builder that
9844           fixed empty array representation ({} to {0}).
9845
9846 2004-06-07  Jackson Harper  <jackson@ximian.com>
9847
9848         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
9849         looking up extra gac paths. This allows MONO_GAC_PATH to act
9850         exactly like a prefix.
9851         
9852 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
9853
9854         * reflection.c (mono_reflection_type_from_name): Make a copy of the
9855         type name before modifying it. Fixes #59405.
9856
9857 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9858
9859         * culture-info.h: added fields for "all datetime patterns".
9860         * locales.c: (  ves_icall_System_Globalization_CultureInfo
9861           _construct_datetime_format ()): fill xxx_patterns fields.
9862         * object.h: added fields for "all datetime patterns" to
9863           MonoDateTimeFormatInfo.
9864         * culture-info-tables.h: reflecting locale-builder updates.
9865
9866 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
9867
9868         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
9869         the event has no add and remove methods. Fixes #59629.
9870
9871 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
9872
9873         * object.c: Fixed possible integer overflow when allocating large
9874         strings.
9875
9876 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
9877
9878         * culture-info-tables.h: reflecting locale-builder updates.
9879
9880 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
9881
9882         * culture-info-tables.h: reflecting locale-builder updates.
9883
9884 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
9885
9886         * culture-info-tables.h: reflecting locale-builder updates.
9887
9888 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
9889
9890         * threads.c: Made Thread.Sleep abortable.
9891
9892 2004-06-02  Martin Baulig  <martin@ximian.com>
9893
9894         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
9895
9896         * debug-mono-symfile.h: Bumped symbol file version number to 37.
9897
9898 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
9899
9900         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
9901
9902 2004-05-30  Jackson Harper  <jackson@ximian.com>
9903
9904         * reflection.c: Do not hardcode assembly versions or public key
9905         tokens anymore. All of this except the corlib section was dead
9906         code anyways.
9907         
9908 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
9909
9910         * object.c (mono_runtime_invoke_array): Automatically create boxed
9911         objects for byref valuetypes if needed. Fixes #59300.
9912         
9913         * object.c (mono_method_return_message_restore): Handle 
9914         MONO_TYPE_OBJECT as well.
9915
9916 2004-05-28  Jackson Harper  <jackson@ximian.com>
9917
9918         * reflection.c: The modified type encoding was causing build
9919         problems. Reverted for now.
9920         
9921 2004-05-28  Jackson Harper  <jackson@ximian.com>
9922
9923         * reflection.c/h: Take an assembly ref so that we dont create
9924         fully qualified names when encoding types in the same assembly as
9925         the custom attribute being emitted.
9926         * appdomain.c: Increment version number.
9927         
9928 2004-05-26  Duncan Mak  <duncan@ximian.com>
9929
9930         * icall.c
9931         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9932         Set the full version number (major, minor, build, revision).
9933
9934 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
9935
9936         * marshal.c (emit_struct_conv): increment src/dst after blit
9937         (mono_marshal_get_managed_wrapper,
9938         mono_marshal_get_native_wrapper): make sure we have marshalling
9939         info before marshalling params (info computation affects
9940         blittable)
9941
9942         * class.c (class_compute_field_layout): correctly deal with
9943         blittable
9944         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
9945         value types (as per what windows dows by default)
9946         (mono_class_setup_mono_type): System.ValueType is blittable
9947         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
9948         blittable
9949
9950         * marshal.c (mono_marshal_load_type_info): flag types  as
9951         non-blittable if the native layout doesn't match the managed
9952         layout
9953
9954 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9955
9956         * appdomain.c: don't add stuff in the private search path that is
9957         above the application base. If application base is not set, there's
9958         no private search path.
9959
9960 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
9961
9962         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
9963         byref struct arguments in native->managed marshalling.
9964
9965 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
9966
9967         * marshal.c (mono_marshal_get_runtime_invoke): correctly
9968         cache methods using signature (special case for methods
9969         that are value type or string class)
9970         
9971         * image.c (mono_image_close): clean up allocated GSList's
9972         in runtime_invoke_cache.
9973
9974 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9975
9976         * mono-config.c: set the correct path for mono_cfg_dir on windows when
9977         there's no MONO_CFG_DIR environment variable defined.
9978
9979 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9980
9981         * threads.c: windows version must be >= 0x0500 to include OpenThread.
9982
9983 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
9984
9985         * threadpool.c: Really wait for 500ms after the async call, even if the wait
9986           is interrumped.
9987         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
9988           before waiting for it, and call CloseHandle after the wait to unref it.
9989           This will make sure that handles are not disposed too early.
9990
9991 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9992
9993         * appdomain.c:
9994         * appdomain.h:
9995         * icall.c: removed
9996         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
9997         needed now.
9998
9999         * object.c: se the application_base only for the domain that runs
10000         Main. Fixes bug #59216,
10001
10002 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10003
10004         * appdomain.c:
10005         * object.c: only the domain in which Main is run have
10006         SetupInformation.ConfigurationFile set, so moved a few lines from
10007         appdomain.c to object.c.
10008
10009 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10010
10011         * appdomain.c: we tried to load [name].(dll|exe), but according
10012         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10013         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10014         There's a test case attached to bug #58922.
10015
10016 2004-05-27  Dick Porter  <dick@ximian.com>
10017
10018         * icall.c:
10019         * file-io.c: Implemented icalls for locking and unlocking regions
10020         in a file.
10021         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10022         FALSE on error (fixes both compiler warning and real bug.)
10023
10024 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10025
10026         * culture-info-tables.h: reflecting locale-builder updates.
10027
10028           (Added missing ChangeLog entry for 05/26)
10029
10030 2004-05-27  Jackson Harper  <jackson@ximian.com>
10031
10032         * locales.c: Fix some cut and paste errors.
10033         
10034 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10035
10036         * mono-config.c: set the correct path for config. directory on windows.
10037
10038 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10039
10040         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10041           on win32.
10042
10043 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10044
10045         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10046         from pinvoke functions.
10047         
10048         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10049
10050 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10051
10052         * culture-info-tables.h: reflecting locale-builder updates.
10053
10054 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10055
10056         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10057         #59086.
10058
10059 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10060
10061         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10062         * icall.c: Modified icalls for RNG.
10063         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10064         Windows (CryptoAPI).
10065
10066 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10067
10068         * locales.c: Fix build.
10069
10070 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10071
10072         * culture-info-tables.h: reflecting locale-builder updates.
10073
10074 2004-05-25  Jackson Harper  <jackson@ximian.com>
10075
10076         * locales.c: When creating the current culture use the $LANGs
10077         specific culture. So DateTimeFormat and NumberFormat entries are created.
10078         
10079 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10080
10081         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10082         a char array as parameter.
10083
10084 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10085
10086         * image.c: In mono_image_open(), always use an absolute path name to
10087           look for already loaded images.
10088
10089 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10090
10091         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10092         missing in the windows build (like older cygwin include files).
10093
10094 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10095
10096         * icall.c: Fixed check for possible integer overflow in Buffer_
10097         BlockCopy icall. Replaced comments style // by /* */.
10098
10099 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10100
10101         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10102         
10103         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10104         check after MONO_VTADDR. Fixes pinvoke2.exe.
10105
10106         * marshal.h marshal.c metadata.h: Add beginnings of support for
10107         ftnptr -> delegate marshalling.
10108
10109 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10110
10111         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10112         * threads.c: Fix warnings.
10113
10114 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10115
10116         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10117         * icall.c: Registered icalls for Suspend and Resume.
10118         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10119           Thread.Abort.
10120         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10121         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10122         * process.c: Use WaitForSingleObjectEx.
10123         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10124           checkpoints.
10125         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10126           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10127           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10128           background threads. Added basic support for Abort in Windows.
10129           Start new threads using a managed delegate invoke wrapper. This wrapper
10130           has an interruption checkpoint that is needed since an interruption
10131           can be requested before the thread leaves the unmanaged code that starts 
10132           the thread.
10133         * marshal.c: Added interruption checkpoint after every native call, and
10134           also before managed calls for wrappers called from unmanaged code to
10135           go into managed code.
10136         * object.h: Added new field in MonoThread to keep track of interruption
10137           requests.
10138
10139 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10140
10141         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10142         calls.
10143
10144 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10145
10146         * appdomain.c:
10147         * assembly.c:
10148         * gc.c:
10149         * locales.c:
10150         * mono-config.c:
10151         * rand.c: getenv -> g_getenv (windows!)
10152
10153         * process.c: complete_path is also used on non-windows platforms.
10154
10155 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10156
10157         * icall.c: new signature for Process_Start.
10158
10159         * process.[ch]: new signature for Process_Start. If we're on windows
10160         and UseShellExecute is false, we have to search for the program by
10161         ourselves if we don't get a full path.
10162
10163 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10164
10165         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10166         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10167
10168 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10169
10170         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10171         Fixes bug #58373.
10172
10173 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10174
10175         * process.c: use double quotes to quote program name and arguments on
10176         windows. Fixes bug #58575.
10177
10178 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10179
10180         * file-io.c: don't return "." and ".." when using windows Find*File.
10181
10182 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10183
10184         * marshal.c: Don't pass wrappers to message init because method 
10185         addressed used to lookup metadata. part of remoting[2|3] fix.
10186
10187 2004-05-15  Jackson Harper  <jackson@ximian.com>
10188
10189         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10190         path is essentially the same as MONO_PATH except that it points to
10191         GACs instead of lib directories.
10192         * loader.h: The user gac is gone so we dont need function to
10193         enable/disable it.
10194         * mono-config.c: user gac option is now gone.
10195         
10196 2004-05-15  Jackson Harper  <jackson@ximian.com>
10197
10198         * culture-info.h: Make defines more consistent, add calendar data
10199         to the culture info table.
10200         * culture-info-tables.h: Add basic calendar data. Basically
10201         everyone gets default gregorian until all the data is
10202         updated.
10203         * locales.c: Use the new consistent defines. Set calendar data for
10204         culture info objects.
10205         * object.h: add a field for calendar data to CultureInfo
10206         
10207 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10208
10209         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10210         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10211         a signature.
10212         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10213         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10214         an extra param that is the pointer of the method to invoke. The IL for
10215         the invoke method is no longer specific to the method, but to the
10216         signature of the method. Thus, we can share the same code for multiple
10217         methods. This reduces the number of methods that have to be compiled.
10218
10219 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10220
10221         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10222
10223         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10224
10225         * icall.c: Optimize Buffer.BlockCopy.
10226
10227 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10228
10229         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10230         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10231         quote). Changed them to "MMMM yyyy".
10232
10233 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10234
10235         * rand.c
10236         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10237
10238 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10239
10240         * reflection.h: Updated after changes to managed structures.
10241
10242         * appdomain.c: Bump corlib version.
10243
10244 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10245
10246         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10247         windows.
10248
10249 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10250
10251         * Makefile.am: link to ../os/libmonoos.la on windows.
10252
10253         * assembly.c:
10254                 -If MONO_DEBUG, warn about non-existing directories in
10255                 MONO_PATH.
10256                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10257                 compile time variable.
10258                 -Removed init_default_path and call mono_set_rootdir from
10259                 libmonoos.a instead (windows only).
10260
10261         * assembly.h: declare mono_assembly_getrootdir().
10262
10263         * domain.c:
10264         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10265
10266         * loader.c: s/getenv/g_getenv/
10267
10268 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10269
10270         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10271
10272         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10273
10274         * metadata.h: Add new marshalling conversions.
10275
10276         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10277         function.
10278
10279         * reflection.c (mono_reflection_get_type): Lookup the type in all
10280         modules of a multi-module assembly. Fixes #58291.
10281
10282 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10283
10284         * threads.c: Before aborting a background, set the StopRequested
10285         state.  This avoids throwing the Abort exception.
10286         In mono_thread_manage, don't continue with the shutdown until all
10287         aborted threads have actually stopped.
10288
10289 2004-05-10  Jackson Harper  <jackson@ximian.com>
10290
10291         * locales.c: Remove the modifier from culture names.
10292         
10293 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10294
10295         * Makefile.am: monosn is not installed any more. It has been deprecated
10296         in favor of sn.
10297
10298 2004-05-07  Jackson Harper  <jackson@ximian.com>
10299
10300         * locales.c
10301         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10302         Fix array construction, add bailout if the length is 0.
10303
10304 2004-05-07  Dick Porter  <dick@ximian.com>
10305
10306         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10307         machine doesn't have a DNS entry.  Patch by Urs Muff
10308         (umuff@quark.com), fixes bug 57928.
10309
10310 2004-05-06  Jackson Harper  <jackson@ximian.com>
10311
10312         * reflection.c: Handle null PublicTokens properly. alloc mem for
10313         assembly names culture so we dont crash when freeing it.
10314         
10315 2004-05-06  Jackson Harper  <jackson@ximian.com>
10316
10317         * assembly.c: Check the usergac when loading with partial names.
10318         
10319 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10320
10321         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10322         does nothing for now (not required for Linux/Windows) but the class
10323         library can call it (and a newer or modified runtime could need it).
10324         * icall.c: Registred icall.
10325
10326 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10327
10328         * loader.c: prints a message on module loading error we set MONO_DEBUG
10329         environment variable.
10330
10331 2004-05-05  Jackson Harper  <jackson@ximian.com>
10332
10333         * appdomain.c: Handle PublicKeyToken=null properly.
10334         
10335 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10336
10337         * environment.c|h: Added icall ves_icall_System_Environment_
10338         GetOSVersionString to get the current OS version as a string.
10339         * icall.c: Registred icall.
10340
10341 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10342
10343         * object.c: in mono_object_get_virtual_method(), take into account that
10344         non-virtual methods don't have a slot in the vtable. Check needed when
10345         the object is a proxy.
10346
10347 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10348
10349         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10350         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10351
10352         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10353
10354         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10355         passed when a valuetype is expected.
10356
10357         * object.c (mono_unhandled_exception): Only set the exit code if the
10358         exception happens in the main thread. Fixes thread5.exe.
10359
10360         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10361         invalid names. Fixes #58047.
10362
10363 2004-05-03  Jackson Harper  <jackson@ximian.com>
10364
10365         * assembly.c: This line was committed accidently and is unneeded.
10366         
10367 2004-05-03  Jackson Harper  <jackson@ximian.com>
10368
10369         * icall.c: Add new icall for Assembly::LoadWithPartialName
10370         * assembly.c/.h: new function that probes the GAC to load partial
10371         assembly names by Paolo Molaro.
10372         
10373 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10374
10375         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10376         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10377         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10378         full type name.
10379
10380 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10381
10382         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10383         * reflection.c: fix bug when parsing a full type name and Version is not
10384         the last thing in the string.
10385
10386 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10387
10388         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10389         crashes when it is freed.
10390
10391 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10392
10393         * assembly.c: print the compat warning to stderr.
10394
10395 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10396
10397         * assembly.c (mono_assembly_load_references): Add a compatibility
10398         hack to run old applications that might be still referencing the
10399         3300-based assemblies, only do this for System.xxx.
10400
10401 2004-05-01  Jackson Harper  <jackson@ximian.com>
10402
10403         * appdomain.c: If the culture is neutral we set it to "".
10404         
10405 2004-04-29  Jackson Harper  <jackson@ximian.com>
10406
10407         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10408
10409 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10410  
10411         * string-icalls.c: added low overhead function for copying chars
10412         * icall.c: added needed icall for the above function
10413  
10414 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10415
10416         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10417         Environment.GetLogicalDrives.
10418
10419 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10420
10421         * rand.c: try and talk to egd or prngd
10422         for random bytes if opening devices fail.
10423
10424 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10425
10426         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10427         alignment for the type using the native alignment of its members 
10428         instead of using klass->min_align.
10429
10430         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10431
10432 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10433
10434         * file-io.c:
10435         * socket-io.c: added check for sys/aio.h.
10436
10437 2004-04-28  Dick Porter  <dick@ximian.com>
10438
10439         * threads.c: Don't abort a thread thats already aborting, when
10440         terminating everything.
10441
10442 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10443
10444         * icall.c: added 2 new async calls for Socket.
10445
10446         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10447         IO on *nix systems.
10448
10449         * threadpool.c: removed unused variable.
10450
10451 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10452
10453         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10454
10455 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10456
10457         * locales.c: put back string_invariant_tolower () and
10458         string_invariant_toupper ().
10459
10460 2004-04-26 David Waite <mass@akuma.org>
10461
10462         * file-io.h:
10463         * socket-io.h:
10464         * threads.h:
10465         * unicode.h: remove comma from end of enumeration declarations
10466
10467 2004-04-26 David Waite <mass@akuma.org>
10468
10469         * debug-mono-symfile.h:
10470         * decimal.c:
10471         * mono_debug.h:
10472         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
10473
10474
10475 2004-04-26  Jackson Harper  <jackson@ximian.com>
10476
10477         * appdomain.c: Increment version number.
10478         
10479 2004-04-26  Jackson Harper  <jackson@ximian.com>
10480
10481         * appdomain.c: Set assembly references public token value when
10482         PublicKeyToken is specified, not the hash_value. Free public token
10483         values when free assembly name data. Previously the public key
10484         token was hex decoded, however we are using hex encoded public key
10485         tokens, so this is not neccasary.
10486         * assembly.c: Lookup assemblies in the gac if their public token
10487         value is set. Add function to allow enabling user gac
10488         lookups. Specify whether or not the assembly was loaded from the
10489         GAC. Compare full assembly names when checking the cache for
10490         assemblies (Temporarily disabled see comment in code). Remove
10491         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
10492         specifies trace-loader they get extra info to stdout on the
10493         loading of assemblies.
10494         * image.h: Add a field for an assembly references public token
10495         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
10496         whether an assembly has been loaded from the GAC.
10497         * image.c: Remove a corlib -> mscorlib name mapping.
10498         * loader.h: Add function to enable/disable the user gac.
10499         * mono-config.c: Check if the usergac is enabled in the config
10500         file.
10501         * icall.c: New icall to determine whether or not an assembly has
10502         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
10503         * tabldefs.h: Add constant for assemblyref flag that specifies a
10504         full public key is used instead of a public token.
10505         * reflection.c: Remove mscorlib -> corlib mappings. Set
10506         PublicTokenValue instead of hash value. This value is a hex
10507         string so it does not need to be expanded.
10508
10509 2004-04-26  Martin Baulig  <martin@ximian.com>
10510
10511         * mono-debug-debugger.c (mono_debugger_initialize): Set
10512         `mono_debugger_initialized' before calling mono_debug_lock().
10513
10514 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
10515
10516         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
10517           InternalToUpper/InternalToLower.
10518         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
10519           removed invariant culture shortcut.  This is now done in managed code.
10520         * locales.c: (string_invariant_toupper/tolower) removed.
10521
10522 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10523
10524         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
10525         Added Poll internal call.
10526
10527         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
10528         call for Poll. Select was too heavy for polling a single socket.
10529
10530         * threadpool.[ch]: added mono_threadpool_cleanup.
10531         * threads.c: use it. Don't use Thread_Abort on windows.
10532
10533 2004-04-23  Martin Baulig  <martin@ximian.com>
10534
10535         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
10536
10537 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
10538
10539         * icall.c: Registred new icalls for key pair protection and added an
10540         icall for Environment.GetFolderPath on Windows.
10541         * security.c|h: Added new icalls for key pair protection.
10542
10543 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10544
10545         * socket-io.c: don't display the non-supported family warning for known
10546         families. Now this is not displayed on windows when checking support
10547         for IPv4/IPv6.
10548
10549 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10550
10551         * class.c: don't display the layout warning for static fields.
10552
10553 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
10554
10555         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
10556         * locales.c, locales.h: Added new icalls for culture-specific
10557         Char.ToLower and Char.ToUpper.
10558
10559 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10560
10561         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
10562         by David Waite.
10563
10564 2004-04-20  Martin Baulig  <martin@ximian.com>
10565
10566         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
10567         of the type name before passing it to mono_reflection_type_from_name().
10568
10569 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
10570
10571         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
10572         encodings here. Fixes #56965.
10573
10574 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
10575
10576         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10577         fix test on strstr result not that I can see anything that
10578         relies on the result.
10579
10580 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
10581
10582         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
10583         Fixes #57081.
10584
10585         * marshal.c (mono_marshal_get_string_encoding): New helper function.
10586
10587         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
10588         function to determine which marshalling to use for strings. Fixes
10589         #56965.
10590
10591         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
10592
10593         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
10594
10595 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
10596
10597         * icall.c: #include mono-config.h
10598
10599 2004-04-15  Jackson Harper  <jackson@ximian.com>
10600
10601         * culture-info-tables.h: Fix date formats for en-US culture.
10602         
10603 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
10604
10605         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
10606         ThreadPool.SetMinThreads.
10607         * threadpool.c: Implemented ThreadPool.GetMinThreads and
10608         ThreadPool.SetMinThreads.
10609
10610 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10611
10612         * mono-config.c: also load the .config file in the directory
10613         where the assembly was found.
10614
10615 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
10616
10617         * assembly.c: load per-assembly config files.
10618         * icall.c: decrapified code to get the config dir and moved to
10619         mono-config.c.
10620         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
10621         per-assembly config files. When doing a dll map lookup give precedence
10622         to the per-assembly data.
10623
10624 2004-04-14  Martin Baulig  <martin@ximian.com>
10625
10626         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
10627         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
10628         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
10629
10630         * mono-debugger-debugger.c: While the debugger is locked, remember
10631         whether the symbol tables have changes and send one single
10632         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
10633
10634 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
10635
10636         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
10637
10638         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
10639         function.
10640
10641         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
10642         account when marshalling string arrays. Fixes #56965.
10643
10644 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
10645
10646         * icall.c: Add new icalls mapping for security.
10647         * security.c|h: Add internal calls for WindowsIdentity,
10648         WindowsImpersonationContext and WindowsPrincipal.
10649
10650 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
10651
10652         * class.c: Added comment to ensure the System.MonoDummy class
10653         is removed when no longer necessary
10654
10655 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
10656
10657         * appdomain.c: Pass arguments to the bootstraping exceptions to
10658         minimize JITed methods at boot
10659
10660         * metadata.c (mono_exception_from_name_two_strings): Allow for the
10661         second string to be null.
10662
10663         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10664         Change the protocol to minimize the JIT methods at startup.  Now
10665         it Returns the internal codepage, if the value of "int_code_page"
10666         is 1 at entry, and we can not compute a suitable code page
10667         number, returns the code page as a string.
10668
10669 2004-04-13  Jackson Harper  <jackson@ximian.com>
10670
10671         * culture-info-tables.h: Fix number of decimal digits for all
10672         english locales.
10673
10674 2004-04-13  Jackson Harper  <jackson@ximian.com>
10675
10676         * icall.c: Clairfy out of sync error message. It is not always
10677         your corlib that is out of sync.
10678
10679 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
10680
10681         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
10682         properties when only the set accessor is overriden. Fixes #55874.
10683
10684 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
10685
10686         * assembly.c (mono_assembly_load_references): Make this thread safe.
10687         Fixes #56327.
10688
10689 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
10690
10691         * monosn.c: Add missing initialization calls.
10692
10693 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
10694
10695         * locales.c:
10696         ves_icall_System_Globalization_CultureInfo_construct_number_format
10697         Fix g_assert so it compiles on fussier compilers re int/ptr
10698         mismatch
10699
10700 2004-04-08  Dick Porter  <dick@ximian.com>
10701
10702         * socket-io.h:
10703         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
10704         53992.  Also rearrange the code so that the internal calls return
10705         an error value and exceptions are thrown from managed code.
10706
10707         * icall.c: Add type info to the socket icalls.
10708
10709 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10710
10711         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
10712         owes me a beer.
10713
10714 2004-04-07  Martin Baulig  <martin@ximian.com>
10715
10716         * class.c (mono_class_from_generic_parameter): Don't default
10717         `klass->parent' to `mono_defaults.object_type'.
10718
10719 2004-04-07  Martin Baulig  <martin@ximian.com>
10720
10721         * reflection.c (mono_reflection_initialize_generic_parameter): Set
10722         `param->pklass->reflection_info'.       
10723
10724 2004-04-07  Jackson Harper  <jackson@ximian.com>
10725
10726         * culture-info-tables.h: Fix date separator symbol.
10727         
10728 2004-04-07  Martin Baulig  <martin@ximian.com>
10729
10730         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
10731         from System.Type to System.MonoType.
10732
10733 2004-04-07  Martin Baulig  <martin@ximian.com>
10734
10735         * reflection.h
10736         (MonoReflectionGenericParam): Added `has_reference_type' and
10737         `has_value_type' fields.
10738
10739         * reflection.c (mono_image_get_generic_param_info): Encode the
10740         correct flags if we have the `class' or `struct' constraint.
10741
10742 2004-04-07  Martin Baulig  <martin@ximian.com>
10743
10744         * reflection.h
10745         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
10746
10747 2004-04-07  Jackson Harper  <jackson@ximian.com>
10748
10749         * appdomain.c: Revert extra patches, just wanted to bump the
10750         version number.
10751         
10752 2004-04-07  Jackson Harper  <jackson@ximian.com>
10753
10754         * Makefile.am: Add culture-info private headers.
10755         * icall.c: Add new icalls for contructing locales.
10756         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
10757         * locales.h: Declare new culture info construction methods.
10758         * object.h: Add new fields used to avoid the CultureMap to
10759         MonoCultureInfo.
10760         * culture-info.h: Definition of structs used in the culture info
10761         tables.
10762         * culture-info-tables.h: Autogenerated tables that contain culture
10763         info data. This file was generated with the locale-builder tool.
10764         * appdomain.c: Incement corlib version number.
10765         
10766 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
10767
10768         * appdomain.c: (mono_runtime_init) move mono_thread_init
10769         to before mono_object_new calls so critical sections
10770         are initialized before use.
10771
10772 2004-04-07  Martin Baulig  <martin@ximian.com>
10773
10774         * icall.c
10775         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
10776         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
10777         (ves_icall_MonoGenericParam_initialize): Removed.
10778         (monogenericparam_icalls): Removed.
10779         (generictypeparambuilder_icalls): Added new table for
10780         System.Reflection.Emit.GenericTypeParameterBuilder.
10781
10782         * reflection.c
10783         (mono_reflection_define_generic_parameter): Removed.
10784         (mono_reflection_initialize_generic_parameter): This is now called
10785         from GenericTypeParameterBuilder's .ctor.
10786
10787 2004-04-06  Martin Baulig  <martin@ximian.com>
10788
10789         * class.c (mono_class_init): Don't inflate nested classes in a
10790         generic instance.
10791         (mono_type_get_name_recurse): Include the generic arguments for
10792         generic instances and generic type declarations.
10793         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
10794         (_mono_class_get_instantiation_name): Removed.
10795         (mono_class_create_generic): Always use `gklass->name' as our name.
10796
10797         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
10798
10799         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
10800         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
10801         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
10802         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
10803         closed generic methods here.
10804
10805         * reflection.c
10806         (mono_reflection_generic_inst_get_nested_types): Removed.
10807         (inflate_mono_method): Copy the generic parameters from the
10808         MonoMethodHeader into out MonoGenericMethod.
10809
10810 2004-04-06  Martin Baulig  <martin@ximian.com>
10811
10812         * row-indexes.h
10813         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
10814
10815         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
10816
10817         * reflection.c (build_compressed_metadata): If we have any entries
10818         in the GenericParam, MethodSpec or GenericParamConstraint tables,
10819         set the header version to 1.1.
10820
10821 2004-04-06  Martin Baulig  <martin@ximian.com>
10822
10823         * class.c (mono_class_init): If we're a generic instance,
10824         initialize our nested classes, too.
10825         (_mono_class_get_instantiation_name): Deal with the new `!%d'
10826         suffix. 
10827
10828 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10829
10830         * process.c: quote the argument passed to the shell on windows.
10831
10832 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
10833
10834         * threads.c (mono_alloc_special_static_data): Allow this to be
10835         called during startup.
10836
10837 2004-04-02  Martin Baulig  <martin@ximian.com>
10838
10839         * icall.c
10840         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
10841
10842 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
10843
10844         * icall.c: Fix build.
10845
10846 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
10847
10848         * Makefile.am: Added security.c|h.
10849         * icall.c: Added icall for get_UserName;
10850         * security.c: New file for security related icalls. Added function
10851         get_UserName for System.Environment (fix #56144).
10852         * security.h: New. Header file for security.c
10853
10854 2004-04-02  Dick Porter  <dick@ximian.com>
10855
10856         * icall.c: Deleted the icalls that were obsoleted some time ago
10857         by the ICU string code, and which were mixed into the icall
10858         rearranging.  Fixes bug 55969.
10859
10860         * string-icalls.h: 
10861         * string-icalls.c: Deleted the code that those icalls reference.
10862
10863 2004-04-01  Martin Baulig  <martin@ximian.com>
10864
10865         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
10866
10867         * class.c (mono_class_from_generic_parameter): Don't set 
10868         TYPE_ATTRIBUTE_INTERFACE.
10869         (my_mono_class_from_generic_parameter): Likewise.
10870
10871 2004-04-01  Martin Baulig  <martin@ximian.com>
10872
10873         * loader.c (find_method): Added an optional `MonoClass *ic'
10874         argument to search in a specific interface.
10875         (mono_get_method_constrained): New public function.
10876
10877 2004-04-01  Martin Baulig  <martin@ximian.com>
10878
10879         * reflection.c (mono_image_get_generic_field_token): Use the
10880         `handleref' cache here.
10881
10882 2004-04-01  Martin Baulig  <martin@ximian.com>
10883
10884         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
10885
10886         * reflection.c (create_generic_typespec): Use the `typespec' hash
10887         here, not the `typeref' one.    
10888
10889 2004-04-01  Martin Baulig  <martin@ximian.com>
10890
10891         * class.c (mono_class_inflate_generic_type): Moved the
10892         functionality into a new static inflate_generic_type() which
10893         returns NULL if it didn't do anything.  Only increment the
10894         `mono_stats.inflated_type_count' if we actually inflated
10895         something.
10896         (mono_class_get_full): Check the classes type to see whether we
10897         need to inflate it; also inflate MONO_TYPE_(M)VAR.
10898
10899 2004-04-01  Jackson Harper  <jackson@ximian.com>
10900
10901         * reflection.c: Set culture for assembly references.
10902         
10903 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
10904
10905         * reflection.[ch], icall.[ch], Fix support for pinning variables.
10906
10907 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10908
10909         * assembly.c:
10910         (do_mono_assembly_open): the critical section also covers
10911         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
10912
10913 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10914
10915         * threads.c:
10916         (mono_manage_threads): abort the background threads when finishing.
10917         Fixes bug #47232.
10918
10919 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10920
10921         * gc.c: only close the done_event handle if there was no timeout.
10922         C-ified comments.
10923
10924 2004-03-30  Martin Baulig  <martin@ximian.com>
10925
10926         * icall.c (icall_entries): It's called "System.Activator", not
10927         "System.Activation".    
10928
10929 2004-03-30  Martin Baulig  <martin@ximian.com>
10930
10931         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
10932         (mono_class_create_from_typespec): Likewise.
10933
10934 2004-03-30  Martin Baulig  <martin@ximian.com>
10935
10936         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
10937         `has_ctor_constraint' and `initialized'.
10938
10939 2004-03-30  Martin Baulig  <martin@ximian.com>
10940
10941         * reflection.c (encode_new_constraint): New static function to add
10942         the constructor constraint attribute to a type parameter.
10943         (encode_constraints): Call encode_new_constraint() if necessary.
10944
10945         * reflection.h
10946         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
10947
10948         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
10949         
10950 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
10951
10952         * reflection.c, icall.c: add support for pinning variables. 
10953
10954 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
10955
10956         * marshal.c (mono_marshal_get_managed_wrapper):
10957         init bool local with zero rather than null.
10958
10959 2004-03-29  Martin Baulig  <martin@ximian.com>
10960
10961         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
10962         the "official" behavior here.
10963         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
10964
10965 2004-03-29  Martin Baulig  <martin@ximian.com>
10966
10967         * icall.c: Reflect latest API changes.
10968
10969 2004-03-29  Martin Baulig  <martin@ximian.com>
10970
10971         * loader.c (mono_get_method_from_token): Also call
10972         mono_metadata_load_generic_params () for abstract and interface
10973         methods; replace the type arguments in the method signature with
10974         the ones which are loaded from the metadata.
10975
10976 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
10977
10978         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
10979         of the lock is not the current thread. MS.NET don't do it, in spite of
10980         what the documentation says. See bug #56157.
10981
10982 2004-03-28  Martin Baulig  <martin@ximian.com>
10983
10984         * class.c (mono_class_init): Don't call init_properties() and
10985         init_events() for generic instances; set `prop->parent' when
10986         inflating properties.
10987
10988         * reflection.c (mono_generic_inst_get_object): Call
10989         `mono_class_init (ginst->klass)'.
10990         (mono_type_get_object): Only create a MonoGenericInst if your
10991         generic type is a TypeBuilder.
10992         (do_mono_reflection_bind_generic_parameters): Only set
10993         `ginst->is_dynamic' if our generic type is a TypeBuilder.
10994
10995 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
10996
10997         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
10998         Fixes #56091.
10999
11000 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11001
11002         * icall.c: added Kill_internal icall.
11003         * process.[ch]: added Kill_internal icall.
11004
11005 2004-03-25  Martin Baulig  <martin@ximian.com>
11006
11007         * class.h (MonoStats): Added `generic_instance_count',
11008         `inflated_method_count', `inflated_type_count' and
11009         `generics_metadata_size'.       
11010
11011 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11012
11013         * reflection.c: no warnings now.
11014
11015 2004-03-25  Martin Baulig  <martin@ximian.com>
11016
11017         * class.c (mono_class_get_full): New public function; does a
11018         mono_class_get(), but also takes a `MonoGenericContext *'.
11019
11020         * loader.c (mono_field_from_memberref): Renamed to
11021         `field_from_memberref', made static and added `MonoGenericContext *'
11022         argument.
11023         (mono_field_from_token): Added `MonoGenericInst *' argument.
11024         (method_from_memberef): Likewise.
11025         (mono_get_method_from_token): Likewise.
11026         (mono_get_method_full): New public function; does a
11027         mono_get_method(), but also takes a `MonoGenericContext *'.
11028
11029         * verify.c (mono_method_verify): Get the method's generic context
11030         and pass it to mono_field_from_token(), mono_get_method_full() and
11031         mono_class_get_full().
11032
11033 2004-03-25  Martin Baulig  <martin@ximian.com>
11034
11035         * class.c (mono_class_inflate_generic_type): Take a
11036         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11037         `MonoGenericMethod *'.
11038
11039 2004-03-25  Martin Baulig  <martin@ximian.com>
11040
11041         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11042         instead of the MonoGenericMethod here.
11043
11044 2004-03-25  Martin Baulig  <martin@ximian.com>
11045
11046         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11047         each time we create a new MonoGenericInst, we also create a new
11048         context which points back to us.
11049
11050         * class.c (inflate_method): Use `ginst->context' instead of
11051         creating a new context.
11052
11053         * loader.c (method_from_memberref): Use
11054         `klass->generic_inst->context' instead of creating a new context.
11055
11056 2004-03-25  Martin Baulig  <martin@ximian.com>
11057
11058         * class.h (MonoGenericContext): New struct.
11059         (MonoGenericMethod): Removed `generic_inst'.
11060
11061         * class.c (mono_class_inflate_generic_method): Take a
11062         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11063
11064 2004-03-25  Martin Baulig  <martin@ximian.com>
11065
11066         * loader.h (MonoMethodInflated): New typedef.
11067
11068         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11069         `generic_param_count' consume just 30 bits, added `is_inflated'
11070         and `has_type_parameters' flags (one bit each).
11071
11072         * class.c (mono_class_inflate_generic_method): Create a
11073         MonoMethodInflated instead of a MonoMethodNormal and set
11074         `is_inflated' in the method signature.
11075
11076         * class.h (MonoGenericMethod): Removed `generic_method'.
11077
11078 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11079
11080         * image.c: Make sure the name of a MonoImage is always an absolute path.
11081           This fixes bug #54415.
11082
11083 2004-03-24  Martin Baulig  <martin@ximian.com>
11084
11085         * class.c (mono_class_setup_vtable): If we're a generic instance,
11086         use our generic type's vtable size.
11087
11088 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11089
11090         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11091         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11092         problems.
11093
11094 2004-03-23  Martin Baulig  <martin@ximian.com>
11095
11096         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11097         `MonoEvent *events'.
11098
11099         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11100         (typebuilder_icalls): Added "get_event_info"; calls
11101         mono_reflection_event_builder_get_event_info(). 
11102
11103         * reflection.c (mono_reflection_generic_inst_initialize): Added
11104         `MonoArray *events'.
11105         (mono_reflection_event_builder_get_event_info): New function.
11106
11107 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11108
11109         * object.h: add mono_type_initialization_init
11110
11111         * object.c (mono_runtime_class_init): 
11112         implement class constructor synchronization rules
11113         to cope with threading issues.  
11114         add mono_type_initialization_init
11115
11116         * appdomain.c (mono_runtime_init): call 
11117         mono_type_initialization_init
11118
11119         * class.h: removing initializing field from MonoVTable
11120
11121 2004-03-23  Martin Baulig  <martin@ximian.com>
11122
11123         * class.c (my_mono_class_from_generic_parameter): Use
11124         `param->name' if it's not NULL. 
11125
11126 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11127
11128         * class.c: do not insert non-virtual methods in the vtable.
11129         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11130         that means the method is non-virtual. This never would have
11131         happened before.
11132
11133 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11134
11135         * profiler.c: Added lock for accessing coverage_hash.
11136
11137 2004-03-22  Martin Baulig  <martin@ximian.com>
11138
11139         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11140         `method->method->signature->generic_param_count != 0' to make it
11141         work for interface methods.
11142
11143 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11144
11145         * process.c: quote the string passed to the shell using g_shell_quote.
11146
11147 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11148
11149         * threads.c:
11150         (mono_threads_manage): don't remove the finalizer thread and self
11151         from the threads hash table so that mono_thread_manage can be called
11152         more than once.
11153
11154 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11155
11156         * process.c: quote the arguments when UseShellExecute is true. Fixes
11157         bug #55790.
11158
11159 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11160
11161         * threads.c: set mono_thread_detach as a cleanup routine for every
11162         thread. This way it's always executed upon thread termination, either
11163         aborted or finished normally. No more xsp hangs!
11164
11165 2004-03-17  Martin Baulig  <martin@ximian.com>
11166
11167         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11168         `int count_nested' and a `MonoType **nested'.
11169
11170         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11171         most of the functionality into a new static
11172         do_mono_reflection_bind_generic_parameters() and don't take a
11173         `MonoType *nested_in' argument any more.  Don't compute nested
11174         types here.
11175         (mono_reflection_generic_inst_get_nested_types): New public method
11176         to get nested types.
11177
11178         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11179         we're a nested class.
11180
11181         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11182         mono_reflection_generic_inst_get_nested_types() to compute the
11183         nested types.
11184
11185 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11186
11187         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11188         descriptive error message under windows.
11189         
11190 2004-03-17  Martin Baulig  <martin@ximian.com>
11191
11192         * class.c (dup_type): Added `const MonoType *original' argument;
11193         copy the attrs from the original type.
11194
11195 2004-03-17  Martin Baulig  <martin@ximian.com>
11196
11197         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11198         `m->generic_inst_cache' here.
11199
11200 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11201
11202         * exception.h exception.c: Add stack_overflow_exception.
11203
11204 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11205
11206         * threadpool.c:
11207         (overlapped_callback): call SetEvent *after* invoking the callback.
11208         No need to call CloseHandle.
11209
11210 2004-03-16  Martin Baulig  <martin@ximian.com>
11211
11212         * reflection.c (mono_image_get_fieldref_token): Take a
11213         `MonoReflectionField *' instead of a `MonoClassField *' and a
11214         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11215
11216 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11217
11218         * appdomain.c: don't add the culture to the filename we're looking for
11219         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11220
11221 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11222
11223         * locales.c: don't ignore symbols when doing case insensitive compares.
11224         Thanks Dick! Fixes bug #54046.
11225
11226         * threads.c: surround 'threads' usage with enter/leave in
11227         mono_thread_manage.
11228
11229 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11230
11231         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11232         implicitly marshalled as [Out]. Fixes #55450.
11233
11234         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11235         an exception.
11236
11237 2004-03-16  Martin Baulig  <martin@ximian.com>
11238
11239         * class.c (mono_class_from_generic_parameter): Use the actual
11240         parameter name. 
11241
11242 2004-03-16  Martin Baulig  <martin@ximian.com>
11243
11244         * reflection.c (type_get_signature_size): New static function.
11245         Compues the size of the type in a method signature.
11246         (method_get_signature_size): New static function; calls
11247         type_get_signature_size() to compute the actual size of the
11248         method's signature.
11249         (method_encode_signature): Use method_get_signature_size() to get
11250         the signature's size rather than using `nparams * 10'.
11251
11252 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11253
11254         * file-io.h: define here WapiOverlapped on windows. I don't want the
11255         regular OVERLAPPED one.
11256
11257         * file-io.c:
11258         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11259         Disabling AIO on windows.
11260
11261 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11262
11263         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11264         bug #55385.
11265
11266 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11267
11268         * appdomain.c: upgraded corlib version.
11269
11270         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11271         and BeginWrite. Allow opening files for asynchrnous operations.
11272
11273         * file-io.h: new struct that maps FileStreamAsyncResult.
11274         * icall.c: added new icalls.
11275         * process.[ch]: support setting child process environment variables
11276         and use the SHELL or COMSPEC when UseShellExecute is true.
11277
11278         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11279         callback for async. IO is here and also BindHandle.
11280
11281         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11282         from here.
11283
11284 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11285
11286         * reflection.c (create_custom_attr): Allow len == 0.
11287
11288         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11289         computation on big-endian machines.
11290
11291 2004-03-13  Martin Baulig  <martin@ximian.com>
11292
11293         * class.h (MonoGenericInst): Added `int count_ifaces'.
11294
11295         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11296         `ginst->count_ifaces' instead `klass->interface_count' since we
11297         may get called before the vtable is created.
11298
11299         * loader.c (mono_method_get_param_names): If we're a generic
11300         instance, return and don't initialize the class.
11301
11302         * reflection.c (mono_reflection_setup_generic_class): Don't call
11303         ensure_runtime_vtable().
11304         (mono_reflection_bind_generic_parameters): Set
11305         `ginst->count_ifaces'.
11306
11307 2004-03-11  Jackson Harper <jackson@ximian.com>
11308
11309         * icall.c:
11310         * unicode.c:
11311         * unicode.h: Remove unused System.Char icalls.
11312         
11313 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11314
11315         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11316         code when we P/Invoke the first library in Windows.Forms, instead
11317         of when we first open the assembly.
11318
11319         * assembly.c: Drop the lookup from here.
11320
11321 2004-03-10  Martin Baulig  <martin@ximian.com>
11322
11323         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11324         class for properties, fields and events.  Finally fixes #54945.
11325
11326 2004-03-10  Martin Baulig  <martin@ximian.com>
11327
11328         * metadata.c (mono_metadata_class_equal): New static function;
11329         checks whether two generic instances or two generic parameters are
11330         equal.
11331         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11332         compare classes.        
11333
11334 2004-03-10  Martin Baulig  <martin@ximian.com>
11335
11336         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11337
11338         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11339         argument and write it into the `reflection_info' field.
11340
11341         * icall.c
11342         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11343         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11344
11345 2004-03-09  Jackson Harper  <jackson@ximian.com>
11346
11347         * char-conversions.h: use 8 bits for numeric data its all we need
11348         * icall.c: numeric data is only 8 bits now.
11349
11350 2004-03-09  Martin Baulig  <martin@ximian.com>
11351
11352         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11353
11354         * class.c (init_properties, init_events): Initialize the new
11355         `parent' field.
11356
11357         * reflection.c (typebuilder_setup_properties): Likewise.
11358         (typebuilder_setup_events): Likewise.
11359
11360         * reflection.h (MonoEventInfo): Replaced `parent with
11361         `declaring_type' and `reflected_type'.
11362
11363         * icall.c (ves_icall_get_property_info): Distinguish between
11364         declaring and reflected type.
11365         (ves_icall_get_event_info): Likewise.
11366
11367 2004-03-09  Martin Baulig  <martin@ximian.com>
11368
11369         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11370         (ves_icall_Type_GetField): Correctly set field->klass.
11371
11372 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11373
11374         * loader.h: Fix warning.
11375
11376 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11377
11378         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11379         library routine if present.  Notice that it will still continue
11380         executing even if its missing, for those working on the Gtk#
11381         edition of Windows.Forms.
11382
11383         * assembly.c (do_mono_assembly_open): If loading the
11384         System.Windows.Forms call mono_loader_wini_init.
11385
11386 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11387
11388         * class.h: Added MonoRemoteClass struct.
11389         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11390         function for MonoStrings.
11391         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11392         Added internal call for getting the proxy type.
11393         * marshal.c: Get the type of transparent proxies from its remote_class.
11394         Added methods that generate the IL for type checks and casts:
11395         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11396         mono_marshal_get_proxy_cancast.
11397         * marshal.h: Declaration of the previous new methods.
11398         * object.c: Added new moethods for creating and updating MonoRemoteClass
11399         instances: mono_remote_class, mono_upgrade_remote_class, 
11400         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11401         * verify.c: FIx transparent_proxy_fields layout.
11402         * appdomain.c: Bump corlib version.
11403
11404 2004-03-04  Jackson Harper  <jackson@ximian.com>
11405
11406         * icall.c: Add icall to access char conversion tables.
11407         * char-conversions.h: Character conversion tables.
11408         * Makefile.am: Add char-conversions.h private header file.
11409         
11410 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11411
11412         * appdomain.c (unload_thread_main): Increase unloading timeout to
11413         10 sec as a temporary workaround for Nant problems.
11414
11415 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11416
11417         * gc.c: Add checks for GC_enable and GC_disable.
11418
11419         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11420         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11421         (bug #54988).
11422         
11423 2004-02-27  Martin Baulig  <martin@ximian.com>
11424
11425         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11426         `MonoReflectionType *' instead of a `MonoType *'.
11427
11428 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11429
11430         * gc.c (run_finalize): Avoid finalizing the object representing the
11431         finalizer thread.
11432         (finalizer_thread): Fix warning.
11433
11434 2004-02-25  Martin Baulig  <martin@ximian.com>
11435
11436         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11437         argument for nested types.
11438         (mono_class_create_generic): Added support for nested generictypes.
11439
11440         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11441         `GList *nested'.
11442
11443         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11444
11445         * reflection.c (method_encode_signature): Increase the minimum
11446         value of `size' from 10 to 11.
11447         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11448         and `MonoType **types' arguments instead of the `MonoArray
11449         *types'; added `MonoType *nested_in'.  Recursively instantiate
11450         nested classes. 
11451
11452 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11453
11454         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11455         stack_overflow_ex members which are used by exception handling.
11456
11457         * appdomain.c (mono_runtime_init): Initialize the new members.
11458
11459         * gc.c (mono_gc_enable): New helper function.
11460         * gc.c (mono_gc_disable): New helper function.
11461
11462 2004-02-23  Martin Baulig  <martin@ximian.com>
11463
11464         * icall.c: I must have been really stupid - make it actually work
11465         this time ;-)
11466
11467 2004-02-23  Martin Baulig  <martin@ximian.com>
11468
11469         * loader.c (method_from_memberref): Only inflate the method if
11470         it's in another klass.
11471
11472 2004-02-23  Martin Baulig  <martin@ximian.com>
11473
11474         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
11475         (mono_class_init): If we're a generic instance and an interface,
11476         compute `class->interface_id'; also create `class->interfaces'
11477         here and inflate them.
11478
11479         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
11480         `ginst->is_open'.
11481         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
11482
11483         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
11484
11485 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
11486
11487         * reflection.c (method_encode_code): Improved the error message
11488         generated by the exception.
11489
11490 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11491
11492         * icall.c: Martin did not do what he said in the ChangeLog for
11493         2004-02-18, but put back the changes for properties and events.
11494         Commenting those changes out again and adding comment to bug #54518.
11495         
11496         * process.c: removed warning.
11497
11498 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
11499
11500         * marshal.c (emit_struct_conv): Print an error message instead of
11501         asserting when a type does not have the StructLayout attribute.
11502
11503 2004-02-20  Martin Baulig  <martin@ximian.com>
11504
11505         * reflection.c (mono_type_get_object): Also use the cache for
11506         generic instances.
11507         (mono_reflection_bind_generic_parameters): Always compute
11508         `ginst->ifaces'.        
11509
11510 2004-02-20  Martin Baulig  <martin@ximian.com>
11511
11512         * class.h (MonoGenericMethod): Removed `klass'.
11513
11514         * class.c (mono_class_inflate_generic_method): Added `MonoClass
11515         *klass' argument.
11516
11517 2004-02-20  Martin Baulig  <martin@ximian.com>
11518
11519         * reflection.c (method_encode_methodspec): Actually use the
11520         uninflated signature for the memberref.
11521
11522 2004-02-20  Martin Baulig  <martin@ximian.com>
11523
11524         * class.h (MonoGenericMethod): Removed `declaring'.
11525
11526         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
11527         is NULL, compute it here.
11528
11529 2004-02-20  Martin Baulig  <martin@ximian.com>
11530
11531         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
11532
11533         * metadata.c (mono_metadata_generic_inst_hash): New method.
11534         (mono_metadata_generic_inst_equal): New method.
11535
11536         * reflection.c (mono_reflection_bind_generic_parameters): Use the
11537         `klass->image->generic_inst_cache' cache to avoid creating
11538         duplicate MonoGenericInst's.
11539
11540         * class.c (mono_class_inflate_generic_type): Use the cache.
11541
11542 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11543
11544         * object.c: fixed gc descriptor calculation for embedded valuetypes.
11545
11546 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11547
11548         * icall.c: added Socket.WSAIoctl icall.
11549
11550         * socket-io.[ch]: implemented
11551         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
11552
11553 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
11554
11555         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
11556
11557 2004-02-18  Urs C Muff  <umuff@quark.com>
11558
11559         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
11560         this work on PPC and other big-endian architectures.
11561
11562         * debug-mono-symfile.h: Prepended the names of all the `guint32'
11563         fields with an underscore to make sure they're only accessed by
11564         the read32() macro.
11565
11566 2004-02-18  Martin Baulig  <martin@ximian.com>
11567
11568         * icall.c: Put the klass->refclass changes back for methods and
11569         fields, but not for properties and events.  We're currently not
11570         distinguishing between DeclaringType and ReflectedType for
11571         properties and events, that's what caused the regressions.
11572
11573 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11574
11575         * object.c:
11576         (mono_async_result_new): the handle can be NULL.
11577
11578         * threadpool.c: Use an event instead of a semaphore, don't initialize
11579         it until needed. This saves quite a few semaphores from being created
11580         when using the threadpool.
11581
11582 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
11583
11584         * object.c (mono_string_is_interned_lookup): Fix interning of long
11585         strings. Fixes #54473.
11586
11587         * domain.c (ldstr_equal): Optimize if the two strings are equal.
11588
11589         * icall.c: Revert the klass->refclass changes since they introduce
11590         regressions (bug #54518).
11591
11592 2004-02-18  Martin Baulig  <martin@ximian.com>
11593
11594         * class.c (mono_class_init): If we're a generic instance and don't
11595         come from a TypeBuilder, inflate our members here.
11596         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
11597         (mono_class_create_generic): New public method.
11598         (mono_class_initialize_generic): Removed.
11599         (get_instantiation_name): Renamed to
11600         _mono_class_get_instantiation_name() and made it public.
11601
11602 2004-02-18  Martin Baulig  <martin@ximian.com>
11603
11604         * class.c (mono_class_inflate_generic_type): Clear the new
11605         instance's `nginst->klass' when inflating a generic instance.
11606         (mono_class_is_subclass_of): Added (basic) support for generic
11607         instances.
11608
11609 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
11610
11611         * appdomain.h, domain.c: use a MonoCodeManager instead of a
11612         MonoMempool to hold compiled native code.
11613
11614 2004-02-17  Martin Baulig  <martin@ximian.com>
11615
11616         * class.h (MonoDynamicGenericInst): Added `count_properties' and
11617         `properties'.
11618
11619         * reflection.c (mono_reflection_generic_inst_initialize): Added
11620         `MonoArray *properties' argument.
11621
11622         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
11623
11624 2004-02-17  Martin Baulig  <martin@ximian.com>
11625
11626         * icall.c (ves_icall_Type_GetFields): Renamed to
11627         ves_icall_Type_GetFields_internal() and added a
11628         `MonoReflectionType *rtype' argument; pass it to
11629         mono_field_get_object() to set the field's "reflected" type.
11630         (ves_icall_Type_GetConstructors): Likewise.
11631         (ves_icall_Type_GetEvents): Likewise.
11632         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
11633         argument; pass it to mono_method_get_object() to set the method's
11634         "reflected" type.       
11635
11636 2004-02-17  Martin Baulig  <martin@ximian.com>
11637
11638         * class.h (MonoDynamicGenericInst): New type.
11639         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
11640
11641         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
11642         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
11643         (ves_icall_MonoGenericInst_GetFields): New interncall.
11644
11645         * class.c (mono_class_from_generic): Don't call
11646         mono_class_initialize_generic() if this is a dynamic instance;
11647         ie. it's being created from a TypeBuilder.
11648         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
11649         `class->byval_arg.type'.
11650
11651         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
11652         to `inflate_method' and made static.
11653         (mono_reflection_inflate_field): Removed.
11654         (mono_reflection_generic_inst_initialize): New public method.
11655
11656         * reflection.h (MonoReflectionGenericInst): Removed `methods',
11657         `ctors' and `fields'; added `initialized'.
11658
11659 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
11660
11661         * debug-helpers.c (mono_method_full_name): Fix output for empty
11662         namespaces.
11663
11664 2004-02-12  Martin Baulig  <martin@ximian.com>
11665
11666         * class.h (MonoClassField): Added `MonoType *generic_type'.
11667
11668         * reflection.c (mono_image_get_fieldref_token): Added support for
11669         instantiated generic types.
11670         (field_encode_inflated_field): Removed.
11671         (mono_image_get_inflated_field_token): Removed.
11672         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
11673
11674         * reflection.h (MonoReflectionInflatedField): Removed.
11675
11676 2004-02-12  Martin Baulig  <martin@ximian.com>
11677
11678         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
11679         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
11680
11681         * reflection.c (mono_image_get_methodspec_token): Take a
11682         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
11683         (mono_image_create_token): Check whether we have a
11684         `method->signature->gen_method' and call
11685         mono_image_get_methodspec_token() if appropriate.
11686         (inflated_method_get_object): Removed.
11687         (mono_reflection_bind_generic_method_parameters): Return a
11688         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
11689         (mono_reflection_inflate_method_or_ctor): Likewise.
11690
11691         * reflection.h (MonoReflectionInflatedMethod): Removed.
11692
11693 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
11694
11695         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
11696         for custom valuetype marshalling.
11697
11698         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
11699
11700 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11701
11702         * icall.c: fixed WSAGetLastError_internal name.
11703
11704 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
11705
11706         * threads.c (mono_thread_attach): Allow this to be called multiple
11707         times for a thread.
11708         
11709         * threads.c (build_wait_tids): Do not wait for ourselves.
11710
11711         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
11712         appdomain list is empty.
11713
11714         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
11715         memory returned by mono_string_builder_to_utf16, since it points into
11716         managed memory. Thanks to Bernie Solomon for noticing this.
11717
11718         * icall.c: Add AppDomainSetup icalls.
11719
11720         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
11721
11722         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
11723         types.
11724
11725         * reflection.c (reflection_methodbuilder_to_mono_method): Save
11726         custom attributes to the method_aux struct. Also fix array indexes etc.
11727
11728         * loader.c (mono_method_get_param_names): Make dynamic case work again.
11729         
11730 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
11731
11732         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
11733         (both static and runtime) and reduce startup time.
11734
11735 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
11736
11737         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
11738         AsAny marshalling conversion instead of crashing.
11739
11740         * marshal.c: Fix warnings.
11741
11742 2004-02-09  Martin Baulig  <martin@ximian.com>
11743
11744         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
11745
11746         * reflection.h (MonoReflectionInflatedMethod): Removed the
11747         `declaring' field, it's now in the unmanaged MonoGenericMethod.
11748
11749         * reflection.c (method_encode_methodspec): Removed the `method'
11750         argument; we get it from `gmethod->declaring'.
11751         (inflated_method_get_object): Removed the `declaring' argument.
11752
11753 2004-02-09  Martin Baulig  <martin@ximian.com>
11754
11755         * class.h (MonoGenericMethod): New type.
11756         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
11757         `generic_method'.
11758
11759         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
11760         a `MonoGenericMethod *gen_method' one.
11761
11762         * class.c (mono_class_inflate_generic_type): Take an additional
11763         `MonoGenericMethod * argument.  This is only non-NULL if we're
11764         inflating types for a generic method.   
11765         (mono_class_inflate_generic_signature): Renamed to
11766         inflate_generic_signature() and made static; take a
11767         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
11768         (inflate_generic_header): Take a `MonoGenericMethod *' argument
11769         instead of a `MonoGenericInst *' one.
11770         (mono_class_inflate_generic_method): Likewise.
11771
11772         * reflection.c (encode_generic_method_sig): Take a
11773         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
11774         (method_encode_methodspec): Likewise.
11775         (inflated_method_get_object): Likewise. 
11776
11777         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
11778         field with a `MonoGenericMethod *gmethod' one.  
11779
11780 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
11781
11782         * class.h (mono_class_has_parent): add parens to expansion
11783         so you can ! this.
11784
11785 2004-02-08  Martin Baulig  <martin@ximian.com>
11786
11787         * image.h (MonoImage): Removed `generics_cache'.
11788
11789         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
11790         instead of a `MonoType *' argument; removed the `inflate_methods'
11791         argument.  Don't inflate methods here.
11792
11793         * loader.c (find_method): If it's a generic instance, call
11794         mono_class_init() on the `sclass->generic_inst->generic_type'.
11795
11796         * metadata.c (mono_type_size): Make this work on uninitialized
11797         generic instances; call it on the `ginst->generic_type's class.
11798
11799         * reflection.c (mono_reflection_bind_generic_parameters): Call
11800         mono_class_from_generic() to create the `ginst->klass'.
11801
11802 2004-02-08  Martin Baulig  <martin@ximian.com>
11803
11804         * class.h (MonoClass): Changed type of `generic_inst' from
11805         `MonoType *' to `MonoGenericInst *'.
11806
11807 2004-02-08  Martin Baulig  <martin@ximian.com>
11808
11809         * icall.c (ves_icall_Type_BindGenericParameters): Just call
11810         mono_type_get_object(), this is now creating a `MonoGenericInst'
11811         for MONO_TYPE_GENERICINST.
11812         (ves_icall_MonoGenericInst_GetParentType): Likewise.
11813         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
11814
11815         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
11816         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
11817         (inflated_method_get_object): Added `MonoClass *refclass' argument.
11818         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
11819         and reflected type.
11820
11821         * reflection.h (MonoReflectionInflatedMethod): Removed
11822         `declaring_type' and `reflected_type'.
11823
11824 2004-02-08  Martin Baulig  <martin@ximian.com>
11825
11826         * class.h (MonoGenericInst): Added `MonoType *parent' and
11827         `MonoType **ifaces'.
11828
11829         * reflection.h (MonoReflectionGenericInst): Removed `klass',
11830         `parent' and `interfaces'.
11831
11832         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11833         `MonoType *' argument and return a `MonoType *'.
11834
11835         * icall.c
11836         (ves_icall_MonoGenericInst_GetParentType): New interncall.
11837         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
11838
11839 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
11840
11841         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
11842         valuetype marshalling.
11843
11844 2004-02-06  Martin Baulig  <martin@ximian.com>
11845
11846         * class.c
11847         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
11848         (my_mono_class_from_generic_parameter): Likewise.
11849
11850 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
11851
11852         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
11853         contents of the symbol files lazily.
11854
11855         * object.h (MonoThread): Add 'name' and 'name_len' fields.
11856
11857         * threads.h threads.c icall.c: New icalls for getting and setting the
11858         threads name.
11859
11860 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
11861
11862         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
11863         Raise an exception when the domain is not found.
11864
11865 2004-02-03  Martin Baulig  <martin@ximian.com>
11866
11867         * reflection.c (mono_image_get_methodspec_token): Use the
11868         uninflated signature; fixes gen-33.
11869
11870 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
11871
11872         * gc.c threads.c: Make the finalizer thread a normal managed thread so
11873         the finalizer code can use thread functionality.
11874
11875         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
11876         the finalizer thread.
11877
11878         * threads.c: Make some functions more robust.
11879
11880         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
11881
11882         * metadata.h: Add new marshalling conventions.
11883
11884         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
11885         stringbuilder marshalling. Fixes #53700.
11886
11887         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
11888
11889         * reflection.c (mono_image_get_type_info): Save declarative security
11890         info.
11891
11892         * reflection.c (mono_image_get_field_info): Handle uninitialized 
11893         unmanaged fields as well.
11894
11895         * appdomain.c: Bump corlib version.
11896
11897 2004-02-01  Martin Baulig  <martin@ximian.com>
11898
11899         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
11900         method type arguments.  
11901
11902 2004-01-30  Duncan Mak  <duncan@ximian.com>
11903
11904         * marshal.h: Add prototype for
11905         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
11906         and
11907         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
11908         fix the build.
11909
11910 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
11911
11912         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
11913         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
11914
11915 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11916
11917         * marshal.c (mono_marshal_get_native_wrapper): Add support for
11918         custom marshalling of valuetypes.
11919
11920         * marshal.c: Fix some warnings.
11921
11922 2004-01-29  Martin Baulig  <martin@ximian.com>
11923
11924         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
11925         for generic method parameters.
11926
11927         * reflection.c (method_encode_methodspec): Write the uninflated
11928         signature into the methodspec table.
11929         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
11930         is always the uninflated method.
11931         (reflection_methodbuilder_to_mono_method): Copy the generic
11932         parameters from the MethodBuilder into `header->gen_params'.
11933
11934 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11935
11936         * class.c (mono_class_from_generic_parameter): Fix warning.
11937
11938 2004-01-27  Martin Baulig  <martin@ximian.com>
11939
11940         * class.c (mono_class_from_generic_parameter): Don't create
11941         `klass->methods' here.  
11942
11943 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
11944
11945         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
11946         extension since it does not work with libraries named lib<FOO>.dll.so.
11947
11948 2004-01-25  Martin Baulig  <martin@ximian.com>
11949
11950         * class.c (mono_class_inflate_generic_type): Added support for
11951         MONO_TYPE_GENERICINST.
11952
11953         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
11954         inflate methods on open constructed types.      
11955
11956 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11957
11958         * object.c: fire ProcessExit event in the root AppDomain after running
11959         Main. Fixes bug #53299.
11960
11961 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
11962
11963         * socket-io.c: include the new socket-wrappers.h header.
11964         Use the wrappers instead of the unix socket functions to make the code
11965         more clear.
11966
11967 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
11968
11969         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
11970
11971         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11972         Fixes #22532.
11973
11974 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
11975
11976         * reflection.c (mono_image_create_pefile): Handle the case when the
11977         entry point is not a MethodBuilder.
11978
11979         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11980         field to ReflectionMethod since it is not allways a builder.
11981
11982         * reflection.c (type_get_fully_qualified_name): New helper function to
11983         return the fully qualified name of a type.
11984
11985         * reflection.c (encode_marshal_blob): Always emit the fully qualified
11986         type name for custom marshallers.
11987
11988         * reflection.c (mono_marshal_spec_from_builder): Ditto.
11989
11990         * class.c (mono_class_setup_vtable): If a parent class already 
11991         implements an interface, use the implementing methods from that class.
11992         Fixes #53148.
11993
11994 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11995
11996         * threadpool.c: just return instead of ExitThread to allow for thread
11997         clean up earlier.
11998
11999 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12000
12001         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12002         when closing resource modules.
12003
12004         * reflection.c (mono_image_create_pefile): Handle the case when the
12005         entry point is not a MethodBuilder.
12006
12007         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12008         field to ReflectionMethod since it is not allways a builder.
12009
12010 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12011
12012         * marshal.c (mono_marshal_get_managed_wrapper): 
12013         mono_marshal_alloc takes native int so CONV_I
12014         the arg for 64bits.
12015
12016 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12017
12018         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12019         tokens in the cattr table. Fixes #53108.
12020
12021 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12022
12023         * loader.c: don't trim ".dll" before looking up in the config file.
12024         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12025
12026 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12027
12028         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12029         Return the module which contains the resource as well.
12030         (ves_icall_System_Reflection_Module_Close): New icall.
12031
12032         * appdomain.c: Bump corlib version number.
12033
12034         * image.c (mono_image_addref): New public function.
12035
12036         * assembly.c: Call mono_image_addref.
12037
12038         * reflection.c (mono_module_get_object): Increase reference count of 
12039         the image.
12040
12041         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12042         Fixes #22532.
12043
12044         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12045         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12046         proper exceptions on DllImport problems.
12047
12048 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12049
12050         * class.c, metadata.c: eliminate CSIZE macro.
12051
12052 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12053
12054         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12055         * object.h: Added async_callback field in MonoAsyncResult.
12056         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12057         * verify.c: Added async_callback in MonoAsyncResult layout.
12058
12059 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12060
12061         * reflection.c (mono_reflection_get_custom_attrs): Add support
12062         for Modules.
12063
12064 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12065
12066         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12067         marshalling.
12068         (mono_marshal_method_from_wrapper): Add null pointer check.
12069
12070 2004-01-16  Martin Baulig  <martin@ximian.com>
12071
12072         * debug-mono-symfile.h: Set version number to 36 and reflect
12073         latest symbol writer changes.
12074
12075 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12076
12077         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12078         multi-dimensional arrays.
12079         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12080         (mono_class_from_mono_type): Use bounded_array_class_get.
12081         
12082         * class.c (mono_bounded_array_class_get): New function which takes
12083         a 'bounded' bool argument to distinguish vectors from one dimensional
12084         arrays.
12085
12086         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12087         bounded_array_class_get if the array has bounds.
12088
12089         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12090         Search modules loaded using AssemblyBuilder:AddModule as well.
12091
12092 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12093
12094         * appdomain.c: increased corlib version.
12095         * filewatcher.c: removed g_print.
12096         * icall.c:
12097         (get_property_info): only allocate what is actually requested.
12098         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12099
12100 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12101
12102         * Makefile.am: added filewatcher.[ch]
12103         * filewatcher.[ch]: FileSystemWatcher runtime support.
12104         * icall.c: added new FSW icalls.
12105
12106 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12107
12108         * string-icalls.c: fix stringbuilder regression as suggested by
12109         Iain McCoy <iain@mccoy.id.au>.
12110
12111 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12112
12113         * process.c (process_read_stringtable_block): Recognize '007f' as
12114         a language neutral stringtable block.
12115
12116 2004-01-12  Patrik Torstensson
12117
12118         * object.h (MonoStringBuilder) : Changed layout to support our
12119         new stringbuilder class.
12120         * marshal.c: Change marshalling to support the new layout of 
12121         string builder.
12122         * appdomain.c: increased version number because new layout of
12123         string builder.
12124
12125 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12126
12127         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12128         assembly name as an string instead of an AssemblyName, since it is
12129         easier to extract info from it.
12130
12131         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12132         the culture subdirectories too. Fixes #52231.
12133
12134 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12135
12136         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12137         It takes 2 new parameters with an optional name for the method to look
12138         for and case ignoring info.
12139
12140         * threadpool.c: removed unused variable.
12141
12142 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12143
12144         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12145         It takes 2 new parameters with an optional name for the property to look
12146         for and case ignoring info.
12147         Fixes bug #52753.
12148
12149 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12150
12151         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12152         Fix #52451.
12153
12154 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12155
12156         * appdomain.c:
12157         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12158         Fixes bug #52630.
12159
12160 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12161
12162         * reflection.c: Add support for more than one unmanaged resource.
12163
12164         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12165         in field->def_value, as done in all other cases.
12166
12167         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12168         TypeBuilders.
12169
12170         * reflection.c (mono_reflection_create_runtime_class): Remove 
12171         errorneous assignment to klass->element_class, since it is already
12172         done in mono_reflection_setup_internal_class.
12173
12174 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12175
12176         * gc.c: added missing LeaveCriticalSection.
12177         * icall.c: indented a couple of lines.
12178         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12179         if we call EndInvoke inside a callback. Fixes bug #52601.
12180
12181 2004-01-07  Martin Baulig  <martin@ximian.com>
12182
12183         * mono-debug-debugger.h
12184         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12185
12186 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12187
12188         * appdomain.c: Use messages in NotImplementedException.
12189
12190         * exception.c (mono_get_exception_not_implemented): Now this takes
12191         a message argument.
12192
12193         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12194         exception instead of g_asserting an aborting when something is not
12195         implemented.
12196
12197         Add some inline docs.
12198
12199 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12200
12201         * reflection.h: Update after changes to object layout.
12202
12203         * reflection.c: Implement saving of unmanaged aka win32 resources.
12204
12205         * appdomain.c: Bump version number.
12206
12207         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12208         Handle missing domains gracefully.
12209
12210 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12211
12212         * file-io.c : On Windows, there are much more invalid_path_chars.
12213
12214 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12215
12216         * class.h, object.c: prepare for GetType () speedup.
12217
12218 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12219
12220         * profiler.c: workaround for --profile null reference exception on
12221           cygwin. Patch by Patrik Torstensson.
12222
12223 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12224
12225         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12226         make work for unaligned access.
12227
12228 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12229
12230         * class.c: small cleanup (class->fields [i] -> field).
12231         * image.c: check address of metadata is valid.
12232
12233 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12234
12235         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12236         search the list of loaded assemblies.
12237
12238         * reflection.c (mono_reflection_type_from_name): Use 
12239         mono_assembly_loaded instead of mono_image_loaded.
12240
12241         * reflection.c: Fix warnings.
12242
12243 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12244
12245         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12246         is dynamic. This is needed since an assembly can contain both dynamic and
12247         non-dynamic images.
12248
12249         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12250         assembly->dynamic.
12251
12252         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12253
12254         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12255         to store modules loaded using AddModule.
12256
12257         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12258         on Modules.
12259
12260         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12261
12262         * reflection.c (mono_image_fill_export_table_from_module): New function to
12263         fill out the EXPORTEDTYPES table from a module.
12264
12265         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12266         into a separate function. Also handle loaded non-dynamic modules.
12267
12268         * reflection.c (mono_image_basic_init): Fix memory allocation.
12269
12270         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12271
12272         * assembly.c (mono_assembly_load_references): Make this public.
12273
12274 2003-12-19  Martin Baulig  <martin@ximian.com>
12275
12276         * class.c (mono_class_initialize_generic): Made this static, take
12277         a `MonoGenericInst *' instead of a `MonoClass *'.
12278         (mono_class_from_generic): Call mono_class_initialize_generic()
12279         unless we're already initialized or being called from
12280         do_mono_metadata_parse_generic_inst().
12281
12282         * class.h (MonoGenericInst): Added `initialized' and
12283         `init_pending' flags.
12284
12285         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12286         `mono_class_init (gklass)' or mono_class_initialize_generic()
12287         here; set `generic_inst->init_pending' while parsing the
12288         `type_argv'.
12289
12290 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12291
12292         * locales.c: include string.h for memxxx prototypes
12293
12294 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12295
12296         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12297         constructor when accessing literal fields.
12298
12299 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12300
12301         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12302
12303         * reflection.c (assembly_add_resource_manifest): New function to fill
12304         the MANIFESTRESOURCE table.
12305
12306         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12307
12308         * reflection.h: Update to changes in class layout.
12309
12310         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12311         Reenable call to mono_runtime_is_shutting_down ().
12312
12313         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12314         determine if the runtime is shutting down.
12315
12316 2003-12-16  Jackson Harper <jackson@ximian.com>
12317
12318         * icall.c: comment out call to mono_runtime_is_shutting_down to
12319         fix build.
12320         
12321 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12322
12323         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12324         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12325
12326 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12327
12328         * reflection.c: move definition of swap_with_size
12329         to before its first call
12330
12331 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12332
12333         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12334
12335         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12336         icall.
12337
12338         * object.c: Fix warnings.
12339
12340         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12341         members if FlattenHierarchy is set.
12342
12343         * reflection.c (mono_image_add_decl_security): New function to emit
12344         declarative security.
12345
12346         * reflection.h reflection.c: Add support for declarative security.
12347
12348         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12349         
12350 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12351
12352         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12353         
12354         * appdomain.c verify.c: Moved corlib version checking into its own
12355         function in appdomain.c since it needs to create vtables etc.
12356
12357 2003-12-13  Patrik Torstensson <p@rxc.se>
12358
12359         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12360         instead of unwrapped server.
12361
12362 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12363
12364         * verify.c (check_corlib): Fix field index.
12365
12366 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12367
12368         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12369         GetGacPath icall.
12370
12371 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12372
12373         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12374         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12375         cope with sizeof(size_t) != sizeof(guint32).
12376
12377 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12378
12379         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12380         in case of failure.
12381
12382 2003-12-10  Mark Crichton <crichton@gimp.org>
12383
12384         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12385         in managed code.
12386
12387         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12388
12389 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12390
12391         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12392         marked as deleted.
12393
12394 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12395
12396         * verify.c (check_corlib): Handle the case when the version field is 
12397         initialized by a static constructor.
12398
12399 2003-12-08  Patrik Torstensson  <p@rxc.se>
12400
12401     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12402
12403 2003-12-08  Martin Baulig  <martin@ximian.com>
12404
12405         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12406         a MonoReflectionGenericParameter, also take the parameter index
12407         and name as arguments.
12408         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12409         (ves_icall_MonoGenericParam_initialize): New interncall.
12410         (ves_icall_Type_make_byref_type): New interncall.
12411
12412         * reflection.h (MonoReflectionGenericParam): Derive from
12413         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12414         `index' fields.
12415
12416         * reflection.c (mono_reflection_define_generic_parameter): Create
12417         and return a new MonoReflectionGenericParam; don't initialize the
12418         constraints here.
12419         (mono_reflection_initialize_generic_parameter): New public method;
12420         initializes the constraints and creates the `param->pklass'.
12421
12422 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12423
12424         * reflection.h reflection.c: Use the new fields 'num_types', 
12425         'num_fields' and 'num_methods' to track the number of types etc.
12426
12427         * verify.c (check_corlib): Check corlib version number.
12428
12429 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12430
12431         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12432         function works on all methods.
12433
12434 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12435
12436         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12437         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12438         the custom_type_info flag of the transparent proxy.
12439         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12440         objects that supports IRemotingTypeInfo.
12441         * object.h: Added custom_type_info field in transparent proxy.
12442
12443 2003-12-06  Martin Baulig  <martin@ximian.com>
12444
12445         * class.c (mono_class_create_from_generic): Removed.
12446         (mono_class_from_generic): Check `ginst->klass' before doing
12447         anything else.  This is important to fully support "recursive"
12448         generic types.
12449
12450         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12451         empty `generic_inst->klass' before doing anything else.
12452
12453 2003-12-06  Dick Porter  <dick@ximian.com>
12454
12455         * verify.c: 
12456         * object.h:
12457         * icall.c:
12458         * locales.c: Use C structs to access class fields.  Don't do a
12459         conversion between MonoString and UChar because both are
12460         platform-endian UTF-16.  Compare now takes startindex and count
12461         parameters.  Add a char overload for IndexOf.  Speed up the
12462         invariant string IndexOf.
12463
12464 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12465
12466         * Makefile.am (monosn_LDADD): Fix parallel build.
12467
12468 2003-12-04  Martin Baulig  <martin@ximian.com>
12469
12470         * icall.c
12471         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12472         (ves_icall_Type_make_array_type): New interncall.       
12473
12474 2003-12-04  Martin Baulig  <martin@ximian.com>
12475
12476         * locales.c: also change it in the !HAVE_ICU case.
12477
12478 2003-12-04  Dick Porter  <dick@ximian.com>
12479
12480         * icall.c:
12481         * locales.c: construct_compareinfo is now in CompareInfo, not
12482         CultureInfo.
12483
12484 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
12485
12486         * image.c (mono_image_load_file_for_image): Cache loaded images in the
12487         image->files array.
12488
12489         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
12490         table as well.
12491
12492         * assembly.c (mono_assembly_load_references): Only load references
12493         once.
12494
12495         * class.c (mono_class_from_name): Avoid linear search of the 
12496         EXPORTEDTYPE table.
12497
12498         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
12499
12500 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
12501
12502         * image.h (MonoImage): Add 'field_cache' field.
12503
12504         * loader.c (mono_field_from_token): Cache field lookups.
12505         
12506         * reflection.c (mono_module_get_object): Fix name property.
12507
12508         * icall.c (ves_icall_get_enum_info): Update after changes to 
12509         mono_metadata_get_constant_index ().
12510
12511         * icall.c: Get rid of get_type_info icall, use a separate icall for
12512         each type property to avoid needless memory allocations. Fixes #51514.
12513
12514         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
12515         to avoid needless binary searches.
12516
12517         * class.c (class_compute_field_layout): Move the initialization of
12518         field->def_value to mono_class_vtable ().
12519
12520         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
12521         non-corlib types.
12522
12523         * object.c (mono_object_allocate): Make it inline.
12524
12525         * object.c (mono_object_allocate_spec): Make it inline.
12526         
12527 2003-12-02  Dick Porter  <dick@ximian.com>
12528
12529         * locales.c (create_NumberFormat): NumberFormatInfo construction.
12530         Patch by Mohammad DAMT (mdamt@cdl2000.com).
12531
12532 2003-12-01  Dick Porter  <dick@ximian.com>
12533
12534         * threads.c: Fix signature and call in CreateMutex and
12535         CreateEvent.
12536
12537 2003-12-01  Dick Porter  <dick@ximian.com>
12538
12539         * icall.c: 
12540         * locales.c: Implement string compares and searching
12541
12542         * object.h: Add extra Thread field
12543
12544 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
12545
12546         * reflection.c (fixup_method): Add support for MonoCMethod.
12547
12548 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
12549
12550         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
12551
12552         * reflection.c (assembly_name_to_aname): Allow extra characters in
12553         assembly names. Fixes #51468.
12554
12555 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
12556
12557         * exception.c (mono_exception_from_name_domain): New helper function.
12558
12559         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
12560         exception object in the correct domain.
12561
12562         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
12563         formatting + make a copy a the input data.
12564
12565         * loader.c (mono_get_method_from_token): Methods which contain
12566         native code do not have entries in the ImplMap.
12567
12568         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
12569         Thanks to Gonzalo for spotting this.
12570         
12571         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
12572         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
12573
12574         * assembly.h (mono_assembly_load_from): Split the second part of 
12575         assembly loading into a new public function.
12576
12577         * exception.h (mono_get_exception_bad_image_format): New function.
12578
12579 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
12580
12581         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12582         Enumerate all modules inside a dynamic assembly. Fixes #51293.
12583         
12584         * icall.c: Add new icall for creating dynamic methods.
12585
12586         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
12587
12588         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
12589
12590         * reflection.c (mono_reflection_create_dynamic_method): New icall to
12591         create a dynamic method.
12592
12593         * reflection.c (resolve_object): New helper function.
12594
12595         * reflection.c: Generalize ReflectionMethodBuilder and the functions
12596         which manipulate it so they can also work on dynamic methods.
12597
12598         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
12599         creating the MonoReflectionMethodAux structure if it is not needed.
12600         
12601         * reflection.h verify.c: Update after changes to object layout.
12602
12603         * reflection.c (method_builder_encode_signature): Fix compilation on
12604         gcc 2.95.x.
12605
12606 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
12607
12608         * appdomain.h: Added support for context static fields. Added static_data
12609           field to MonoAppContext and renamed thread_static_fields to a more
12610           generic special_static_fields in MonoAppDomain, since it can now contain
12611           context static fields.
12612         * domain.c: Updated hashtable name.
12613         * object.c: Replaced field_is_thread_static() for a more generic
12614           field_is_special_static() which also checks for context static attribute.
12615           In mono_class_vtable(), added support for static context fields.
12616         * threads.c: Changed methods that manage thread static fields to more
12617           generic methods so they can be reused both for thread and context static
12618           data.
12619         * threads.h: Declared some new methods.
12620
12621 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
12622
12623         * reflection.h: Update after changes to the managed types.
12624
12625         * reflection.c (encode_custom_modifiers): New helper function.
12626
12627         * reflection.c (method_encode_signature): Emit custom modifiers.
12628
12629         * reflection.c (field_encode_signature): Emit custom modifiers.
12630
12631 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
12632
12633         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
12634
12635         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
12636         implementation.
12637
12638         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
12639         icall.
12640
12641         * object.c (mono_field_get_value_object): New function.
12642
12643         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
12644         specific.
12645
12646 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
12647
12648         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
12649         return a preallocated out-of-memory exception instance.
12650
12651         * object.c (out_of_memory): Use the new function.
12652
12653         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
12654         flag is before the custom modifiers. Fixes #49802.
12655
12656 2003-11-16  Martin Baulig  <martin@ximian.com>
12657
12658         * class.c (mono_class_is_open_constructed_type): Implemented the
12659         MONO_TYPE_GENERICINST case.
12660
12661 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
12662
12663         * assembly.c (mono_assembly_fill_assembly_name): New function to
12664         fill out the MonoAssemblyName structure.
12665         (mono_assembly_open): Use the new function.
12666
12667         * icall.c (fill_reflection_assembly_name): New helper function.
12668
12669         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
12670         new function.
12671
12672         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
12673
12674 2003-11-15  Martin Baulig  <martin@ximian.com>
12675
12676         * class.c (mono_class_is_open_constructed_type): New public
12677         function; checks whether a type is an open constructed type,
12678         ie. whether it still contains type parameters.
12679         (mono_class_inflate_generic_type): If we're a type parameter and
12680         the inflated type is also a MONO_TYPE_(M)VAR, return the original
12681         type.
12682
12683         * class.h (MonoGenericInst): Added `guint32 is_open'.
12684
12685         * loader.c (method_from_methodspec): Check whether we're an open
12686         or closed constructed type and set `ginst->is_open'.
12687
12688         * reflection.c (mono_reflection_bind_generic_parameters): Check
12689         whether we're an open or closed constructed type and set
12690         `ginst->is_open'.
12691         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
12692         from open constructed types.
12693
12694 2003-11-15  Martin Baulig  <martin@ximian.com>
12695
12696         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12697         a generic instance (instead of a generic type declaration) with
12698         unbound generic parameters, bind them to our actual types.
12699
12700 2003-11-14  Martin Baulig  <martin@ximian.com>
12701
12702         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
12703
12704         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12705         an interface type, populate `res->interfaces' with instantiated
12706         versions of all the interfaces we inherit.
12707
12708 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
12709
12710         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
12711         when MONO_PATH is set but doesn't contain the install dir.
12712
12713 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12714
12715         * icall.c:
12716         (ves_icall_Type_GetInterfaces): don't return an interface twice when
12717         it's also implemented in base classes. Fixes bug #50927.
12718
12719 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
12720
12721         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
12722         if this method is called from a finalizer. Fixes #50913.
12723
12724 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
12725
12726         * threads.c: Implement VolatileRead/VolatileWrite
12727
12728         * icall.c: Add new icalls for VolatileRead/VolatileWrite
12729
12730 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12731
12732         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
12733         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
12734         2.95.3.
12735
12736         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
12737         from Peter Ross (pro@missioncriticalit.com).
12738         
12739 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
12740
12741         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
12742
12743 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12744
12745         * assembly.c (mono_assembly_load_references): Disable check because it
12746         triggers on older corlibs which lots of people have.
12747
12748 2003-11-12  Jackson Harper  <jackson@ximian.com>
12749
12750         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
12751         load corlib.dll if mscorlib.dll is not found.
12752         * assembly.h: Remove corlib name define.
12753         * class.c:
12754         * domain.c:
12755         * image.c: Change corlib name to mscorlib.
12756         
12757 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12758
12759         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
12760
12761 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
12762
12763         * appdomain.h: Added loader_optimization here to sync with the C#
12764         code, and add disallow_binding_redirects field.
12765
12766 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
12767
12768         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
12769
12770         * reflection.c (mono_image_build_metadata): Fix crash on modules
12771         with no types.
12772
12773         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
12774
12775         * icall.c (ves_icall_get_method_info): Return callingConvention as
12776         well.
12777
12778         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
12779         namespaces from the EXPORTEDTYPE table as well.
12780
12781         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
12782         from all modules inside the assembly.
12783         
12784 2003-11-11  Martin Baulig  <martin@ximian.com>
12785
12786         * reflection.c (mono_reflection_bind_generic_parameters): Make
12787         this work for interfaces.
12788
12789 2003-11-11  Martin Baulig  <martin@ximian.com>
12790
12791         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
12792
12793 2003-11-11  Martin Baulig  <martin@ximian.com>
12794
12795         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
12796         "MonoInflatedMethod" and "MonoInflatedCtor".
12797
12798 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
12799
12800         * reflection.c (resolution_scope_from_image): Use the assembly table
12801         from the manifest module, since other modules don't have it.
12802
12803         * debug-helpers.c (mono_type_full_name): New helper function.
12804
12805         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
12806
12807         * image.c (mono_image_load_file_for_image): New public function which
12808         is a replacement for the load_file_for_image in class.c.
12809
12810         * assembly.c (mono_assembly_load_module): A wrapper for the function
12811         above which does assembly association and reference loading too.
12812
12813         * class.c (mono_class_from_name): Call mono_assembly_load_module.
12814
12815 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12816
12817         * appdomain.c: not all of the attributes for the full assembly name
12818         are required and the order doesn't matter. Fixes bug #50787.
12819
12820 2003-11-10  Dick Porter  <dick@ximian.com>
12821
12822         * locales.c: Use platform-endian UTF16
12823
12824 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
12825
12826         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
12827         
12828 2003-11-10  Martin Baulig  <martin@ximian.com>
12829
12830         * metadata.c
12831         (mono_metadata_load_generic_params): Make this actually work.
12832
12833         * reflection.c (mono_reflection_bind_generic_parameters): If our
12834         parent is a generic instance, pass all the `types' to it, no
12835         matter whether it has the same number of type parameters or not.
12836
12837 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
12838
12839         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
12840
12841         * assembly.c (mono_assembly_load_references): Move the image<->assembly
12842         assignment code to this function so it gets called recursively for all
12843         modules.
12844
12845         * image.c (load_modules): Remove the assembly assignment since it is
12846         now done by mono_assembly_load_references.
12847         
12848         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12849         Add 'module' argument.
12850         (mono_module_get_types): New helper function.
12851         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
12852
12853 2003-11-08  Martin Baulig  <martin@ximian.com>
12854
12855         * class.c (mono_class_inflate_generic_method): Interface method
12856         don't have a header.
12857
12858         * reflection.c (mono_image_get_methodspec_token): Take an
12859         additional `MonoGenericInst *' argument instead of reading it from
12860         the header; this is necessary to support interfaces.
12861         (mono_image_create_token): Pass the `MonoGenericInst *' from the
12862         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
12863         (inflated_method_get_object): Take an additional `MonoGenericInst *'
12864         argument.
12865
12866         * reflection.h (MonoReflectionInflatedMethod): Added
12867         `MonoGenericInst *ginst'.
12868
12869 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
12870
12871         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
12872
12873 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
12874
12875         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
12876
12877 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
12878
12879         * reflection.c 
12880         (reflection_methodbuilder_from_method_builder):
12881         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
12882         initialize a ReflectionMethodBuilder structure.
12883         (mono_image_get_methodbuilder_token):
12884         (mono_image_get_ctorbuilder_token): New functions to emit memberref
12885         tokens which point to types in another module inside the same assembly.
12886
12887         * reflection.c: Use the new helper functions.
12888         
12889         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
12890
12891         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
12892         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
12893
12894         * reflection.c (resolution_scope_from_image): Emit a moduleref if
12895         neccesary.
12896
12897         * reflection.c (mono_image_build_metadata): Emit metadata only for the
12898         current module. Emit the manifest only for the main module.
12899
12900         * reflection.c (mono_image_create_token): Add assertion when a 
12901         memberref needs to be created.
12902
12903         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
12904
12905         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
12906         larger buffer for the custom attribute blob. Fixes #50637.
12907         
12908 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12909
12910         * threadpool.c: notify listener on async processing handles after
12911         invoking the async callback. Thanks to Zoltan.
12912
12913 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12914
12915         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
12916         avoid code duplication.
12917
12918         * reflection.h (MonoDynamicImage): New type which is currently unused,
12919         but will be used through the ref.emit code in place of 
12920         MonoDynamicAssembly.
12921
12922         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12923         object layout.
12924
12925         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
12926         a MonoDynamicImage instead of just a MonoImage.
12927         
12928         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
12929         icalls to ModuleBuilder but keep their semantics, so they will work
12930         with moduleb->assemblyb. This will change later.
12931         
12932 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12933
12934         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12935         object layout.
12936
12937         * reflection.c (mono_image_build_metadata): Avoid creation of a default
12938         main module, since it is now done by the managed code.
12939
12940 2003-11-03  Martin Baulig  <martin@ximian.com>
12941
12942         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
12943         `ginst->klass' here.
12944         (method_encode_methodspec): Don't use the `ginst->generic_method's
12945         klass if it's a generic instance, use `ginst->klass' in this case.
12946
12947 2003-11-03  Martin Baulig  <martin@ximian.com>
12948
12949         * reflection.c (mono_image_get_generic_method_param_info):
12950         Removed, use mono_image_get_generic_param_info() instead.
12951         (mono_image_get_type_info): Write the GenericParam table before
12952         the Method table.  This is neccessary because in the GenericParam
12953         table, type parameters of the class (ie. '!0' etc.) must come
12954         before the ones from its generic methods (ie. '!!0' etc).
12955
12956 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12957
12958         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
12959
12960 2003-11-02  Martin Baulig  <martin@ximian.com>
12961
12962         * reflection.c (create_generic_typespec): Take a
12963         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
12964         the generic parameters from it.
12965
12966 2003-11-02  Martin Baulig  <martin@ximian.com>
12967
12968         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
12969         instead of a `MonoClassField *' since we just need the type.
12970         (create_generic_typespec): New static function.  Creates a
12971         TypeSpec token for a generic type declaration.
12972         (mono_image_get_generic_field_token): New static function.
12973         (mono_image_create_token): If we're a FieldBuilder in a generic
12974         type declaration, call mono_image_get_generic_field_token() to get
12975         the token.
12976
12977 2003-11-02  Martin Baulig  <martin@ximian.com>
12978
12979         * reflection.h
12980         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
12981         `MonoReflectionGenericInst *declaring_type' and
12982         `MonoReflectionGenericInst *reflected_type' fields.
12983
12984         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
12985         `MonoReflectionGenericInst *declaring_type' and a
12986         `MonoReflectionGenericInst *reflected_type' argument instead of a
12987         single `MonoReflectionGenericInst *type' one.  Set
12988         `res->declaring_type' and `res->reflected_type' from them.
12989         (mono_reflection_inflate_field): Likewise.      
12990
12991 2003-11-02  Martin Baulig  <martin@ximian.com>
12992
12993         * class.c (mono_class_setup_vtable): Don't store generic methods
12994         in the vtable.  
12995
12996 2003-11-02  Martin Baulig  <martin@ximian.com>
12997
12998         * reflection.h (MonoReflectionGenericInst): Added
12999         `MonoReflectionType *declaring_type'.
13000
13001         * reflection.c (mono_reflection_bind_generic_parameters): Use
13002         `if (tb->parent)' instead of `klass->parent'.
13003
13004 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13005
13006         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13007         with an empty ASSEMBLY table.
13008
13009         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13010         variable in the inner and outer loops.
13011
13012 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13013
13014         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13015         argument.
13016
13017         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13018         
13019         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13020         icalls. Instead, do everything in managed code. This is needed since
13021         it is hard to restore the original domain etc. in unmanaged code in the
13022         presence of undeniable exceptions.
13023
13024         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13025         New icalls to push and pop appdomain refs.
13026
13027 2003-10-31  Martin Baulig  <martin@ximian.com>
13028
13029         * class.c (inflate_generic_type): Renamed to
13030         mono_class_inflate_generic_type() and made it public.
13031
13032         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13033         New interncall.
13034
13035         * loader.c (mono_field_from_memberref): Also set the retklass for
13036         typespecs.
13037
13038         * fielder.c (mono_image_get_inflated_field_token): New static
13039         method; creates a metadata token for an inflated field.
13040         (mono_image_create_token, fixup_method): Added support for
13041         "MonoInflatedField".
13042         (fieldbuilder_to_mono_class_field): New static function.
13043         (mono_reflection_inflate_field): New public function.
13044
13045         * reflection.h
13046         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13047         (MonoReflectionInflatedField): New typedef.     
13048
13049 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13050
13051         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13052         for Solaris and other platforms without s6_addr16
13053
13054 2003-10-30  Martin Baulig  <martin@ximian.com>
13055
13056         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13057         argument instead of two.
13058         (mono_class_inflate_generic_signature): Likewise.
13059         (inflate_generic_header): Likewise.
13060         (mono_class_inflate_generic_method): Likewise.  In addition, if
13061         `ginst->klass' is set, it becomes the new `method->klass'.
13062
13063         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13064         field.
13065
13066         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13067         first byte. [FIXME]
13068         (method_encode_methodspec): If we have generic parameters, create
13069         a MethodSpec instead of a MethodRef.
13070         (fixup_method): Added support for "MonoInflatedMethod" and
13071         "MonoInflatedCtor".
13072         (mono_image_create_token): Added support for "MonoInflatedMethod"
13073         and "MonoInflatedCtor".
13074         (inflated_method_get_object): New static function; returns a
13075         managed "System.Reflection.MonoInflatedMethod" object.
13076         (mono_reflection_bind_generic_method_parameters): Return a
13077         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13078         (mono_reflection_inflate_method_or_ctor): Likewise.
13079         (mono_image_get_generic_method_param_info): Initialize unused
13080         fields to zero.
13081         (mono_image_get_generic_param_info): Likewise.
13082
13083         * reflection.h (MonoReflectionInflatedMethod): New public
13084         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13085         "S.R.MonoInflatedCtor" classes.
13086
13087         * loader.c (method_from_memberref): If we're a TypeSpec and it
13088         resolves to a generic instance, inflate the method.
13089
13090 2003-10-28  Dick Porter  <dick@ximian.com>
13091
13092         * object.c (mono_runtime_run_main): Convert command-line arguments
13093         into utf8, falling back to the user's locale encoding to do so.
13094
13095 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13096
13097         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13098         at this time.
13099
13100         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13101
13102         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13103         up icalls at method definition time. Partially fixes #33569.
13104
13105 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13106
13107         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13108         marshalling of arrays. Fixes #50116.
13109
13110         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13111
13112         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13113         points to a vtable in the dying appdomain.
13114
13115         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13116         listeners into unmanaged code inside the lock.
13117
13118         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13119         domains and add some comments.
13120
13121 2003-10-25  Martin Baulig  <martin@ximian.com>
13122
13123         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13124
13125         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13126
13127         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13128         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13129         currently parsing.  Create the generic class and store it in
13130         `generic_inst->klass' before parsing the type arguments.  This is
13131         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13132         for an example.
13133         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13134         to support recursive typespec entries.
13135
13136         * class.c (mono_class_setup_parent): If our parent is a generic
13137         instance, we may get called before it has its name set.
13138         (mono_class_from_generic): Splitted into
13139         mono_class_create_from_generic() and mono_class_initialize_generic().
13140
13141 2003-10-25  Martin Baulig  <martin@ximian.com>
13142
13143         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13144         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13145         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13146         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13147
13148         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13149         (create_typespec): Likewise.
13150         (mono_reflection_bind_generic_parameters): Return a
13151         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13152         (mono_reflection_inflate_method_or_ctor): New public function.
13153
13154         * reflection.h (MonoReflectionGenericInst): New typedef.        
13155
13156 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13157
13158         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13159         inside the domain lock. Fixes #49993.
13160         
13161         * object.c (mono_class_vtable): When typed allocation is used, 
13162         allocate vtables in the GC heap instead of in the mempool, since the
13163         vtables contain GC descriptors which are used by the collector even
13164         after the domain owning the mempool is unloaded.
13165
13166         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13167
13168         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13169         reflect what it does. Also invalidate mempools instead of freeing
13170         them if a define is set.
13171
13172         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13173         of the appdomain.
13174         
13175         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13176         hold the finalizable objects in this domain.
13177
13178         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13179         appdomain.
13180
13181         * appdomain.c (mono_domain_set): New function to set the current
13182         appdomain, but only if it is not being unloaded.
13183
13184         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13185         appdomain which is being unloaded.
13186         
13187         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13188         unloading of the root appdomain.
13189
13190         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13191         icall to execute a method in another appdomain. Intended as a 
13192         replacement for InternalSetDomain, which can confuse the code 
13193         generation in the JIT.
13194
13195         * appdomain.c (mono_domain_is_unloading): New function to determine
13196         whenever an appdomain is unloading.
13197
13198         * appdomain.c (mono_domain_unload): New function to correctly unload
13199         an appdomain.
13200
13201         * assembly.c (mono_assembly_load_references): Check that an assembly
13202         does not references itself.
13203
13204         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13205         domain manually, it asks the finalizer thread to do it, then waits for
13206         the result. Also added a timeout.
13207
13208         * icall.c: Register the new icalls.
13209
13210         * threads.h threads.c: Export the mono_gc_stop_world and 
13211         mono_gc_start_world functions.
13212         
13213         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13214         function to fill out the mempool with 0x2a.
13215
13216 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13217
13218         * reflection.h (MonoReflectionMethodAux): New structure to store
13219         information which is rarely used, thus is not in the MonoMethod
13220         structure.
13221
13222         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13223         store the aux info.
13224
13225         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13226         and marshalling info into the aux structure.
13227
13228         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13229         from the aux structure.
13230
13231         * loader.c (mono_method_get_param_names): Retrieve the param names from
13232         the aux structure.
13233         
13234 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13235
13236         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13237         warning.
13238
13239 2003-10-21  Dick Porter  <dick@ximian.com>
13240
13241         * socket-io.c
13242         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13243         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13244
13245 2003-10-21  Martin Baulig  <martin@ximian.com>
13246
13247         * reflection.c (mono_reflection_bind_generic_parameters):
13248         `klass->parent' is NULL for interfaces.
13249
13250 2003-10-21  Martin Baulig  <martin@ximian.com>
13251
13252         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13253
13254 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13255
13256         * exception.c (mono_exception_from_name_msg): New helper function for
13257         creating exceptions and initializing their message field.
13258
13259         * exception.c: Simplify functions using the new helper.
13260
13261         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13262         New function.
13263
13264         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13265         mono_raise_exception, since otherwise gcc doesn't generate the function
13266         epilog for raise_exception, confusing the stack unwinding in the JIT.
13267         Fixes #45043.
13268
13269         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13270         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13271         Fixes #49499.
13272
13273 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13274
13275         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13276         utf8.
13277
13278 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13279
13280         * icall.c: Removed GetUninitializedObject method because
13281           AllocateUninitializedClassInstance does the same.
13282
13283 2003-10-18  Martin Baulig  <martin@ximian.com>
13284
13285         * class.c (inflate_generic_signature): Renamed to
13286         mono_class_inflate_generic_signature() and made it public.
13287         (my_mono_class_from_generic_parameter): New static function; if we
13288         don't already have the generic parameter's MonoClass, create a
13289         very simple one which is just used internally in the runtime and
13290         not passed back to managed code.
13291
13292         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13293
13294         * metadata.h (MonoMethodSignature): Moved the
13295         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13296         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13297
13298         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13299         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13300         interncall on the MonoMethod class, not on MethodInfo.
13301         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13302         calling mono_reflection_bind_generic_method_parameters() directly.
13303
13304         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13305         return the already computed `method->signature'.
13306         (method_from_methodspec): New static function to load a method
13307         from a MethodSpec entry.
13308         (mono_get_method_from_token): Call the new method_from_methodspec()
13309         for MethodSpec tokens.  
13310         (mono_get_method_from_token): If we're a generic method, load the
13311         type parameters.
13312
13313         * reflection.c (mono_image_get_memberref_token): Allow
13314         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13315         table.
13316         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13317         (mono_image_create_token): First check whether it's a generic
13318         method (so we'd need to create a MethodSpec), then do the other
13319         two alternatives.
13320         (mono_reflection_bind_generic_method_parameters): Return a
13321         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13322         called directly from the interncall.
13323
13324 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13325
13326         * reflection.c (load_public_key): Move loading of the public key
13327         into managed code.
13328
13329         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13330
13331         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13332         fields.
13333
13334         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13335         culture, hash_alg and public_key. Fixes #49555.
13336
13337 2003-10-17  Martin Baulig  <martin@ximian.com>
13338
13339         * class.h (MonoGenericInst): Moved this declaration here and added
13340         `MonoMethod *generic_method'.
13341
13342         * icall.c
13343         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13344         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13345
13346         * metadata.c (mono_metadata_type_equal): Two types of
13347         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13348         index; ie. don't compare the address of the `MonoGenericParam'
13349         structure.
13350         (mono_metadata_load_generic_params): Removed the `MonoMethod
13351         *method' argument.
13352
13353         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13354         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13355
13356         * reflection.c (method_encode_signature): Encode the number of
13357         generic parameters.
13358         (encode_generic_method_sig): New static function.
13359         (method_encode_methodspec): New static function; creates an entry
13360         in the MethodSpec table for a generic method.
13361         (mono_image_get_methodspec_token): New static function.
13362         (mono_image_create_token): Call mono_image_get_methodspec_token()
13363         for generic methods.
13364         (mono_reflection_bind_generic_method_parameters): New public
13365         function.  Instantiates a generic method.
13366
13367 2003-10-16  Martin Baulig  <martin@ximian.com>
13368
13369         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13370         *gen_params' here from MonoMethodHeader.
13371
13372         * metadata.c (mono_metadata_parse_method_signature): If we have
13373         generic parameters, initialize `method->gen_params' and then set
13374         the correct `type->data.generic_param' in all the parameters.
13375
13376 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13377
13378         * threads.c (mono_threads_get_default_stacksize): New function to 
13379         return the default stacksize.
13380
13381         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13382         termination of the finalizer thread, since the previous method had
13383         race conditions. Fixes #49628.
13384
13385         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13386         as for the other managed threads.
13387
13388 2003-10-16  Martin Baulig  <martin@ximian.com>
13389
13390         * class.c (inflate_generic_signature): Copy `generic_param_count'
13391         and `gen_params'.
13392
13393         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13394         New interncall.
13395
13396         * metadata.c (mono_metadata_parse_method_signature): Actually set
13397         the `method->generic_param_count' here.
13398         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13399
13400 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13401
13402         * object.h: Add a new field to TypedRef to simplify the implementation
13403         of the REFANY opcodes in the JIT.
13404
13405         * icall.c: Make use of the new field.
13406
13407         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13408         dynamically.
13409
13410 2003-10-15  Martin Baulig  <martin@ximian.com>
13411
13412         * class.c (mono_class_from_gen_param): Renamed to
13413         mono_class_from_generic_parameter() and moved most of the
13414         functionality from mono_reflection_define_generic_parameter()
13415         here; ie. we create a "real" class here.
13416         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13417         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13418         previously been called.
13419
13420         * class.h (MonoGenericParam): Moved the declaration of this struct
13421         here from metadata.h and added `MonoMethod *method'.
13422
13423         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13424         interncall.
13425
13426         * loader.c (mono_get_method_from_token): If we have any generic
13427         parameters, call mono_metadata_load_generic_params() to read them
13428         from the MONO_TABLE_GENERICPAR.
13429
13430         * metadata.c (mono_metadata_load_generic_params): Added
13431         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13432
13433         * metadata.h (MonoMethodSignature): Replaced
13434         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13435         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13436
13437         * reflection.c (mono_reflection_define_generic_parameter): Moved
13438         most of the functionality into the new
13439         mono_class_from_generic_parameter(); set the `method' field if
13440         we're a method parameter.       
13441
13442 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13443
13444         * marshal.c (emit_struct_conv): if native size is 0
13445         emit no code.
13446
13447 2003-10-14  Martin Baulig  <martin@ximian.com>
13448
13449         * icall.c: The generics API has changed in the spec since it was
13450         added to System.Type; these modifications make it match the spec
13451         again.
13452         (ves_icall_Type_GetGenericParameters): Renamed to
13453         `ves_icall_Type_GetGenericArguments'.
13454         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13455         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13456         `ves_icall_MonoType_get_HasGenericArguments'.
13457         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13458         `ves_icall_MonoType_get_IsGenericParameter'.
13459         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13460         this is no interncall anymore.
13461         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13462         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13463
13464 2003-10-14  Martin Baulig  <martin@ximian.com>
13465
13466         * reflection.c (mono_reflection_bind_generic_parameters): Also
13467         inflate generic methods if we're reading the class from IL.
13468
13469 2003-10-13  Martin Baulig  <martin@ximian.com>
13470
13471         * reflection.c (mono_reflection_define_generic_parameter): This
13472         method isn't called directly from the icall anymore; take a
13473         `MonoReflectionAssemblyBuilder *' so we can use this for type and
13474         method generic parameters.
13475         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
13476         (method_builder_encode_signature): Encode generic parameters.
13477         (mono_image_get_method_info): Write generic params to the
13478         MONO_TABLE_GENERICPARAM table.
13479
13480         * reflection.h (MonoReflectionMethodBuilder): Added
13481         `MonoArray *generic_params'.
13482
13483         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
13484
13485         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
13486         wrapper for mono_reflection_define_generic_parameter().
13487         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
13488
13489 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
13490
13491         * marshal.h: Add missing function to fix build.
13492
13493         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
13494         the SetLastError pinvoke attribute.
13495
13496         * marshal.c (mono_marshal_set_last_error): New helper function called
13497         by the generated code.
13498         
13499         * marshal.c (mono_mb_emit_branch): New helper function.
13500
13501         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
13502
13503         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13504         classes as parameters and return values of delegates. Fixes #29256. 
13505
13506 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
13507
13508         * locales.c: use gint32 in non HAVE_ICU case
13509
13510 2003-10-11  Martin Baulig  <martin@ximian.com>
13511
13512         * mono-debug.c (mono_debug_add_method): Added a workaround for
13513         bug #48591.
13514
13515 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
13516
13517         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
13518         delegates passed to native code must use the STDCALL calling 
13519         convention. Fixes #35987.
13520
13521 2003-10-10  Martin Baulig  <martin@ximian.com>
13522
13523         * class.c (inflate_generic_type): If we're inflating for a generic
13524         type instance (and not for a generic method), return
13525         MONO_TYPE_MVAR unchanged.
13526
13527 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13528
13529         * string-icalls.c: Join ignores null strings in the source array.
13530         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
13531         * threads.c: GetAvailableTheads is slightly more accurate.
13532
13533 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
13534
13535         * threads.h threads.c : add mono_threads_set_default_stacksize
13536         and pass default to CreateThread calls.
13537
13538 2003-10-09  Dick Porter  <dick@ximian.com>
13539
13540         * icall.c:
13541         * locales.h:
13542         * locales.c: Internal calls for constructing CultureInfo and
13543         related objects from libicu (if its available.)
13544
13545 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
13546
13547         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
13548
13549 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13550
13551         * threadpool.c: added an argument to async_invoke_thread that is the
13552         item to process, pass the MonoAsyncResult to the thread start function
13553         when creating a new thread. This way we don't need to acquire any lock
13554         when we're creating a new thread. Readded a semaphore for faster
13555         response times (instead of that Sleep i added).
13556
13557 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
13558
13559         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
13560         get daylight change dates better on Windows, fix handling
13561         of platforms without tm_gmtoff.
13562
13563 2003-10-06  Martin Baulig  <martin@ximian.com>
13564
13565         * class.c (inflate_generic_method): Renamed to
13566         mono_class_inflate_generic_method() and made public.
13567         (mono_class_init): Don't inflate the generic methods here.
13568         (mono_class_from_generic): Added `gboolean inflate_methods'
13569         argument.  Inflate the methods here.
13570
13571         * loader.c (mono_method_get_param_names): Ignore instances of
13572         generic types for the moment.
13573
13574         * reflection.c (fixup_method): Added support for inflated methods.
13575         (mono_image_create_token): Use mono_image_get_methodref_token()
13576         for inflated methods.
13577         (mono_custom_attrs_from_param): Ignore instances of generic types
13578         for the moment.
13579         (mono_reflection_bind_generic_parameters): New public function.
13580         Moved all the functionality from
13581         ves_icall_Type_BindGenericParameters() here and added support for
13582         dynamic types.
13583         (mono_reflection_define_generic_parameter): Initialize
13584         `klass->methods' here.
13585
13586         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
13587         functionality into mono_reflection_define_generic_parameter().
13588         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
13589         TypeBuilder, return that TypeBuilder.
13590
13591 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13592
13593         * appdomain.c: removed mono_delegate_semaphore.
13594
13595         * threadpool.c:
13596         (mono_thread_pool_add): moved hash table creation inside and the thread 
13597         creation outside of the critical region.
13598         (mono_thread_pool_finish): removed obsolete code.
13599         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
13600         continue or exit the thread depending on the queue.
13601
13602 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
13603
13604         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
13605         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
13606         handle more bool marshalling options
13607
13608 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
13609
13610         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
13611         arrays of structs. Also add a more descriptive error message when
13612         a structure member is marshalled as LPArray.
13613
13614 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
13615
13616         * marshal.c (mono_marshal_get_native_wrapper): Add support for
13617         marshalling arrays of complex types. Fixes #29098. Also remove an
13618         usused and incomplete function.
13619
13620 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13621
13622         * gc.c: report heap_size - free_bytes as total memory allocated
13623         (bug#49362).
13624
13625 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
13626
13627         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
13628         fix timezone handling problems on Windows.
13629         
13630         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
13631         asserts when the year is outside the range handled by ms the functions.
13632
13633         * class.c (setup_interface_offsets): If the class is an interface,
13634         fill out its interface_offsets slot.
13635
13636 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13637
13638         * threadpool.c: mark threadpool threads as background.
13639
13640 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
13641
13642         * decimal.c - define DECINLINE to nothing if not using GCC
13643
13644 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
13645
13646         * assembly.c: More refcount fixes.
13647
13648 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13649
13650         * string-icalls.c: if we're not trimming, return the same string.
13651         When not splitting, don't create a new string.
13652
13653 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13654
13655         * image.c:
13656         (mono_image_open): increment the ref_count inside the critical section.
13657
13658 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
13659
13660         * image.c (mono_image_open): Fix reference counting bug.
13661
13662 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
13663
13664         * marshal.c (mono_marshal_type_size) struct alignment changed for 
13665         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
13666         64bits. Avoid leak in mono_marshal_get_native_wrapper when
13667         mono_lookup_pinvoke_call throws.        
13668
13669 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
13670
13671         * reflection.c (mono_reflection_parse_type): Fix #49114.
13672
13673         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
13674         temporary workaround for cygwin header problem.
13675
13676         * object.c (mono_object_isinst): Synchronize this with the code
13677         generated by the JIT for casts.
13678
13679 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
13680
13681         * reflection.c (encode_type): Fix #38332.
13682
13683 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
13684
13685         * marshal.c (mono_marshal_method_from_wrapper): New function to return
13686         the original method from the wrapper method.
13687
13688 2003-09-25  Martin Baulig  <martin@ximian.com>
13689
13690         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
13691         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
13692         (ves_icall_Type_get_IsGenericInstance): New interncall.
13693
13694 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
13695
13696         * object.c: fix cast warning in big endian code.
13697
13698 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
13699
13700         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
13701         
13702 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13703
13704         * assembly.c: don't call check_env from mono_assembly_load. It's
13705         already done once in mono_assemblies_init and may cause headaches when
13706         multiple threads are loading assemblies.
13707
13708 2003-09-19  Martin Baulig  <martin@ximian.com>
13709
13710         * reflection.c (mono_reflection_define_generic_parameter): Don't
13711         allocate `klass->methods', set `klass->flags' to
13712         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
13713
13714 2003-09-18  Martin Baulig  <martin@ximian.com>
13715
13716         * class.c (mono_class_init): Don't create `class->methods' if it's
13717         already initialized.
13718
13719         * metadata.c (mono_metadata_load_generic_params): Make this
13720         actually work.
13721
13722         * reflection.c (mono_reflection_define_generic_parameter): Set
13723         parent class and interfaces from the constraints.
13724
13725         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
13726         to keep this struct in sync with the declaration in TypeBuilder.cs.
13727
13728 2003-09-17  Martin Baulig  <martin@ximian.com>
13729
13730         * metadata.h (MonoType): Replaced the data's `int type_param'
13731         field with `MonoGenericParam *generic_param'.
13732         (MonoGenericParam): Added `MonoClass *klass'.
13733
13734         * class.c (mono_class_from_gen_param): Removed the
13735         `MonoImage *image' and `int type_num' arguments.
13736
13737         * metadata.c (mono_metadata_parse_generic_param): New static
13738         method; creates a MonoGenericParam which just contains the index.
13739         (do_mono_metadata_parse_type): Call
13740         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
13741         MONO_TYPE_MVAR.
13742
13743         * reflection.c (mono_image_typedef_or_ref): Generic type
13744         parameters may be in the same assembly, but never use a typedef
13745         for them.
13746         (mono_reflection_define_generic_parameter): We're now creating a
13747         "real" class for the type parameter; it's now safe to call
13748         mono_class_from_mono_type() on the class'es type, it'll do the
13749         right thing.
13750
13751 2003-09-16  Martin Baulig  <martin@ximian.com>
13752
13753         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
13754         `symfile->range_entry_size' and `symfile->class_entry_size' here;
13755         the `symfile' data structure must be fully initialized before it
13756         gets added to the table.
13757
13758 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
13759
13760         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
13761
13762         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
13763         class init trampolines.
13764
13765 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
13766
13767         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
13768         to the built-in profiler to turn off time and allocation profiling
13769         respectively.
13770
13771 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
13772
13773         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
13774         g_direct_equal.
13775
13776         * debug-helpers.c (mono_method_full_name): Print the wrapper type
13777         in human readable form.
13778
13779 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
13780
13781         * reflection.c icall.c: Fixed warnings.
13782
13783         * image.c (load_class_names): Use a temporary hash table to hold the
13784         namespaces in order to avoid doing many string comparisons.
13785
13786         * image.h: Fix typo.
13787
13788         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
13789         Pass NULL instead of g_direct_equal to the GHashTable constructor 
13790         since the NULL case is short-circuited inside g_hash_table_lookup, 
13791         leading to better performance.  
13792
13793         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
13794         obtain the first custom attribute for a given index. Depends on the
13795         CustomAttribute table being sorted by the parent field.
13796
13797         * reflection.c (mono_custom_attrs_from_index): Use the new function 
13798         for better performance.
13799
13800 2003-09-07  Martin Baulig  <martin@ximian.com>
13801
13802         * class.c (mono_class_init): If we're a generic instance, inflate
13803         all our methods instead of loading them from the image.
13804         (mono_class_from_generic): Set `class->methods = gklass->methods'.
13805
13806 2003-09-07  Martin Baulig  <martin@ximian.com>
13807
13808         * mono-debug-debugger.c: Added support for constructors.
13809
13810 2003-09-06  Martin Baulig  <martin@ximian.com>
13811
13812         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
13813         New interncall.
13814
13815         * reflection.c (mono_reflection_setup_generic_class): Call
13816         ensure_runtime_vtable() to create the vtable.
13817
13818 2003-09-05  Martin Baulig  <martin@ximian.com>
13819
13820         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
13821         MONO_TYPE_MVAR.
13822
13823 2003-09-04  Martin Baulig  <martin@ximian.com>
13824
13825         * reflection.c (mono_reflection_define_generic_parameter): Generic
13826         parameters start with zero.
13827
13828 2003-09-04  Martin Baulig  <martin@ximian.com>
13829
13830         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13831
13832         * reflection.h (MonoReflectionGenericParam): New typedef.
13833         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
13834         the generic parameters from the managed TypeBuilder.
13835
13836         * reflection.c (mono_reflection_define_generic_parameter): New function.
13837         (mono_reflection_create_runtime_class): Encode generic parameters.
13838         (mono_reflection_setup_generic_class): New function; this is
13839         called after adding adding all generic params to the TypeBuilder.
13840         (encode_type): Added MONO_TYPE_VAR.
13841
13842 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
13843
13844         * class.h class.c (mono_class_needs_cctor_run): Moved this method
13845         here from the JIT.
13846
13847         * assembly.h assembly.c: Moved the AOT loading code into an assembly
13848         load hook.
13849
13850 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
13851
13852         * reflection.h reflection.c class.h class.c: Delete duplicate 
13853         definition of mono_type_get_name () from reflection.c and export the
13854         one in class.c.
13855
13856         * class.c: Class loading fixes from Bernie Solomon 
13857         (bernard@ugsolutions.com).
13858
13859         * reflection.c: Endianness fixes from Bernie Solomon 
13860         (bernard@ugsolutions.com).
13861         
13862 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
13863
13864         * assembly.h assembly.c: Define a file format version for AOT
13865         libraries.
13866         
13867         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
13868
13869         * appdomain.h (MonoJitInfo): New field to determine whenever the
13870         code is domain neutral.
13871         
13872 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
13873
13874         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
13875
13876 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
13877
13878         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
13879         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
13880         Avoid caching the result since strings must be domain specific. Fixes
13881         #48050.
13882
13883 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
13884
13885         * marshal.c (mono_marshal_init): Make this callable multiple times
13886         since it is hard to find a correct place to call it.
13887
13888         * object.c (mono_runtime_class_init): Execute static constructors in
13889         the correct appdomain.
13890
13891         * image.c (build_guid_table): Handle the case when multiple images have
13892         the same GUID.
13893
13894 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13895
13896         * icall.c: added a couple of icalls for System.Web.
13897
13898 2003-08-28  Martin Baulig  <martin@ximian.com>
13899
13900         * icall.c (ves_icall_Type_BindGenericParameters): Use
13901         `klass->generic_inst' instead of `&klass->byval_arg' in the
13902         mono_type_get_object() call.  The returned type must be
13903         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
13904
13905 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
13906
13907         * NOTES: New file.
13908
13909         * object.c (mono_class_proxy_vtable): Make it thread safe.
13910
13911         * pedump.c: Fix warning.
13912
13913         * object.c appdomain.h: Get rid of metadata_section. 
13914         It is no longer needed and it was causing deadlocks with domain->lock.
13915
13916         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
13917
13918 2003-08-26  Martin Baulig  <martin@ximian.com>
13919
13920         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
13921
13922 2003-08-26  Martin Baulig  <martin@ximian.com>
13923
13924         * pedump.c (main): Call mono_metadata_init(),
13925         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
13926         and mono_loader_init().
13927
13928 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
13929
13930         * loader.h: Add missing include to fix build.
13931
13932         * image.h: mono_image_load_references is no more.
13933
13934         * assembly.c: Reworked assembly loading to make it really thread safe.
13935         After these changes, the assembly returned by mono_assembly_open is
13936         fully initialized, i.e. all its references assemblies are loaded.
13937
13938         * assembly.c (mono_image_load_references): Renamed to 
13939         mono_assembly_load_references, and made private, since clients no
13940         longer need to call it.
13941
13942         * class.c: Removed calls to mono_assembly_load_references, since it was
13943         a source of deadlocks.
13944
13945         * loader.h loader.c class.h class.c: Protect data structures using a 
13946         new lock, the loader lock.
13947
13948         * class.c (mono_class_setup_vtable): Create temporary hash tables and
13949         GPtrArrays only when needed.
13950
13951         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
13952         into empty structures by mcs. Fixes pinvoke7.cs.
13953         
13954         * domain.c (mono_init): Call a new initialization function.
13955
13956         * appdomain.c (mono_runtime_init): Call the new initializer function
13957         of the marshal module.
13958
13959         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
13960         inserted into empty structures by mcs. Fixes pinvoke7.cs.
13961
13962         * marshal.h marshal.c: Added locks around the wrapper caches to make
13963         this module thread safe.
13964
13965         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
13966         this argument. Fixes pinvoke1.exe.
13967
13968 2003-08-25  Lluis Sanchez <lluis@ximian.com>
13969
13970         * object.h: Added call_type field to MonoMethodMessage and the corresponding
13971         enumeration of values. Removed fields to store remote call output values in
13972         MonoAsyncResult. Not needed any more.
13973         * object.c: Initialize call_type and async_result fields in mono_message_init.
13974         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
13975         dispatching the message.
13976         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
13977         async call to finish. To do it use a message with EndInvoke call type.
13978
13979 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
13980
13981         * loader.h loader.c (mono_method_hash_marhal_info): New function which
13982         determines whenever a method has marshalling info.
13983
13984 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13985
13986         * assembly.c: fix the build on windows.
13987
13988 2003-08-22 Lluis Sanchez <lluis@ximian.com>
13989
13990         * object.cs: Fixed bug #47785.
13991
13992 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
13993
13994         * string-icalls.c (StringReplace): If their are no occurances of
13995         the old string found return a reference to the supplied
13996         string. This saves some memory and matches MS behavoir.
13997         
13998 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13999
14000         * socket-io.c: fixed compilation for systems that define AF_INET6
14001         and don't define SOL_IP/SOL_IPV6.
14002
14003 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14004
14005         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14006         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14007
14008         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14009
14010         * domain.c: Make this module thread safe.
14011
14012         * domain.c (mono_init): Call new initialization function.
14013
14014         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14015         reference types too. Fixes #38812.
14016
14017         * image.c (mono_image_init): Fixed warnings.
14018
14019         * class.c (mono_class_from_typeref): Handle assembly load failure
14020         correctly.
14021
14022         * appdomain.c (add_assemblies_to_domain): Handle the case when
14023         the references of an assembly are not yet loaded.
14024
14025         * metadata.c image.c assembly.c: Moved initialization of global
14026         variables to a separate function called at startup since lazy 
14027         initialization of these variables is not thread safe.
14028         
14029         * image.c assembly.c: Made this module thread safe by adding locks in 
14030         the appropriate places.
14031
14032         * domain.c (mono_init): Call the new initialization functions of the
14033         three modules.
14034
14035 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14036
14037         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14038           make a direct call. It is proxy's work to make the call asynchronous.
14039           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14040           the return values.
14041         * object.cs: mono_method_call_message_new(): read AsyncResult and
14042           state object from parameters list, if this info is requested.
14043         * object.h: Added fields to store remote call output values in
14044           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14045
14046 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14047
14048         * object.h: add needed fields to MonoThread.
14049         * threads.c, threads.h: allow registering a function to cleanup data
14050         allocated per thread by the JIT.
14051
14052 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14053
14054         * loader.h: portability fix by Bernie Solomon
14055         * <bernard@ugsolutions.com>.
14056
14057 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14058
14059         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14060         return a MonoArray. This simplifies the code and also ensures that
14061         the cache allways contains an object reference as a value.
14062
14063         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14064         function.
14065
14066 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14067
14068         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14069         fixes a problem with byte ordering when getting the address family for
14070         a socket.
14071
14072 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14073
14074         * .cvsignore: Added monosn.
14075
14076         * reflection.h reflection.c loader.c: Added support for parameter
14077         marshalling to dynamically created types. Fixes #47295.
14078
14079 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14080
14081         * rand.c: remove useless warnings.
14082
14083 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14084
14085         * class.c: implemented ldtoken for methods and fieldrefs.
14086
14087 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14088
14089         * threadpool.c: when mono_async_invoke was called, no one took care of
14090         monitoring the queue. So if the method invoked took some time and we
14091         got new async invoke requests after 500 ms (the thread created waited
14092         that long in WaitForSingleObject), the new async invoke was not called
14093         until the previous one finished.
14094
14095         This is fixed now. Thanks to Totte for helping with it.
14096
14097 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14098
14099         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14100
14101 2003-08-11  Martin Baulig  <martin@ximian.com>
14102
14103         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14104
14105 2003-08-06  Martin Baulig  <martin@ximian.com>
14106
14107         * mono-debug-debugger.c: Added support for static fields,
14108         properties and methods.
14109
14110 2003-08-06  Martin Baulig  <martin@ximian.com>
14111
14112         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14113         make this work for applications with multiple application domains.
14114
14115 2003-08-04  Martin Baulig  <martin@ximian.com>
14116
14117         * mono-debug-debugger.c: Completely reworked the type support; the
14118         most important thing is that we're now just using one single
14119         `MonoType' instance per type.
14120
14121 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14122
14123         * mono-endian.h, mono-endian.c, icall.c: Added icall
14124         ves_icall_System_Double_AssertEndianity to assert double word endianity
14125         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14126
14127 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14128
14129         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14130         support, icalls and fixes.
14131
14132 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14133
14134         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14135         classes that are a punctuation character in .NET is not the same a
14136         g_unichar_ispunct.
14137
14138 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14139
14140         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14141
14142 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14143
14144         * icall.c: Add new MemCopy internalcall.
14145         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14146         Simplified code; It is not necessary to handle all the cases here,
14147         as the C# code takes care of it.  Only handle the case of the name
14148         resource embedded into the assembly.
14149
14150         Changed signature to return the data pointer and the size of the
14151         data. 
14152
14153 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14154
14155         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14156         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14157
14158 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14159
14160         * socket-io.c: ignore EINTR error in select.
14161
14162 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14163
14164         * class.h, class.c: removed unused subclasses field in MonoClass.
14165
14166 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14167
14168         * icall.c: improve fix of get_base_definition(). If the parent class
14169           doesn't have the mehod, look at the parent of the parent.
14170         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14171           to check if a parameter is an in or out parameter
14172           (PARAM_ATTRIBUTE_IN is not set by default).
14173           mono_method_return_message_restore(): Use mono_class_value_size to
14174           get the size of a value type. mono_type_stack_size (parameterType)
14175           does not return the correct value if parameterType is byRef.
14176           mono_load_remote_field(), mono_load_remote_field_new(),
14177           mono_store_remote_field(), mono_store_remote_field_new():
14178           raise exception if the remote call returns an exception.
14179
14180 2003-07-28  Martin Baulig  <martin@ximian.com>
14181
14182         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14183         method.  This is a wrapper around mono_runtime_invoke() which
14184         boxes the instance object if neccessary.
14185
14186 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14187
14188         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14189         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14190
14191 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14192
14193         * icall.c: disable mcs bug workaround.
14194
14195 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14196
14197         * object.c (mono_runtime_class_init): Take the metadata_section
14198         mutex before obtaining the domain mutex.
14199
14200         * appdomain.h: Added definition of metadata_section mutex here. 
14201
14202         * object.c: define metadata_mutex here.
14203
14204 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14205
14206         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14207         fixed.
14208
14209 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14210
14211         * reflection.c: Fix bug #46669
14212
14213 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14214
14215         * exception.c:
14216         * exception.h:
14217         * icall.c:
14218         * object.h: fill in the type name for TypeLoadException.
14219
14220 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14221
14222         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14223         relationship between TypeBuilders while compiling corlib) and bug
14224         45993 (Array types returned from the runtime while compiling
14225         corlib were from the loaded corlib).
14226
14227 2003-07-22  Martin Baulig  <martin@ximian.com>
14228
14229         * mono-debug-debugger.c: Reworked the type support a bit more;
14230         distinguish between types and classes.
14231
14232 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14233
14234         * icall.c: add IsArrayImpl icall.
14235
14236 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14237
14238         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14239         initializing real_size only once. Also fix bug #46602.
14240
14241 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14242
14243         * object.c: Renamed mono_metadata_section to metadata_section.
14244
14245 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14246
14247         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14248           empty array if the type is an array. Fixed.
14249           ves_icall_MonoMethod_get_base_definition: if the base method
14250           is abstract, get the MethodInfo from the list of methods of
14251           the class.
14252         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14253           and it was 1-based. Fixed in mono_param_get_objects.
14254
14255 2003-07-20  Martin Baulig  <martin@ximian.com>
14256
14257         * mono-debug.h: Set version number to 31.
14258         (mono_debug_init): Added `MonoDomain *' argument.
14259
14260         * mono-debug-debugger.c: Reworked the type support; explicitly
14261         tell the debugger about builtin types; pass the `klass' address to
14262         the debugger.
14263
14264 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14265
14266         * image.c: Allow new metadata tables to be loaded without a
14267         warning. Also update the warning message to give the new constant value.
14268                 
14269 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14270
14271         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14272         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14273         array type representation changes.
14274
14275 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14276
14277         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14278         on Environment.Exit () call.
14279
14280 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14281
14282         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14283         requires a matching corlib.
14284
14285 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14286
14287         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14288           Committed again without the CRs.
14289         
14290 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14291
14292         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14293           getting it from the "this" socket instance. Did not work
14294           if the socket is a subclass of Socket.
14295           Also fixed bug #35371.
14296
14297 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14298
14299         * metadata.c: fixed size for TypedByRef.
14300         * loader.c: when searching for a method, consider the vararg amrker.
14301         * unicode.c, decimal.c: constify some arrays.
14302
14303 2003-07-15  Dick Porter  <dick@ximian.com>
14304
14305         * socket-io.c: Fixed compilation for gcc < 3.2.
14306
14307         Fixed compilation for machines that don't have AF_INET6 (thanks to
14308         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14309
14310         Fixed compile warnings.
14311         
14312         Fixed formatting and line endings.
14313
14314 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14315
14316         * socket-io.h:
14317         * socket-io.c: Added IPv6 support.
14318
14319 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14320
14321         * class.c (mono_class_is_assignable_from): New function to implement
14322         the is_assignable_from logic. Used by mono_object_isinst, 
14323         Type::IsAssignableFrom () and the interpreter.
14324
14325         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14326         Object, even interfaces.
14327         
14328         * object.c (mono_object_isinst): Implement in terms of 
14329         is_assignable_from.
14330
14331         * icall.c (ves_icall_type_is_assignable_from): New icall.
14332
14333 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14334
14335         * domain.c (foreach_domain): fix compiler warning.
14336
14337 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14338
14339         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14340         not available on all plattforms
14341
14342 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14343
14344         * image.h image.c: Store the metadata version string in MonoImage.
14345         * icall.c: New icall to retrieve the image version.
14346         * reflection.c (create_dynamic_image): Fill in the image version field
14347         * reflection.c (build_compressed_metadata): Use the image version
14348         from the image structure.
14349
14350 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14351
14352         * appdomain.c: modified comment.
14353         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14354         That will be its last iteration when mono_gc_cleanup is called from
14355         mono_runtime_cleanup and before the domain is unloaded.
14356
14357         Fixes bug #45962.
14358
14359 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14360
14361         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14362         attributes.
14363
14364 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14365
14366         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14367         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14368         Bernie Solomon <bernard@ugsolutions.com>.
14369
14370 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14371
14372         * object.c, object.h: provide mono_object_new_fast() for faster
14373         allocation in some special cases.
14374
14375 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14376
14377         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14378         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14379
14380 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14381
14382         * threadpool.c: fix leaks.
14383
14384 2003-07-01  Dick Porter  <dick@ximian.com>
14385
14386         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14387         using MonoGHashTables.  Fixes threadpool bug posted to list.
14388
14389 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14390
14391         * image.h, image.c: added support to load an assembly from a byte array.
14392         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14393         assembly bundle support.
14394
14395 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14396
14397         * threadpool.c (mono_thread_pool_add): keep a reference to the
14398         AsyncResult to prevent GC
14399
14400 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14401
14402         * class.c: leak fix.
14403
14404 2003-06-25  Dick Porter  <dick@ximian.com>
14405
14406         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14407         for the async object, the WaitHandle object will close the handle.
14408         Fixes bug 45321.
14409
14410 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14411
14412         * class.c: in mono_array_class_get (), lookup from the hash with the
14413         same type we insert: this works around a bug in
14414         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14415         lluis. The real fix will have to wait for after the release.
14416
14417 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14418
14419         * icall.c: fix memory leak when getting type members.
14420
14421 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14422
14423         * reflection.c: added more pubtoken special cases.
14424
14425 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14426
14427         * class.c: handle field offset correctly when class size
14428         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14429
14430 2003-06-20  Martin Baulig  <martin@ximian.com>
14431
14432         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14433         *image' field.
14434
14435 2003-06-20  Martin Baulig  <martin@ximian.com>
14436
14437         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14438
14439 2003-06-20  Martin Baulig  <martin@ximian.com>
14440
14441         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14442         just distinguish between variables in registers and variables at
14443         an offset relative to a register.
14444
14445 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14446
14447         * icall.c: #ifdef out latest changes until mcs is fixed.
14448
14449 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14450
14451         * icall.c: return members in metadata order.
14452
14453 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14454
14455         * icall.c: avoid infinite loop in GetTimeZoneData.
14456
14457 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14458
14459         * icall.c: added Marshal.Prelink/All icalls.
14460
14461 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14462
14463         * object.c, object.h: fix warnings and do some overflow checking
14464         when creating arrays.
14465
14466 2003-06-17  Dick Porter  <dick@ximian.com>
14467
14468         * file-io.h:
14469         * file-io.c: File attributes need to be tweaked slightly when
14470         passed from the managed to the w32 world.
14471
14472 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14473         * profiler.h profiler-private.h profiler.c: Rework last patch
14474         based on suggestion by Paolo.
14475         
14476 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14477
14478         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
14479         instruction level coverage data collection.
14480         * profiler.h profiler.c (: Added new callback function which can be
14481         used by the profiler to limit which functions should have coverage
14482         instrumentation.
14483         * profiler.c (mono_profiler_load): Call g_module_build_path to
14484         generate the file name of the profiler library.
14485
14486 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14487
14488         * profiler.c, profiler.h, profiler-private.h: added basic block 
14489         coverage profiling API.
14490
14491 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
14492
14493         * reflection.c (mono_reflection_create_runtime_class): Add support
14494         for events in dynamically generated code.
14495
14496         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
14497         not allocated.
14498
14499 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14500
14501         * icall.c: when getting timezone info, return reasonable values if we
14502         can't get the actual data.
14503
14504 2003-06-14  Dick Porter  <dick@ximian.com>
14505
14506         * threads.c (start_wrapper): Remove the reference to the thread
14507         object in the TLS data, so the thread object can be finalized.
14508         This won't be reached if the thread threw an uncaught exception,
14509         so those thread handles will stay referenced :-( (This is due to
14510         missing support for scanning thread-specific data in the Boehm GC
14511         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
14512
14513 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
14514
14515         * reflection.c: ensure streams and tables are first allocated with
14516         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
14517
14518 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14519
14520         * icall.c: fixed GetElementType for byrefs (bug# 44792).
14521
14522 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
14523
14524         * reflection.c (mono_reflection_create_runtime_class): Add support for
14525         properties to dynamically created classes.
14526         * reflection.c: Fix a few places where non-MonoObjects were inserted
14527         into the tokens hashtable.
14528
14529 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14530
14531         * object.c: some support to handle out of memory exceptions.
14532
14533 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
14534
14535         * marshal.c (mono_marshal_get_native_wrapper): support reference
14536         return types
14537
14538 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14539
14540         * object.h, object.c: more portability stuff from Bernie Solomon.
14541         Unexport mono_object_allocate(). Added mono_object_unbox ().
14542         Set exitcode when an unhandled exception is thrown.
14543
14544 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
14545
14546         * marshal.c (mono_marshal_get_native_wrapper): use custom
14547         marshaler for return types.
14548
14549 2003-06-10  Dick Porter  <dick@ximian.com>
14550
14551         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
14552         ip_mreq is available
14553
14554 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
14555
14556         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
14557         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
14558         by Bernie Solomon <bernard@ugsolutions.com>.
14559
14560 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
14561
14562         * gc.c (mono_gc_init): Avoid error message on shutdown when
14563         GC_DONT_GC=1 is used.
14564
14565         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
14566         New icall to return the GUID of a module.
14567
14568 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14569
14570         * class.c: ensure instance size always includes the parent's size
14571         even whem class size is set explicitly (fixes bug#44294).
14572
14573 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14574
14575         * profiler.h, profiler.c: made the simple profiler thread-safe,
14576         get more accurate timing info. Allow the loading of an
14577         externally-developed profiler module.
14578
14579 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
14580
14581         * marshal.c (mono_marshal_get_native_wrapper): improved
14582         class/byref arguments.
14583         (mono_marshal_get_native_wrapper): better string marshaling support.
14584
14585 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
14586
14587         * class.c: ensure .pack and .size are handled correctly and
14588         simplified layout of static fields.
14589
14590 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
14591
14592         * appdomain.c
14593         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
14594
14595         * loader.c (mono_lookup_pinvoke_call): look for modules in the
14596         current directory (fix bug 44008)
14597
14598 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
14599
14600         * marshal.c (mono_marshal_get_native_wrapper): started support for
14601         custom marshalers.
14602         (mono_delegate_to_ftnptr): consider marshalling specifications
14603
14604 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
14605
14606         * reflection.c, reflection.h: emit custom marshal info.
14607
14608 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14609
14610         * object.c: free the GError.
14611         * icall.c: added CloseEvent_internal.
14612         * threads.[ch]:
14613         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
14614         call.
14615
14616 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
14617
14618         * loader.c (mono_method_get_signature): Add support for dynamic
14619         assemblies.
14620
14621 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
14622
14623         * reflection.c: fixed bug #43905.
14624
14625 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14626
14627         * class.c, domain.c, icall.c, metadata.h, object.h: support for
14628         handling TypedReference and ArgIterator.
14629         * loader.c, loader.h: added function to get signature at call site.
14630
14631 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14632
14633         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
14634         data readonly. Buglets and warning fixes. Some MethodSpec support.
14635
14636 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14637
14638         * class.h, class.c, object.c: remove relative numbering support.
14639
14640 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
14641
14642         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
14643         free the string, until we get a chance to fix Gtk#
14644
14645 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14646
14647         * marshal.c: revert last patch.
14648
14649 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
14650
14651         * icall.c: updates for new mono_class_vtable() not calling
14652         the type constructor anymore.
14653
14654 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14655
14656         * object.h, object.c: separate vtable creation from type
14657         initialization. Make running the .cctor thread safe.
14658
14659 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
14660
14661         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
14662
14663 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
14664
14665         * loader.c (mono_get_method): consider calling convention
14666
14667 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
14668
14669         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
14670         to return the invisible global type for a module.
14671
14672         * reflection.c (mono_image_build_metadata): Emit global fields too.
14673
14674 2003-05-20  Peter Williams  <peterw@ximian.com>
14675
14676         * loader.c (mono_lookup_internal_call): Add a few newlines.
14677
14678 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
14679
14680         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
14681         literal strings.
14682
14683         * appdomain.c (set_domain_search_path): Recalculate search path when
14684         AppDomainSetup.PrivateBinPath changes.
14685
14686         * object.c (mono_class_compute_gc_descriptor): It turns out some
14687         parts of the class libs (like System.Thread) holds pointers to
14688         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
14689         to treat native int a pointer type here.
14690         
14691 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
14692
14693         * appdomain.h, domain.c: add hashtable for jump target resolution.
14694
14695 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
14696
14697         * reflection.h reflection.c icall.c: Added new icalls 
14698         GetManifestResourceInfoInternal, GetModulesInternal and support
14699         infrastructure.
14700
14701 2003-05-16  Dick Porter  <dick@ximian.com>
14702
14703         * icall.c:
14704         * file-io.h:
14705         * file-io.c: Implement System.IO.MonoIO::GetTempPath
14706
14707 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
14708
14709         * object.c: mono_store_remote_field: little fix to previous patch.
14710
14711 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14712
14713         * class.c: add constructors to array classes.
14714         * icall.c: special case array construction for InternalInvoke (),
14715
14716 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
14717
14718         * class.h class.c reflection.c object.c: Added support for field
14719         defaults in dynamically generated classes.
14720
14721 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
14722
14723         * reflection.c: properly encode charset for ddlimport.
14724
14725 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
14726
14727         * threads.c: allow compiling without GC.
14728
14729 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14730
14731         * appdomain.h, object.c, object.h, threads.c, threads.h: added
14732         handling of thread static data.
14733
14734 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14735
14736         * reflection.h, reflection.c: added mono_custom_attrs_free ().
14737
14738 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
14739
14740         * class.c (mono_array_class_get): always set the serializable flags
14741         (mono_array_class_get): always set the SEALED attribute for array types
14742
14743 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
14744
14745         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
14746         attributes (fix for bug 42021).
14747
14748 2003-05-12  Dick Porter  <dick@ximian.com>
14749
14750         * gc.c: Don't run finalizers when the finalizer thread is
14751         finishing up, because the default domain has already been
14752         destroyed.
14753
14754 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
14755
14756         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
14757         value is null, we should throw an exception.   This is slightly
14758         different than the other conventions used for the constructor.
14759
14760 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14761
14762         * socket-io.c: fixed windows build.
14763
14764 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14765
14766         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
14767
14768 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
14769
14770         * object.c (mono_string_new_wrapper): Compatibility fix for MS
14771         compilers.
14772
14773 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
14774
14775         * class.c (mono_class_layout_fields): Add experimental GC aware
14776         auto layout facility. Requires class library changes to work correctly.
14777
14778         (mono_class_setup_vtable): Avoid overriding explicit interface
14779         method implementations. Fixes iface3.exe test.
14780
14781         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
14782         object reference.
14783         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
14784         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
14785
14786         * metadata.h: Add new type classification macro which determines
14787         whenever the type holds an object reference.
14788
14789 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
14790
14791         * marshal.c (mono_marshal_get_native_wrapper): cleanups
14792
14793 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
14794
14795         * gc.c (finalizer_thread): Work around a GC bug.
14796
14797 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
14798
14799         * marshal.c (emit_struct_conv): allow unions
14800
14801         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
14802
14803 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
14804
14805         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
14806
14807 2003-05-06  Martin Baulig  <martin@ximian.com>
14808
14809         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
14810
14811 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14812
14813         * socket-io.c:
14814         (Select_internal): allow NULLs, don't create arrays if not needed.
14815         Coupled with Socket.cs changes.
14816
14817         * threadpool.c:
14818         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
14819         register a finalizer for it that will close the semaphore handle. This
14820         fixes the leak and make Lupus' test run with > 4080 loops.
14821
14822 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
14823
14824         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
14825         Jerome Laban (bug #42287)
14826
14827 2003-05-02  Martin Baulig  <martin@ximian.com>
14828
14829         * debug-mono-symfile.h
14830         (MonoSymbolFile): Moved declaration into mono-debug.h.
14831         (MonoDebugMethodJitInfo): Likewise.
14832         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
14833         argument.
14834         (_mono_debug_address_from_il_offset): Take a
14835         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
14836
14837         * mono-debug.h
14838         (MonoDebugDomainData): New struct.
14839         (mono_debug_get_domain_data): New function.
14840         (mono_debug_add_method): Take an additional `MonoDomain *'
14841         argument.
14842         (mono_debug_source_location_from_address): Likewise.
14843         (mono_debug_il_offset_from_address): Likewise.
14844         (mono_debug_address_from_il_offset): Likewise.
14845
14846 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
14847
14848         * reflection.c: one more check for null type in custom attrs.
14849
14850 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14851
14852         * reflection.c: avoid warning (comparison is always false due to limited
14853         range of data type).
14854
14855 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14856
14857         * icall.c: throw an exception in Type.GetField if the argument 'name'
14858         is NULL.
14859
14860 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
14861
14862         * reflection.c: fixed handling of enums in named arguments to custom
14863         attributes (bug #42123).
14864
14865 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
14866
14867         * reflection.c: use the right array element type and handle
14868         a null for a Type argument, too.
14869
14870 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
14871
14872         * reflection.c: handle arrays as arguments to custom attributes.
14873
14874 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14875
14876         * reflection.c: handle a string value in a custom attr
14877         ctor that takes an object.
14878
14879 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
14880
14881         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
14882         (fix bug #42063)
14883
14884 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
14885
14886         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
14887
14888 2003-04-27  Martin Baulig  <martin@ximian.com>
14889
14890         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
14891         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
14892         MONO_DEBUGGER_EVENT_BREAKPOINT.
14893         (mono_breakpoint_trampoline_code): Removed.
14894         (mono_debugger_event_handler): The last argument is now a
14895         `guint32'.
14896         (mono_debugger_insert_breakpoint_full): Removed the
14897         `use_trampoline' argument.
14898         (mono_debugger_method_has_breakpoint): Likewise.
14899         (mono_debugger_trampoline_breakpoint_callback): Renamed to
14900         mono_debugger_breakpoint_callback(); take the method and
14901         breakpoint number as arguments.
14902
14903 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
14904
14905         * metadata.c: fix off by one when loading parameters attributes.
14906
14907 2003-04-24  Martin Baulig  <martin@ximian.com>
14908
14909         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
14910
14911 2003-04-24  Martin Baulig  <martin@ximian.com>
14912
14913         * mono-debug-debugger.c: Moved all code which interacts with the
14914         Mono Debugger here.
14915
14916         * debug-mono-symfile.c: This code now just deals with the symbol
14917         file itself, the debugger code is now in mono-debug-debugger.c.
14918
14919 2003-04-23  Martin Baulig  <martin@ximian.com>
14920
14921         * mono-debug.c (mono_debug_source_location_from_il_offset):
14922         New method; like mono_debug_source_location_from_address(), but
14923         takes an IL offset instead of a machine address.
14924
14925 2003-04-23  Martin Baulig  <martin@ximian.com>
14926
14927         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
14928         `line' field; this is now computed by the debugger.
14929
14930 2003-04-23  Martin Baulig  <martin@ximian.com>
14931
14932         * mono-debug.[ch]: New files.  This is the new debugging interface.
14933
14934         * mono-debug-debugger.[ch]: New files.  Moved all code which
14935         interacts with the Mono Debugger here.
14936
14937 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
14938
14939         * domain.c (mono_init): initialize mono_defaults.monitor_class
14940
14941 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
14942
14943         * reflection.c (method_encode_code): Add a spicy exception to help
14944         future compiler authors.
14945
14946 2003-04-21  Martin Baulig  <martin@ximian.com>
14947
14948         * icall.c
14949         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14950         Make this work with relative pathnames; g_filename_to_uri() needs
14951         an absolute filename.
14952
14953 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
14954
14955         * icall.c: Track name changes in Object and ValueType.
14956
14957 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
14958
14959         * metadata.c (mono_type_stack_size): size should be a multiple of
14960         sizeof (gpointer)
14961
14962 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14963
14964         * gc.c:
14965         (internal_domain_finalize): moved into mono_domain_finalize. No need
14966         to create another thread because the finalizers will be run in the
14967         finalizer thread.
14968         
14969         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
14970         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
14971         to be run (MS does this too).
14972
14973 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
14974
14975         * object.c (mono_class_compute_gc_descriptor): Update comment.
14976
14977         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
14978
14979         * image.h: Add synchronized wrapper cache.
14980
14981         * image.c (do_mono_image_open): Initialize cache.
14982
14983         * reflection.c (create_dynamic_mono_image): Initialize cache.
14984
14985 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14986
14987         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
14988         ves_icall_System_Buffer_ByteLengthInternal.
14989
14990 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14991
14992         * reflection.c: setup klass->nested_in earlier. Allow
14993         a dash in the assembly name.
14994
14995 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
14996
14997         * metadata.c (mono_type_to_unmanaged): dont access
14998         type->data.klass for MONO_TYPE_OBJECT
14999         (mono_type_to_unmanaged): consider System.Delegate class
15000
15001 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15002
15003         * class.c: just setup supertypes in the proper place instead of
15004         initializing the full element class for arrays.
15005
15006 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15007
15008         * class.c: ensure the element class of arrays is initialized.
15009         Setup the supertype info for array classes, too.
15010
15011 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15012
15013         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15014
15015 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15016
15017         * Makefile.am: re-added -m option when running cygpath. This way,
15018         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15019         separator.
15020         * mono-config.c: same codepath for locating mono config file for WIN32
15021         and the rest.
15022         * assembly.c: if mono_assembly_setrootdir is called, don't override
15023         the value set.
15024
15025 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15026
15027         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15028         MONO_ASSEMBLIES variable.
15029
15030 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15031
15032         * icall.c: added Assembly::GetNamespaces() icall.
15033
15034 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15035
15036         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15037
15038 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15039
15040         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15041         * object.c: fixed bug in the construction of vtable for proxies
15042
15043 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15044
15045         * object.c (mono_array_new): Mark mono_array_new as an icall.
15046
15047 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15048
15049         * class.c: fixed test for public method when overriding interfaces.
15050         Closes bug #40970.
15051
15052 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15053
15054         * appdomain.h, domain.c: added mono_domain_foreach() to
15055         be able to access the currently loaded appdomains.
15056         * object.c: make string interning work across sppdomains.
15057         Mark some functions for use as icalls.
15058
15059 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15060
15061         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15062
15063         * reflection.h reflection.c: Allocate long living data using 
15064         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15065
15066         * reflection.c: Double the allocation size in streams instead of
15067         increasing it, to prevent unneccesary copying on large assemblies.
15068         
15069         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15070         creation if the assembly does not have the Run flag set.
15071
15072 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15073
15074         * class.h: avoid the C++ keywords in header files (Jerome Laban
15075         spotted and fixed this).
15076
15077 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15078
15079         * object.c:
15080         (mono_unhandled_exception): fill in the arguments for the
15081         UnhandledException event. Only trigger that event for the default
15082         domain (as MS does).
15083
15084 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15085
15086         * object.c: Improve typed allocation stuff based on suggestions from
15087         Paolo. Also turn it on if the GC library supports it.
15088
15089 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15090
15091         * object.c object.h class.h: Added experimental typed allocation
15092         facility using the interfaces in gc_gcj.h.
15093
15094         * os/gc_wrapper.h: Added new include files.
15095         
15096 2003-04-03  Martin Baulig  <martin@ximian.com>
15097
15098         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15099         which is not yet enabled by default.
15100
15101         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15102         functions.
15103         (mono_gc_lock, mono_gc_unlock): New static functions.
15104
15105         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15106         functions; stop/start the world for the garbage collector.  This
15107         is using the windows API; we need to complete the SuspendThread()/
15108         ResumeThread() implementation in the io-layer to make this work on Unix.
15109         (mono_gc_push_all_stacks): New public function; tells the garbage
15110         collector about the stack pointers from all managed threads.
15111
15112 2003-04-03  Martin Baulig  <martin@ximian.com>
15113
15114         * object.h (MonoThread): Added `gpointer stack_ptr'.
15115
15116         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15117
15118 2003-04-03  Martin Baulig  <martin@ximian.com>
15119
15120         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15121
15122 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15123
15124         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15125         field.last.
15126
15127 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15128
15129         * loader.c (mono_lookup_internal_call): Report the corlib that is
15130         out of sync.
15131
15132 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15133
15134         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15135         System.DBNull (it's class not valuetype).
15136
15137 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15138
15139         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15140         if the array method was already assigned a token (fixes bug#40646).
15141
15142 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15143
15144         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15145         if no assembly is given.
15146
15147 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15148
15149         * metadata.h: Added the new tables.
15150
15151         * row-indexes.h: Added definitions for new tables.
15152
15153         * metadata.c: Add schemas for new tables, and add support for
15154         computing the sizes of them.
15155
15156         * class.c: Update for handling the new type cases.
15157
15158 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15159
15160         * metadata.h (MONO_TYPE_IS_VOID): new macro
15161
15162 2003-03-31  Martin Baulig  <martin@ximian.com>
15163
15164         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15165
15166         * threads.c (mono_thread_new_init): Call `thread_created' in the
15167         mono_thread_callbacks.
15168
15169 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15170
15171         * loader.h: added marshalbyrefobject_class to mono_defaults
15172         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15173         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15174           generation of output parameters.
15175           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15176         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15177           contextbound and the target object belongs to the context of the caller.
15178         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15179         * object.c: Implemented support for interfaces and abstract classes
15180           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15181           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15182
15183 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15184
15185         * class.h class.c (mono_class_is_subclass_of): New function.
15186         
15187         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15188         routines for most common case (calls from ArrayList::ToArray).
15189
15190         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15191         routine so programs which call Environment::Exit() can be profiled.
15192
15193         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15194         Added MONO_ARCH_SAVE_REGS.
15195
15196         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15197
15198 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15199
15200         * blob.h: Add a couple of new MonoType types definitions.
15201
15202         * tabledefs.h: Add a couple of new call convs.
15203
15204 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15205
15206         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15207         the layout of the class.
15208
15209         * reflection.c (alloc_table): double the size on overflow to avoid
15210         unnecessary copying.
15211
15212         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15213         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15214         null so it can be garbage collected.
15215         
15216 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15217
15218         * reflection.c (mono_reflection_get_type): Return the resolved type
15219         only if it is in the assembly we searched.
15220
15221         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15222
15223         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15224         method.
15225
15226 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15227
15228         * appdomain.c:
15229         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15230         the right one is 'file:///blah', but MS allows it.
15231         * assembly.c:
15232         (mono_assembly_open): allow 'file://blah'
15233
15234         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15235
15236 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15237
15238         * socket-io.c: fixes bug #40310.
15239
15240 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15241
15242         * reflection.c (mono_reflection_parse_type): handle deeply nested
15243         types correctly.
15244
15245         * reflection.c (mono_image_create_token): Use unique token values
15246         since they will be put into a hash table.
15247
15248         * class.c (mono_class_setup_vtable): If a method occurs in more than
15249         one place in the vtable, and it gets overriden, then change the
15250         other occurances too.
15251
15252         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15253         object as return type.
15254
15255 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15256
15257         * icall.c: Deleted "ToString" implementation for double and float
15258         because they are full implemented in managed code.
15259
15260 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15261
15262         * reflection.c, reflection.h: implemented and exported functions
15263         to retrieve info about custom attributes.
15264
15265 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15266
15267         * appdomain.c: moved Uri handling to assembly.c
15268         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15269         work when using a file Uri in *nix and windows.
15270
15271         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15272         GetReferencedAssemblies.
15273
15274 2003-03-18  Dick Porter  <dick@ximian.com>
15275
15276         * icall.c: Rename a couple of internal calls
15277
15278         * threads.c: Set the thread state to Stopped when a thread exits.
15279         Fixes bug 39377.
15280
15281 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15282
15283         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15284         New icall.
15285
15286         * object.c (mono_class_vtable): fix warning.
15287
15288 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15289
15290         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15291
15292         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15293         memory.
15294         (method_encode_clauses): Create exception info structures in the right
15295         order.
15296         (mono_reflection_setup_internal_class): Initialize supertypes field.
15297
15298         * class.c object.c: Handle interfaces which implement other interfaces 
15299         correctly.
15300
15301         * class.h class.c: Move the supertypes array initialization code into 
15302         a separate function so it can be used for dynamic types too. Also call
15303         it earlier, in mono_class_init(), since it can be used before the
15304         type is initialized.
15305
15306 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15307
15308         * Makefile.am:
15309         * assembly.c:
15310         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15311
15312         * appdomain.c:
15313         * appdomain.h:
15314         * marshal.c:
15315         * object.c: remove warnings.
15316
15317 2003-03-13  Martin Baulig  <martin@ximian.com>
15318
15319         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15320         (MonoDebugLexicalBlockEntry): New types.
15321
15322         * debug-mono-symfile.c
15323         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15324
15325 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15326
15327         * process.c: ret can be any non-zero value accroding to MS doc.
15328
15329 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15330
15331         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15332         fixing a warning for a miss-used prototype, would have cause
15333         random memory corruption.
15334
15335 2003-03-07  Martin Baulig  <martin@ximian.com>
15336
15337         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15338         getting really annoying ....
15339
15340 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15341
15342         * reflection.c (fixup_method): added support for array methods.
15343
15344 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15345
15346         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15347         (pointed out by Michael Adams).
15348
15349 2003-03-04  Dick Porter  <dick@ximian.com>
15350
15351         * icall.c: Temporarily reverted the Double and Single ToString()
15352         change, because it broke nunit.
15353
15354 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15355
15356         * object.h, threads.h: make include files compatible with C++
15357         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15358
15359 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15360
15361         * icall.c: Erased ToString helper functions for Double and Single.
15362         Now, that implementations ar all in managed code (Double and Single
15363         Formatters).
15364
15365 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15366
15367         * appdomain.c: Added method for initializing the default context of
15368         a domain. Added internal call for getting the default context.
15369         * appdomain.h: Added context variable in MonoDomain struct.
15370         * domain.c: mono_domain_set also sets the default context of the domain
15371         * icall.c: Mapped internal method InternalGetDefaultContext.
15372         * object.c: mono_object_get_virtual_method returns always a remoting
15373         wrapper if the object is a transparent proxy.
15374         mono_runtime_invoke_array: when creating an object by calling the
15375         constructor, if the created object is a proxy, then the constructor should
15376         be called using the a remoting wrapper.
15377
15378 2003-03-03  Dick Porter  <dick@ximian.com>
15379
15380         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15381         variable so it compiles on solaris.  Problem spotted by
15382         Christopher Taylor <ct@cs.clemson.edu>
15383
15384 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15385
15386         * appdomain.c:
15387         (get_info_from_assembly_name): don't leak value.
15388
15389         * icall.c:
15390         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15391         result.
15392
15393 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15394
15395         * assembly.c: export mono_image_load_references ().
15396         * class.c: handle function pointers. mono_class_from_name() now
15397         supports nested type names directly.
15398
15399 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15400
15401         * reflection.h reflection.c: Encode already created dynamic methods 
15402         and fields correctly as a DEF instead of a REF.
15403
15404         * reflection.c: Get rid of the force_ref argument to 
15405         mono_image_typedef_or_ref since it was wrong in the first place.
15406
15407         * string-icalls.c: add error checking to string constructors according
15408         to the MSDN docs.
15409
15410         * reflection.c: Emit types in the order their TypeBuilders were 
15411         created. Previously, a new table index was assigned to each type before
15412         the tables were emitted. This was wrong because the signature blob
15413         might already refer to a type by its original table index.
15414
15415 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15416
15417         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15418         change.
15419         
15420 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15421
15422         * Makefile.am: make assemblies dir have \ instead of / on windows.
15423
15424 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15425
15426         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15427         iterate over the NESTEDCLASS table using a linear search since the
15428         table is not guaranteed to be sorted by the secondary key.
15429
15430         * class.c (mono_class_create_from_typedef): fixed up call to
15431         mono_metadata_nesting_typedef.
15432         
15433 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15434
15435         * marshal.c (mono_string_to_byvalstr): clear the memory as
15436         suggested by Jerome Laban <jlaban@wanadoo.fr>
15437
15438 2003-02-26  Dick Porter  <dick@ximian.com>
15439
15440         * process.c: Cope with padding in .rsrc blocks
15441
15442 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15443
15444         * metadata.h: reverted the filter_len change, it breaks reflection
15445         
15446 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15447
15448         * metadata.h: added a new field to store the filter_len
15449         
15450
15451 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15452
15453         * reflection.c: handle custom attributes for types and members
15454         created with Reflection.Emit (bug#38422).
15455
15456 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15457
15458         * reflection.c: define RTSpecialName automatically for constructors for
15459         compatibility with MS.NET.
15460
15461         * reflection.c (mono_reflection_create_runtime_class): initialize
15462         nested_in field of dynamically created classes.
15463
15464 2003-02-22  Martin Baulig  <martin@ximian.com>
15465
15466         * debug-mono-symfile.h: Incremented version number.
15467
15468 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15469
15470         * object.h icall.c process.c: fix warnings.
15471
15472 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15473
15474         * appdomain.h appdomain.c:
15475         (mono_domain_try_type_resolve): split the 
15476         name_or_tb argument into a name and a tb argument.
15477         (mono_domain_has_type_resolve): new function to check whenever the
15478         application has registered a TypeResolve event handler.
15479         
15480         * icall.c reflection.h reflection.c: move the type resolve logic into
15481         mono_reflection_get_type () so it will be invoked when 
15482         Assembly::GetType () is called.
15483
15484         * reflection.c:
15485         (mono_reflection_get_type): renamed to get_type_internal.
15486         (mono_reflection_get_type): fixed type name generation so it works 
15487         for nested types too.
15488         (mono_reflection_get_type): call has_type_resolve () to avoid the 
15489         costly type name generation if there is no resolve event handler.
15490
15491 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15492
15493         * class.c, image.c: load exported types from file references.
15494
15495 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
15496
15497         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
15498           used to cache the managed methods used to create proxies and make 
15499           remote invocation of methods.
15500         * class.h: Added in MonoVTable a flag to indicate that a class needs 
15501           to be remotely created.
15502         * object.c: Modified the method mono_class_vtable(). It now initializes 
15503           the remote flag of the vtable. Modified mono_object_new_specific(), 
15504           so now it checks the remote flag.
15505         * icall.c: Added a couple of internal methods, one for enabling instance 
15506           creation interception for a type, and one for creating objects bypassing
15507           the remote check.
15508
15509 2003-02-18  Martin Baulig  <martin@ximian.com>
15510
15511         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
15512         New interncall to get a method's metadata token.
15513
15514         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
15515         New interncall for the debugger.
15516
15517 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
15518
15519         * class.c (mono_class_setup_vtable): allocate supertype array
15520
15521 2003-02-18  Martin Baulig  <martin@ximian.com>
15522
15523         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
15524
15525 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15526
15527         * reflection.c:
15528         (assembly_name_to_aname): jump over unknown properties (i've found
15529         something like: 'type, assembly, version=xxx, custom=null, public...',
15530         so now will ignore custom=null and still get the rest of the values).
15531
15532 2003-02-17  Dick Porter  <dick@ximian.com>
15533
15534         * threads.c: Have Thread.Start() wait for a semaphore to signal
15535         that the thread has set up all its local data.  This fixes bug
15536         34323, where Abort() raced the new thread's TLS data.
15537
15538         Also removes the handle_store() call from start_wrapper, because
15539         threads are now always created suspended and there is no longer a
15540         race between the parent and child threads to store the info.
15541
15542 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
15543
15544         * image.c: explain the #- heap issue in a message, hopefully
15545         avoiding FAQs on mono-list.
15546
15547 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15548
15549         * icall.c:
15550         (GetEntryAssembly): if the domain has not invoked
15551         AppDomain.ExecuteAssembly yet, return the assembly of the default
15552         AppDomain.
15553
15554 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
15555
15556         * class.c (mono_ldtoken): make it work in dynamic assemblies.
15557
15558 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
15559
15560         * metadata.c, reflection.c: simple speedup to type hash
15561         and equals code.
15562
15563 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
15564
15565         * image.c, image.h, class.c, assembly.c: move module loading
15566         to MonoImage. When loading metadata, consider alignemnet from
15567         the start of metadata, not from the metadata address in memory.
15568
15569 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
15570
15571         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
15572         AssemblyBuilder objects. Factored out custom attribute creation into
15573         a separate function.
15574         (create_custom_attr): new function to create custom attributes.
15575
15576 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
15577
15578         * Makefile.am: Got tired of typing the full pathname to pedump.
15579         Until there is another option, am installing this.
15580
15581 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
15582
15583         * class.c (class_compute_field_layout): always set field->parent 
15584         (mono_ldtoken): use mono_defaults.fieldhandle_class;
15585
15586 2003-02-11  Dick Porter  <dick@ximian.com>
15587
15588         * threads-types.h:
15589         * monitor.c: Rewrote Monitor, making lock much faster and
15590         Pulse/Wait work as specified.  Also uses much fewer handles, and only
15591         creates them as needed.
15592
15593         * exception.c: Added SynchronizationLockException
15594
15595         * threads.c: Deleted old Monitor implementation.  The new one is
15596         in a new file.
15597
15598 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
15599
15600         * class.c: handled TypedReference type code. Set the correct size for
15601         class data. Setup interface_offsets for interface classes, too.
15602
15603 2003-02-09  Martin Baulig  <martin@ximian.com>
15604
15605         * debug-mono-symfile.h: Reflect latest symbol writer changes.
15606
15607 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
15608
15609         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
15610         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
15611         * object.c: fixed mono_object_get_virtual_method () for interfaces.
15612         * verify.c: check for code that runs after the end of the method.
15613
15614 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15615
15616         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
15617         "System.Math::Round2".
15618         * sysmath.h: Added Floor, Round and Round2 definitions.
15619         * sysmath.c: Modified certain functions that were not 100% compliant
15620         with MS.NET (math precision) and added the implementation of Floor,
15621         Round and Round2.
15622
15623 2003-02-07  Martin Baulig  <martin@ximian.com>
15624
15625         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
15626
15627 2003-02-07  Martin Baulig  <martin@ximian.com>
15628
15629         * debug-mono-symfile.c: Reflected latest symwriter changes.
15630         (mono_debug_create_mono_symbol_file): Removed.
15631         (mono_debug_open_mono_symbol_file): Take an argument which
15632         specifies whether to create a dynamic symbol file.
15633
15634 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
15635
15636         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
15637
15638 2003-02-05  Martin Baulig  <martin@ximian.com>
15639
15640         * reflection.c (mono_image_build_metadata): Make this public,
15641         protect it against being called multiple times, don't create
15642         resources and don't build the compressed metadata here.
15643         (mono_image_create_pefile): Do this here.
15644
15645         * icall.c
15646         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
15647
15648 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15649
15650         * socket-io.c: fixed bug #36322.
15651
15652 2003-02-06  Piers Haken <piersh@friskit.com>
15653
15654         * appdomain.[ch]:
15655         * class.h:
15656         * debug-mono-symfile.c:
15657         * icall.c:
15658         * loader.c:
15659         * mono-config.c:
15660         * monosn.c:
15661         * reflection.c:
15662         * socket-io.c: warning cleanups
15663
15664 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
15665
15666         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
15667         function. works like remoting invoke, but does a check for the Proxy first.
15668
15669 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
15670
15671         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
15672
15673 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
15674
15675         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
15676         array of pointers.
15677         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
15678         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
15679
15680         * object.c (mono_store_remote_field_new): used by the new jit
15681         instead of mono_store_remote_field
15682         (mono_load_remote_field_new): used by the new jit
15683         instead of mono_load_remote_field
15684
15685 2003-02-05  Patrik Torstensson
15686
15687         * appdomain.c: changed unload to take the domain id instead
15688         of domain
15689         
15690         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
15691
15692
15693 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15694
15695         * appdomain.c: don't look for assemblies in ApplicationBase if
15696         PrivateBinPathProbe is set.
15697
15698 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15699
15700         * object.c: make the first argument in main_args contain the absolute
15701         path to the assembly. Fixes bug #37511.
15702
15703 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15704
15705         * icall.c: get correct UTC offset for countries not using daylight
15706         time saving. Fixes bug #30030.
15707
15708 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15709
15710         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
15711         and 1 are the family).
15712
15713 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
15714
15715         * icall.c (ves_icall_InternalExecute): removed wrong assertion
15716
15717         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
15718
15719 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
15720
15721         * reflection.c: added support for SignatureHelper tokens, which is
15722         needed by the Calli opcode.
15723
15724         * reflection.h: track changes to SignatureHelper class.
15725
15726         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
15727
15728 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15729
15730         * appdomain.c: fixed loading assemblies from PrivateBinPath.
15731
15732 2003-02-03  Patrik Torstensson
15733         * appdomain.[c|h], domain.c : 
15734          - Added support for getting a domain via domain id
15735          - Support for setting and getting domain from System.AppDomain 
15736            (used in cross appdomain channel)
15737          - Added support for get/set for a MonoAppContext on a thread 
15738            (Context class in System.Runtime.Remoting.Contexts),
15739          - Removed hack in Get/SetData and ExecuteAssembly.
15740         
15741         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
15742         the managed world to get control when a proxy is created.
15743
15744         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
15745         
15746 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
15747
15748         * icall.c
15749         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15750         Populate the codebase field as well.
15751
15752 2003-02-02  Martin Baulig  <martin@ximian.com>
15753
15754         * debug-mono-symfile.c
15755         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
15756         (mono_debug_symfile_add_method): Allow interncalls.
15757
15758 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15759
15760         * icall.c: throw parse exception if strtod fails or the string is empty.
15761
15762 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
15763
15764         * marshal.c: handle object type separately from defined
15765         class types.
15766
15767 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
15768
15769         * marshal.c: handle NATIVE_LPSTR for strings when it's
15770         explicitly specified.
15771
15772 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
15773
15774         * reflection.c, reflection.h, icall.c: setup the reflection
15775         handle cache for ModuleBuilders and AssemblyBuilders.
15776
15777 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
15778
15779         * reflection.c (reflection_methodbuilder_to_mono_method): set
15780         pinvoke flag
15781
15782 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15783
15784         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
15785
15786 2003-01-29  Dick Porter  <dick@ximian.com>
15787
15788         * threads.c: No need for the fake_thread kludge now that Thread
15789         doesn't run a class constructor
15790         
15791 2003-01-29  Dick Porter  <dick@ximian.com>
15792
15793         * threads.c: Use g_direct_hash instead of the rather bogus
15794         g_int_hash
15795
15796 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
15797
15798         * marshal.c (mono_marshal_get_native_wrapper): add check for null
15799         (fix pinvoke12.exe)
15800         (mono_marshal_get_struct_to_ptr): generate valid IL code
15801         (mono_marshal_get_ptr_to_struct): generate valid IL code
15802         (*): correctly set sig->pinvoke, we need to memdup the signature
15803         to do that
15804
15805 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15806
15807         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
15808         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
15809
15810 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
15811
15812         * profiler.c: provide more callers information.
15813
15814 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
15815
15816         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
15817
15818         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
15819
15820         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
15821
15822 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15823
15824         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
15825         exception instead of going into an infinite loop on dates which it 
15826         can't yet handle.
15827
15828         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
15829         out-of-range exception if needed.
15830
15831         * class.c (mono_class_setup_vtable): allow a virtual method to provide
15832         an implementation for an interface method and to override an inherited
15833         method at the same time. 
15834         Imagine a scenario when a virtual method is used to override a
15835         virtual abstract method in a parent class, and this same method 
15836         provides an implementation for an method inherited from an interface. 
15837         In this case, the interface resolution code will set im->slot, which 
15838         means that the virtual method override pass will skip this method 
15839         which means a pointer to the abstract method inherited from the parent
15840         will remain in the vtable of this non-abstract class.
15841
15842         * class.c: (mono_class_setup_vtable): continue search for a real 
15843         method if only an abstract method is found.     
15844
15845 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
15846
15847         * reflection.c: add size to encoding for ByValStr and ByValArray
15848         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
15849
15850 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15851
15852         * class.c (mono_class_setup_vtable): pass the override info as an
15853         argument.
15854
15855         * class.c (mono_class_setup_vtable): set the slot of overriding methods
15856         correctly.
15857         
15858         * reflection.c (ensure_runtime_vtable); add support for method 
15859         overrides.
15860         
15861 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15862
15863         * reflection.c (resolution_scope_from_image): Hack to work to work with
15864         dynamic assemblies.
15865
15866         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
15867         added a 'force_ref' argument to force this function to allways return 
15868         a TypeRef. This is needed by mono_image_get_memberref_token ().
15869         
15870 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15871
15872         * reflection.c (mono_image_get_type_info): interfaces really don't have
15873         a parent.
15874
15875         * reflection.c (mono_image_basic_init): fill out missing fields of
15876         image structure.
15877
15878         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
15879         dynamic assemblies. This is required so dynamic assemblies show up in
15880         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
15881         Type::GetType() etc. This is consistent with MS behaviour.
15882
15883         * image.c image.h reflection.c: add newly created classes to the name 
15884         cache so mono_class_get () will find them.      
15885
15886 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15887
15888         First part of changes to get IKVM.NET running under mono.
15889         
15890         * appdomain.h, appdomain.c: added new function 
15891         mono_domain_try_type_resolve() which will emit TypeResolve events. 
15892         This function will call AppDomain::DoTypeResolve to do the actual work.
15893
15894         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
15895         moved existing code dealing with dynamic tokens to a new function 
15896         called mono_reflection_lookup_dynamic_token (). This function will 
15897         raise TypeResolve events when appropriate. Since reflection.c is not 
15898         part of libmetadata, a new hook function called 
15899         mono_lookup_dynamic_token() is added to class.c which will call this.
15900
15901         * assembly.h assembly.c: make the invoke_load_hook function public,
15902         so it can be called for dynamic assemblies.
15903
15904         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
15905
15906         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
15907         type isn't found.
15908
15909         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
15910         MonoGHashTable, since it contains pointers to objects which the GC 
15911         needs to track.
15912
15913         * assembly.c (search_loaded): remove unused variable.
15914         
15915 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
15916
15917         * object.c: fixed issue exposed by gcc-generated IL programs
15918         that use RVA data for pointers.
15919
15920 2003-01-25  Martin Baulig  <martin@ximian.com>
15921
15922         * threads.c (start_wrapper): Moved the initialization of
15923         `start_func' above the mono_new_thread_init() call to which we
15924         pass it as argument.
15925
15926 2003-01-24  Martin Baulig  <martin@ximian.com>
15927
15928         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
15929         the MonoThread pointer.
15930
15931 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
15932
15933         * icall.c: Rename `PowImpl' to Pow.
15934
15935 2003-01-23  Dick Porter  <dick@ximian.com>
15936
15937         * threads.c (start_wrapper): Create a Thread object if needed, so
15938         the Main() thread can do the class initialisation in a subthread
15939         that has been set up to allow managed code execution.
15940
15941         Pass the thread ID instead of the MonoThread pointer to the thread
15942         start and attach callbacks.  This change is required, because the
15943         jit thread start callback must be called _before_ the Thread
15944         object can be created.
15945         
15946         (mono_thread_init): Removed much object creation code that is no
15947         longer needed.  No managed code is called from here now.
15948
15949         * object.c (mono_runtime_exec_managed_code): Create a subthread
15950         for Main, and call back to the runtime to use it.
15951         Set the exit code when Main exits.
15952
15953         * gc.c: Make sure domain finalisation happens in a subthread.
15954         Re-enable threaded GC, fixing bug 31333 (again).
15955
15956         * environment.c: System.Environment internall calls (so far just
15957         ExitCode is here, the others are still in icall.c)
15958
15959         * appdomain.c (mono_runtime_cleanup): All threads running managed
15960         code should have finished before mono_runtime_cleanup() is
15961         reached, so no need to clean up threads.
15962
15963 2003-01-22  Martin Baulig  <martin@ximian.com>
15964
15965         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
15966         `gpointer func' arguments.      
15967         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
15968         but added `MonoThread *thread' argument.
15969         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
15970
15971         * threads.c (mono_new_thread_init): Added `gpointer func' argument
15972         and pass it to the mono_thread_start_cb callback.
15973         (mono_install_thread_callbacks): New public function to install a
15974         set of callbacks which are set by the debugger.
15975         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
15976
15977 2003-01-22  Martin Baulig  <martin@ximian.com>
15978
15979         * Makefile.am: Install debug-mono-symfile.h.
15980
15981 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
15982
15983         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
15984
15985 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
15986
15987         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
15988         * class.c (mono_ptr_class_get): correctly set access levels of pointers
15989         (mono_array_class_get): correctly set access levels of arrays
15990
15991 2003-01-20      Patrik Torstensson
15992         * image.h (MonoAssemblyName): changed major, minor, build, revision
15993         from signed to unsigned.
15994
15995 2003-01-20  sean kasun <skasun@azstarnet.com>
15996
15997         * reflection.c (load_cattr_value): Now this handles
15998         MONO_TYPE_SZARRAY.  Fixes bug #35629
15999
16000 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16001
16002         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16003         integer value
16004
16005 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16006
16007         * decimal.c: fixed bug #26056.
16008
16009 2003-01-17  Martin Baulig  <martin@ximian.com>
16010
16011         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16012
16013 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16014
16015         * exception.[ch]:
16016         (mono_get_exception_type_initialization): new function.
16017
16018         * object.c: throw a TypeInitializationException when an exception is
16019         thrown invoking the class constructor.
16020
16021 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16022
16023         * reflection.c: fixed attribute reading.
16024
16025 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16026
16027         * icall.c:
16028         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16029         provided, look for the type in the calling assembly and then in
16030         mscorlib; if the assembly name is provided, only try that one.
16031
16032 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16033
16034         * object.c: register the vtable before there is a chance it's
16035         queried again recursively.
16036
16037 2003-01-13  Duncan Mak  <duncan@ximian.com>
16038
16039         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16040         gc-internal.h. 
16041         
16042 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16043
16044         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16045
16046 2003-01-11  Martin Baulig  <martin@ximian.com>
16047
16048         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16049         this to 20 for the release.
16050
16051 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16052
16053         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16054
16055         * loader.c (mono_method_get_marshal_info): bug fix
16056
16057         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16058         structures with explicit layout
16059
16060 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16061
16062         * profiler.c: made the output more readable (and sorted). 
16063         Added caller information for the allocation profiler.
16064
16065 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16066
16067         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16068
16069 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16070
16071         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16072         to get value types.
16073         
16074 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16075
16076         * object.c, profiler.h, profiler.c, profiler-private.h:
16077         Added object allocation profiler.
16078
16079 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16080
16081         * reflection.h, reflection.c: handle global methods.
16082         Compress blob entries.
16083
16084 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16085
16086         * marshal.c: fix compilation.
16087
16088 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16089
16090         * loader.c (mono_method_get_marshal_info): impl.
16091
16092         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16093
16094 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16095
16096         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16097         for reference types.
16098
16099 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16100
16101         * loader.c: fixed off by one error in loaded parameter names.
16102
16103 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16104
16105         * marshal.c (mono_marshal_get_icall_wrapper): like
16106         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16107         instead of a MonoMethod.
16108
16109 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * decimal.c: fixed bug #36537.
16112
16113 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16114
16115         * marshal.c: throw a missing method exception if a
16116         P/Invoke method is not found.
16117
16118 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16119
16120         * icall.c: allow a null this for constructors.
16121
16122 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16123
16124         * icall.c: raise the proper exceptions if the arguments to the
16125         internal Invoke are incorrect.
16126
16127 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16128
16129         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16130
16131 2003-01-03  Martin Baulig  <martin@ximian.com>
16132
16133         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16134
16135 2002-12-31  Martin Baulig  <martin@ximian.com>
16136
16137         * debug-mono-symfile.c: Completely rewrote the type section.
16138         Instead of using individual malloc()ed fields, we use one big
16139         continuous memory area and offsets into this area.
16140         See the comments in the source code for details.
16141
16142 2002-12-30  Martin Baulig  <martin@ximian.com>
16143
16144         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16145
16146 2002-12-30  Martin Baulig  <martin@ximian.com>
16147
16148         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16149         line number table in this data blob instead of using an external
16150         pointer.
16151
16152 2002-12-28  Martin Baulig  <martin@ximian.com>
16153
16154         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16155
16156 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16157
16158         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16159         as a boxed return type.
16160
16161 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16162
16163         * appdomain.c
16164         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16165         g_build_filename to properly get separators on the filename created.
16166
16167         * object.h: Small change, introduce MonoMarshalByRefObject to
16168         track the layout of that structure in the C# universe as we make
16169         changes there.
16170
16171 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16172
16173         * object.c: removed assert to allow static fields on interfaces.
16174         * loader.c: a TypeSpec may be used for any type, not just arrays.
16175
16176 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16177
16178         * class.c, class.h: added mono_class_array_element_size ().
16179         Ignore static methods in interfaces.
16180
16181 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16182
16183         * threads.c: fixed the build under cygwin.
16184
16185 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16186
16187         * reflection.c: handle nullref constants. Allocate keys for
16188         reflection handles with the GC.
16189
16190 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16191
16192         * threads.c, threads.h: added mono_thread_get_abort_signal()
16193         to get a suitable signal for thread abort.
16194
16195 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16196
16197         * metadata.c: fix handling of ExportedType table.
16198
16199 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16200
16201         * icall.c: added WriteWindowsDebugString internal call.
16202
16203 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16204
16205         * reflection.h: added fields to match C# implementation.
16206
16207 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16208
16209         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16210
16211 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16212
16213         * gc.h, gc-internal.h: Rename header for GC internal calls to
16214         gc-internal.h from gc.h as to not clash with Boehm GC having its
16215         header installed as <gc.h> in outside include paths.
16216         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16217         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16218
16219 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16220
16221         * icall.c: assign minor, build and revision in FillName.
16222
16223 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16224
16225         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16226         Added support for running code generated by Reflection.Emit.
16227
16228 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16229
16230         * appdomain.c: check for NULL argument in LoadFrom.
16231
16232 2002-12-10  Dick Porter  <dick@ximian.com>
16233
16234         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16235
16236 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16237
16238         * appdomain.c: fix buglet when building exe file name.  Handle full
16239         assembly name (needed after latest changes to AssemblyName).
16240         * image.c:
16241         (mono_image_close): free some hashtables.
16242
16243 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16244
16245         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16246         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16247         on some systems (redhat 7.3) 
16248
16249 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16250
16251         * threads.c: delete the critical section of a sync block,
16252         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16253
16254 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16255
16256         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16257
16258 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16259
16260         * appdomain.[ch]: handle the assembly preload event to try loading the
16261         assemblies using the paths we have in the current domain.
16262
16263         * assembly.[ch]: created an assembly preload hook that is called to try
16264         loading the assembly by other means that the ones provided here.
16265
16266         * domain.c: initialize the domain search path.
16267
16268         From now on, assemblies (TODO: except corlib and System) are loaded
16269         according to these rules when using mono_assembly_load ():
16270
16271                 1. It tries to load the assembly from the ApplicationBase
16272                 of the current domain appending .dll and .exe (TODO: have to
16273                 try loading from name/name.dll and name/name.exe).
16274
16275                 2. It tries the search path specified in PrivateBinPath for the
16276                 current domain (if any).
16277
16278                 3. Previous behavior.
16279
16280 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16281
16282         * icall.c: implemented GetInterfaceMap() related icall.
16283         * domain.c, loader.h: load MethodInfo in mono_defaults.
16284
16285 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16286
16287         * gc.c: disable the finalizer thread for now, untill all the issues
16288         with it are resolved.
16289
16290 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16291
16292         * string-icalls.c: handle embedded nulls in string ctor when the
16293         length is specified.
16294
16295 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16296
16297         * class.c: look for explicit interface implementation in parent
16298         classes, too.
16299
16300 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16301
16302         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16303
16304 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16305
16306         * gc.c: protect handles with a critical section.
16307
16308 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16309
16310         * icall.c:
16311         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16312         parameters. If no assembly specified, try getting the type from all
16313         the assemblies in the current domain, else, load the assembly and get
16314         the type from it.
16315
16316 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16317
16318         * marshal.c: applied patch from Aleksey Demakov that fixes
16319         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16320
16321 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16322
16323         * icall.c: fixed get_location.
16324
16325 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16326
16327         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16328         declarations to make it work with older gcc. 
16329
16330         * loader.c (mono_get_method): set signature->pinvoke for native calls
16331
16332 2002-11-20  Dick Porter  <dick@ximian.com>
16333
16334         * threads.c (mono_thread_init): Set the main thread's handle
16335
16336 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16337
16338         * gc.c: allow compilation without GC support. Changed to match the
16339         mono coding style.
16340
16341 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16342
16343         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16344
16345 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16346
16347         * reflection.c: set a public key token on the core assemblies.
16348
16349 2002-11-18  Dick Porter  <dick@ximian.com>
16350
16351         * threads.c: Split out some thread initialisation so that other
16352         files can set the start callback function.
16353
16354         * gc.c: Run finalisers in a separate thread, to avoid stack
16355         overflow.  Fixes bug 31333.
16356
16357         * appdomain.c: Set up GC finalisation thread.
16358
16359         * reflection.c: 
16360         * object.c: 
16361         * domain.c: Use gc.h macros for GC_malloc
16362         
16363 2002-11-15  Dick Porter  <dick@ximian.com>
16364
16365         * threadpool.c: 
16366         * threads.c:
16367         * appdomain.c: Removed mono_runtime_init_with_attach(),
16368         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16369         merging the extra parameter with the existing function.  Removed
16370         unneeded code in mono_thread_attach().
16371
16372 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16373
16374         * image.c (mono_image_loaded_by_guid): a method to get loaded
16375         images by guid. 
16376         (load_metadata_ptrs): we store the guid as string.
16377
16378 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16379
16380         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16381
16382         * metadata.c (mono_guid_to_string): imported method form Zoltan
16383         Varga (slightly modified)
16384
16385         * assembly.c (mono_assembly_open): load precompiled code
16386
16387         * loader.h (MonoMethod): we store the method token for use in the
16388         aot compiler. 
16389
16390 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16391
16392         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16393         the hook function called when an assembly is loaded.
16394         
16395         * domain.c: Modified file.
16396         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16397
16398         Fixes bug #33196.
16399
16400 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16401
16402         * reflection.c: Map PEFileKind to the value expected by the WinNT
16403         image loader. 
16404
16405 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16406
16407         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16408         Read until the buffer is filled completely.
16409
16410 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16411
16412         * icall.c: implemented MonoType.InternalGetEvent ().
16413
16414 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16415
16416         * appdomain.c: implemented InitAppDomainSetup. Delayed
16417         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16418         the entry_assembly.
16419
16420         * assembly.c: base_dir is now an absolute path ending with
16421         G_DIR_SEPARATOR.
16422
16423         * icall.c: modified get_location according to the above changes.
16424
16425         * object.c: init AppDomain.SetupInformation for the default domain after
16426         we have the entry assembly.
16427
16428         * domain.c: when unloading a domain, setup = NULL.
16429
16430 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16431
16432         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16433
16434 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16435
16436         * object.h, object.c: introduced mono_object_get_virtual_method ()
16437         to lookup the method invoked on an object when a callvirt is done on
16438         a method.
16439         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16440
16441 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16442
16443         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16444         current domain when loaded an assembly and failed to load it.
16445
16446         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16447
16448 2002-10-31  Dick Porter  <dick@ximian.com>
16449
16450         * icall.c: 
16451         * file-io.h: 
16452         * file-io.c: Return the error status in a parameter, as the
16453         GetLastError() value has long since been blown away if we try and
16454         look it up in a subsequent internal call invocation.  Delete the
16455         GetLastError() internal call, because it's useless.
16456
16457 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16458
16459         * class.[ch]: added cast_class to fix bug 29517
16460
16461 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16462
16463         * marshal.c: create valid IL code in the filter clause:
16464         the new JIT is less forgiving:-)
16465
16466 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16467
16468         * icall.c: removed get_property internal call.
16469
16470 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16471
16472         * appdomain.h domain.c: Added an ID to appdomains.
16473         
16474         * threads.c threads.h icall.c: Implement icall
16475         Thread:GetDomainID(), and remove unused icall 
16476         CurrentThreadDomain_internal.
16477
16478 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16479
16480         * icall.c: Don't recurse through the base types in GetConstructor.
16481         Fixes bug #32063. 
16482
16483 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16484
16485         * mempool.h, mempool.c: added mono_mempool_empty() and
16486         mono_mempool_stats().
16487
16488 2002-10-23  Dick Porter  <dick@ximian.com>
16489
16490         * file-io.c: 
16491         * file-io.h: 
16492         * icall.c: Added MonoIO.GetFileType internal call
16493
16494 2002-10-17  Dick Porter  <dick@ximian.com>
16495
16496         * appdomain.c (mono_runtime_cleanup): Don't signal the async
16497         delegate semaphore before waiting for all threads to finish,
16498         because new threads can also call async delegates.  Fixes bug
16499         32004.
16500
16501         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
16502         of 3 seconds, in case another async job is queued.  (This part is
16503         needed because the bug fix reintroduced the 3s exit lag.)  This
16504         makes the mono_runtime_shutdown flag superfluous.
16505
16506 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16507
16508         * reflection.c: include ehader size in method section headers.
16509         Really check for suplicated modules entries.
16510
16511 2002-10-17  Martin Baulig  <martin@gnome.org>
16512
16513         * debug-mono-symfile.c: Added back support for locals.
16514
16515 2002-10-14  Martin Baulig  <martin@gnome.org>
16516
16517         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
16518         MONO_TYPE_VOID.
16519
16520 2002-10-14  Martin Baulig  <martin@gnome.org>
16521
16522         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
16523         mono_class_get() instead of looking in the class cache. 
16524
16525 2002-10-13  Martin Baulig  <martin@gnome.org>
16526
16527         * debug-mono-symfile.c: Set version number to 28, include the
16528         signature in method names.
16529
16530 2002-10-13  Martin Baulig  <martin@gnome.org>
16531
16532         * debug-mono-symfile.h: Set version number to 27.
16533
16534 2002-10-11  Martin Baulig  <martin@gnome.org>
16535
16536         * gc.c: Don't register/unregister NULL pointers as disappearing links.
16537
16538 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16539
16540         * metadata.c, metadata.h: added helper function to allocate signatures.
16541
16542 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16543
16544         * icall.c: added internal call to get the location of machine.config.
16545
16546 2002-10-08  Martin Baulig  <martin@gnome.org>
16547
16548         * debug-mono-symfile.c: Ignore classes with a pending init for the
16549         moment.
16550
16551 2002-10-03  Dick Porter  <dick@ximian.com>
16552
16553         * threads.c: Freebsd pthread_t is a pointer
16554
16555 2002-10-03  Dick Porter  <dick@ximian.com>
16556
16557         * socket-io.c: Implemented GetHostName_internal
16558
16559 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16560
16561         * mono-config.c:
16562         (mono_config_parse_file): don't leak the text.
16563
16564 2002-10-02  Martin Baulig  <martin@gnome.org>
16565
16566         * debug-mono-symfile.c: Added support for methods.
16567
16568 2002-10-01  Martin Baulig  <martin@gnome.org>
16569
16570         * debug-mono-symfile.c: Don't emit methods and line numbers for
16571         the dynamic symbol file, just write the type table.  We can easily
16572         have an external helper program which creates a symbol file for an
16573         IL file.        
16574
16575 2002-10-01  Dick Porter  <dick@ximian.com>
16576
16577         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
16578         Only add the handle to the cleanup array when we're about to
16579         launch the thread.  Bug 31425 deadlocked when the test was run on
16580         mono under w32.
16581
16582 2002-10-01  Martin Baulig  <martin@gnome.org>
16583
16584         * debug-mono-symfile.c: Added support for properties.
16585
16586 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16587
16588         * reflection.c: unaligned store fix from Mark Crichton
16589         <crichton@gimp.org>.
16590
16591 2002-09-27  Martin Baulig  <martin@gnome.org>
16592
16593         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
16594         New interncall.
16595
16596 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
16597
16598         * assembly.h, assembly.c: use a sane API to hook into the assembly
16599         loading process instead of a useless special-purpouse hack
16600         (ngen needs a hook, too, for example).
16601
16602 2002-09-27  Dick Porter  <dick@ximian.com>
16603
16604         * threads.c (mono_thread_init): Call GetCurrentProcess() so
16605         io-layer can set up some process handle info.  Not needed on w32,
16606         but doesn't hurt either.
16607
16608         * process.c: Pass the program name in the second parameter to
16609         CreateProcess, so the path is searched.  Include the working
16610         directory. Implemented process name, process enumeration, and some
16611         process detail internal calls.
16612         
16613         * icall.c: Added internal calls for process lookup, and some
16614         process details
16615
16616 2002-09-26  Martin Baulig  <martin@gnome.org>
16617
16618         * assembly.c (mono_install_open_assembly_hook): New global
16619         function to install a function to be invoked each time a new
16620         assembly is loaded.
16621         (mono_assembly_open): Run this callback function if set.
16622
16623         * debug-mono-symfile.c: Put back line numbers for the dynamic
16624         symbol file and also record the .il file as source file.  This
16625         allows us to install the temporary symbol file as `file.dbg' just
16626         like a compiler-generated one.
16627
16628 2002-09-26  Nick Zigarovich <nick@chemlab.org>
16629
16630         * Corrected typo in gc.c (BOHEM vs BOEHM).
16631
16632 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16633
16634         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
16635         GetProperties. Also avoid calling g_slist_length in GetProperties and
16636         GetMethods.
16637
16638 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16639
16640         * reflection.c: avoid unaligned stores (bug spotted by
16641         Mark Crichton  <crichton@gimp.org>).
16642
16643 2002-09-25  Martin Baulig  <martin@gnome.org>
16644
16645         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
16646         instead of guint64 for addresses and added prologue/epilogue info.
16647
16648 2002-09-25  Martin Baulig  <martin@gnome.org>
16649
16650         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
16651         store line number info.  For the dynamic symbol file, we only need
16652         to provide the JIT generated dynamic line number info for the dynamic
16653         symbol file.
16654
16655 2002-09-25  Martin Baulig  <martin@gnome.org>
16656
16657         * debug-mono-symfile.h: Incremented version number.
16658
16659 2002-09-24  Martin Baulig  <martin@gnome.org>
16660
16661         * class.c (mono_debugger_class_init_func): New global function
16662         pointer variable.
16663         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
16664         call it.
16665
16666         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
16667         function.  This is called via the mono_debugger_class_init_func
16668         hook to add all types to the dynamic type table.
16669         (ves_icall_MonoDebugger_GetType): New interncall to get a class
16670         from its metadata token.
16671
16672         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
16673         New interncall for the debugger.
16674
16675 2002-09-24  Nick Drochak <ndrochak@gol.com>
16676
16677         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
16678         before using it in case it is null.
16679         
16680 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16681
16682         * metadata.c: allow custom modifiers in local var signatures
16683         (bug spotted by Zoltan Varga).
16684
16685 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
16686
16687         * class.c: deal with the <Module> class that may have a NULL vtable.
16688         Eliminate warnings.
16689
16690 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16691
16692         * image.c, image.h: more strong name helpers.
16693         * monosn.c: more work: convert pem keys to cryptoapi format.
16694
16695 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16696
16697         * string-icalls.c: speedup IndexOf.
16698
16699 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16700
16701         * icall.c: updates from Zoltan.2.Varga@nokia.com.
16702
16703 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16704
16705         * icall.c: cleanup: use mono_object_domain ().
16706
16707 2002-09-23  Martin Baulig  <martin@gnome.org>
16708
16709         * debug-mono-symfile.c: Improved type support.
16710
16711 2002-09-22  Martin Baulig  <martin@gnome.org>
16712
16713         * debug-mono-symfile.c: Added support for reference types and strings.
16714
16715 2002-09-22  Martin Baulig  <martin@gnome.org>
16716
16717         * debug-mono-symfile.c: Started to work on the type table.
16718
16719 2002-09-21  Martin Baulig  <martin@gnome.org>
16720
16721         * debug-mono-symfile.c: Largely reworked the symbol table format.
16722         The symbol table is now incrementally updated each time a new
16723         method is added.  We're now also using our own magic and version
16724         so that you don't need to recompile all your classes if the
16725         dynamic table changes.
16726         (mono_debug_update_mono_symbol_file): Removed.
16727         (mono_debug_symfile_add_method): New function to add a method.
16728
16729 2002-09-21  Martin Baulig  <martin@gnome.org>
16730
16731         * icall.c
16732         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
16733         New interncall.
16734
16735         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
16736         New interncall to get a method from its metadata token.
16737
16738 2002-09-21  Martin Baulig  <martin@gnome.org>
16739
16740         * debug-mono-symfile.c: Create type table.
16741
16742 2002-09-20  Martin Baulig  <martin@gnome.org>
16743
16744         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
16745
16746 2002-09-20  Martin Baulig  <martin@gnome.org>
16747
16748         * debug-mono-symfile.c: Provide information about params and locals.
16749
16750 2002-09-20  Martin Baulig  <martin@gnome.org>
16751
16752         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
16753         New interncall.
16754
16755         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
16756         interncall to get a method from its metadata token.
16757
16758 2002-09-20  Martin Baulig  <martin@gnome.org>
16759
16760         * debug-mono-symfile.c: Added a few checks for method->header
16761         being non-NULL.  This should never happen, but for the moment
16762         let's use a g_warning() rather than a g_assert().
16763
16764 2002-09-19  Mark Crichton  <crichton@gimp.org>
16765
16766         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
16767         even if support for it isn't present.  Added an #ifdef to fix this.
16768
16769         * socket-io.c: Added checks back for Solaris support.
16770
16771 2002-09-19  Martin Baulig  <martin@gnome.org>
16772
16773         * debug-mono-symfile.c (read_string, write_string): Reflect latest
16774         changes in the symbol file format.
16775
16776 2002-09-18  Martin Baulig  <martin@gnome.org>
16777
16778         * debug-mono-symfile.c: Set version number to 21.
16779
16780 2002-09-18  Dick Porter  <dick@ximian.com>
16781
16782         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
16783         on netbsd.  Fixes bug 30051.
16784
16785 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16786
16787         * reflection.c:
16788         (set_version_from_string): little fix.
16789
16790 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16791
16792         * monosn.c, Makefile.am: added strong name utility.
16793         * reflection.h, reflection.c: implemented delayed signing,
16794         locale, version and hash id assembly attributes.
16795
16796 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16797
16798         * loader.c, metadata.c: load param attributes in signatures.
16799
16800 2002-09-16  Martin Baulig  <martin@gnome.org>
16801
16802         * debug-mono-symfile.c: Added string table with all method names.
16803
16804 2002-09-14  Martin Baulig  <martin@gnome.org>
16805
16806         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
16807         fast method lookup.
16808
16809 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16810
16811         * reflection.c: record the public key token of referenced assemblies.
16812
16813 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16814
16815         * image.c, image.h: added functions to get the strong name and the
16816         public key of an assembly.
16817         * pedump.c: use them.
16818
16819 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
16820
16821         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
16822
16823 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
16824
16825         * marshal.c (mono_marshal_get_managed_wrapper): Added
16826         MONO_TYPE_BOOLEAN 
16827
16828 2002-09-11  Martin Baulig  <martin@gnome.org>
16829
16830         * gc.c: Call GC_unregister_disappearing_link() on all links when
16831         finalizing them, this is necessary to aviod a crash in boehm's
16832         finalize handler.
16833
16834 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16835
16836         * gc.c: handle GetTarget for finalized objects spotted and fixed by
16837         nick@chemlab.org.
16838
16839 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16840
16841         * icall.c: implemented MonoType::Module.
16842         * reflection.c, reflection.h: mono_module_get_object () from
16843         Tomi Pakarinen <tomi.pakarinen@welho.com>.
16844
16845 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
16846
16847         * icall.c: ignore overridden methods in GetMethods ().
16848         Fix for FieldInfo::SetValue().
16849         * object.c: handle float/double in runtime invoke.
16850
16851 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16852
16853         * object.c: allow a constructor to be called again on an object.
16854
16855 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16856
16857         * class.h, class.c: move field layout code to it's own function and
16858         export it. Get an interface id earlier. Move fields in MonoClass
16859         so they are more cache friendly and align the bitfields.
16860         * loader.c: temporary handle get_param_names() for a runtime method.
16861         * reflection.c, reflection.h: more code to handle runtime creation of
16862         types.
16863
16864 2002-09-09  Martin Baulig  <martin@gnome.org>
16865
16866         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
16867         signature with the pinvoke field being set for the actual call.
16868
16869 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16870
16871         * icall.c: removed some unused icalls. Start of map of glib charsets
16872         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
16873
16874 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16875
16876         * debug-helpers.c: break infinite loop (found and fixed by
16877         Holger Arnold <harnold@gmx.de>).
16878
16879 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16880
16881         * icall.c: target may be null in create_delegate.
16882
16883 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16884
16885         * marshal.c: handle a boolean return type.
16886
16887 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16888
16889         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
16890
16891 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16892
16893         * gc.c: fix weakreferences.
16894
16895 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16896
16897         * icall.c: added icall to get default codepage.
16898
16899 2002-09-03  Dick Porter  <dick@ximian.com>
16900
16901         * threads.h: 
16902         * threads.c: Use MonoThread instead of MonoObject where
16903         apropriate.
16904
16905         Store running thread objects in a hash table, so that we have all
16906         the info to hand when waiting for them to finish
16907         (means we don't need OpenThread() any more, so mingw builds should
16908         be fully functional again.)
16909
16910         * verify.c:
16911         * object.h: Added thread ID to MonoThread
16912
16913 2002-09-03  Martin Baulig  <martin@gnome.org>
16914
16915         * icall.c (System.Reflection.Assembly::get_location): New interncall.
16916
16917 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16918
16919         * icall.c: fixed leak in get_temp_path. Thanks lupus.
16920
16921 2002-09-03  Martin Baulig  <martin@gnome.org>
16922
16923         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
16924         argument to store the end address of the disassembled instruction.
16925
16926         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
16927         here from debug-symfile.h.
16928         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
16929         JIT into this struct.
16930         (MonoSymbolFile): Added `char *image_file' field.
16931         (MonoDebugGetMethodFunc): Removed.
16932         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
16933         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
16934         (mono_debug_find_method): New method.
16935
16936         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
16937         create a full symbol file.
16938         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
16939         and static symbol files.
16940         (mono_debug_find_method): The symbol file keeps an internal method hash,
16941         call this to get a MonoDebugMethodInfo from a MonoMethod.
16942
16943         * debug-symfile.[ch]: Removed.
16944
16945 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
16946
16947         * image.c (do_mono_image_open): Remove linker version check.
16948
16949 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
16950
16951         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
16952         wrappers for instance methods.
16953         
16954 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16955
16956         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
16957
16958 2002-08-28  Dick Porter  <dick@ximian.com>
16959
16960         * Makefile.am: Export HOST_CC for w32 builds
16961
16962 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16963
16964         * file-io.c process.c: MonoString are null terminated, no
16965         need for mono_string_to_utf16() anymore.
16966
16967 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16968
16969         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
16970
16971 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
16972
16973         * icall.c, reflection.h: speedup System.MonoType.
16974
16975 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16976
16977         * reflection.c: allow null as the value of a string argument in
16978         custom attributes constructors.
16979
16980 2002-08-27  Martin Baulig  <martin@gnome.org>
16981
16982         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
16983         `trampoline_address' field.
16984
16985 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
16986
16987         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
16988         check (fixes bug #29486) 
16989
16990 2002-08-27  Martin Baulig  <martin@gnome.org>
16991
16992         * debug-mono-symfile.c: Changed the file format in a way that allows us
16993         open it read-only and to use a specially malloced area for all the
16994         dynamic data.  We can now also generate a symbol file on-the-fly if we're
16995         debugging IL code and there is no MCS generated symbol file for it.
16996
16997 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16998
16999         * object.c: added a define for a good string and array
17000         creation speedup (not enabled by default because we need to deal with
17001         the synch stuff).
17002
17003 2002-08-26  Martin Baulig  <martin@gnome.org>
17004
17005         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17006         function to create a dynamic symbol file.  This is used by the
17007         debugger to create a symbol file for IL code on-the-fly.
17008
17009 2002-08-26  Martin Baulig  <martin@gnome.org>
17010
17011         * loader.c (mono_lookup_pinvoke_call): Include the error message
17012         from g_module_error() in the error message.
17013
17014 2002-08-24  Martin Baulig  <martin@gnome.org>
17015
17016         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17017         function to update the symbol file.  The symbol file is mmap()ed
17018         writable, but private.  This allows us to install the symbol file
17019         together with the assembly.
17020
17021 2002-08-24  Martin Baulig  <martin@gnome.org>
17022
17023         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17024         but they can read the new symbol file format which mcs is now creating.
17025
17026         * debug-symfile.c (mono_debug_find_source_location): Moved to
17027         debug-mono-symfile.c; this is now operating on the new symbol file.
17028
17029 2002-08-23  Martin Baulig  <martin@gnome.org>
17030
17031         * debug-helpers.c (mono_method_desc_from_method): New function to get
17032         a MonoMethodDesc from a MonoMethod.
17033
17034 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17035
17036         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17037         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17038
17039 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17040
17041         * string-icalls.[ch]: make helper methods static.
17042
17043 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17044
17045         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17046         types to it and to SetValueInternal.
17047
17048         * object.c: Moved handle_enum label to its proper place. This was the
17049         f... bug! ;-)
17050
17051         This time i compiled mcs and gtk-sharp and they both work.
17052
17053 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17054
17055         * icall.c: reverted partially my previous patch until 
17056         object.c:set_value handles enums correcly.
17057
17058 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17059
17060         * icall.c:
17061         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17062         (ves_icall_System_Environment_get_MachineName): removed warning when
17063         compiling under cygwin.
17064
17065 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17066
17067         * object.c: fixed field_get_value() for reference types.
17068
17069 2002-08-22  Dick Porter  <dick@ximian.com>
17070
17071         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17072         Don't free a buffer while it's still needed.  Patch from Jonathan
17073         Liger <Jonathan.liger@wanadoo.fr>
17074
17075 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17076
17077         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17078         internal call.
17079
17080 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17081
17082         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17083         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17084
17085         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17086         we call unmanaged code which throws exceptions.
17087
17088 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17089
17090         * appdomain.h: added per-domain entry_assembly.
17091         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17092         arguments.
17093         * icall.c: Assembly::GetEntryAssembly icall.
17094         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17095         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17096
17097 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17098
17099         * appdomain.h, gc.c: added mono_domain_finalize ().
17100
17101 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17102
17103         * object.c:
17104         (mono_print_unhandled_exception): changed g_warning by g_printerr
17105         because g_log has a 1024 characters limit (yeah, i got a big stack
17106         trace). Don't print exception name, that should be in ToString 
17107         returned string.
17108
17109 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17110
17111         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17112         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17113
17114 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17115
17116         * object.c:
17117         (mono_print_unhandled_exception): after previous commit, i realized
17118         that MS calls ToString on the exception. I changed this function to
17119         do that. This way we get stack_trace for free.
17120
17121 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17122
17123         * object.c:
17124         (mono_print_unhandled_exception): invoke Message property instead of
17125         getting 'message' field from Exception. Don't allocate memory for
17126         'trace' and 'message' if not needed.
17127
17128 2002-08-18  Dick Porter  <dick@ximian.com>
17129
17130         * unicode.c: Fix asserts to match Encoder.cs checks
17131
17132 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17133
17134         * marshal.c: fix unaligned store issue and a few wrong
17135         opcode argument types.
17136
17137 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17138
17139         * icall.c: added GetUninitializedObjectInternal internal call.
17140
17141 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17142
17143         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17144         to the right domain.
17145
17146 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17147
17148         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17149
17150         * class.c (class_compute_field_layout): set blittable to false for Strings
17151
17152         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17153
17154 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17155
17156         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17157         first chunk of code to create types at runtime. Code to
17158         handle ReflectedType/DeclaringType. Make reflection handles
17159         domain specific.
17160
17161 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17162
17163         * class.c: set correct name in arrays.
17164
17165 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17166
17167         * appdomain.c (mono_domain_transfer_object): make it work with
17168         valuetypes. bug fixes.
17169
17170 2002-08-12  Dick Porter  <dick@ximian.com>
17171
17172         * object.h: Rename some parameters to avoid c++ keywords (Patch
17173         from Joseph Wenninger <kde@jowenn.at>)
17174
17175 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17176
17177         * icall.c: added icall to implement Assembly.GetFile*.
17178
17179 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17180
17181         * reflection.h, reflection.c: code to embed managed resources.
17182
17183 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17184
17185         * class.c: move all the type size stuff into
17186         class_compute_field_layout().
17187
17188 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17189
17190         * class.c: ensure enums have always the correct instance size.
17191         * unicode.c: remove wrong assert.
17192
17193 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17194
17195         * assembly.c: fix mem corruption issue.
17196         * image.h, image.c: added mono_image_get_resource () to access
17197         managed resources.
17198         * icall.c: implemented Assembly.EntryPoint property and some
17199         Managed Resources related internalcalls.
17200
17201
17202 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17203
17204         * image.c, image.h: impemented mono_image_get_entry_point ().
17205         * appdomain.c: use mono_image_get_entry_point.
17206
17207 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17208
17209         * reflection.c: support the object type argument when loading
17210         custom attributes.
17211
17212 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17213
17214         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17215         String as return type.
17216
17217 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17218
17219         * reflection.c: fix encoding of named args for custom attrs to match
17220         the ms implementation. Read them back when instantiating custom
17221         attributes.
17222
17223 2002-08-02  Radek Doulik  <rodo@ximian.com>
17224
17225         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17226         by Dietmar as quick fix
17227         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17228         16 as stack size, used on more places as quick fix before Dietmar
17229         will fix it properly
17230
17231 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17232
17233         * object.h, object.c: added accessors for fields and properties.
17234
17235 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17236
17237         * class.c, class.h: made mono_class_get_field_from_name ()
17238         loop on parent types.
17239         Added mono_class_get_property_from_name ().
17240
17241 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17242
17243         * class.c, class.h: move the code to setup the type vtable in its own
17244         function so that it can be reused also for types created at runtime.
17245         Eliminate the "class" identifier from the header file.
17246         * reflection.c: setup the vtable for enums so that we can create
17247         objects for use in SetConstant ().
17248
17249 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17250
17251         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17252         instead of the delegate itself as this pointer (bug #28383)
17253
17254 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17255
17256         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17257         conversions.
17258
17259 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17260
17261         * loader.c: don't set the pinvoke bit on icalls.
17262
17263 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17264
17265         * debug-helpers.c (mono_method_full_name): only print a number to
17266         indicate wrapper type (so that the output is more readable in traces).
17267
17268 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17269
17270         * class.c (mono_class_init): include method override patch from Paolo
17271
17272 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17273
17274         * icall.c: fixed GetTypeCode().
17275
17276 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17277
17278         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17279         use real delegate invoke function to make it work with multicast
17280         delegates (fix bug# 28291).
17281
17282 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17283
17284         * object.c: load constant strings.
17285
17286 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17287
17288         * reflection.c: no magic numbers.
17289         * tabledefs.h: security action enum.
17290
17291 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17292
17293         * assembly.c: fix possible memory corruption.
17294
17295 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17296
17297         * reflection.h, reflection.c: added support for linking resources.
17298         * verify.c: check we have an updated corlib.
17299
17300 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17301
17302         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17303         string arrays.
17304         (mono_marshal_string_array): null terminate unmanaged string arrays.
17305         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17306
17307 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17308
17309         * icall.c: Type.GetType () can now return also types from the
17310         calling assembly.
17311
17312 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17313
17314         * loader.h, loader.c: stack walking support.
17315         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17316         GetCallingAssembly.
17317
17318 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17319
17320         * marshal.c: added optimisations for blittable types 
17321
17322         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17323         (mono_class_setup_mono_type): set blittable attribute for single
17324         and double.
17325
17326         * marshal.c (mono_string_utf8_to_builder): impl.
17327         (mono_string_builder_to_utf8): impl.
17328         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17329
17330 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17331
17332         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17333         (mono_marshal_get_managed_wrapper): impl. byref types
17334
17335 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17336
17337         * icall.c:
17338         (search_method): don't display debug message. 
17339
17340 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17341
17342         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17343
17344 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17345
17346         * appdomain.c: set the missing filename when throwing exception.
17347
17348 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17349
17350         * metadata.c (mono_type_size): code cleanup
17351         (mono_type_stack_size): removed some test code
17352
17353 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17354
17355         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17356         mono_get_exception_file_not_found now.
17357
17358         * exception.c (mono_exception_from_name_two_strings): New version
17359         that will call a constructor with two string arguments. 
17360         (mono_get_exception_file_not_found): New helper routine, used to
17361         report file-not-found errors.
17362
17363 2002-07-20  Dick Porter  <dick@ximian.com>
17364
17365         * process.h:
17366         * process.c: Pass file handles to CreateProcess
17367         
17368         * icall.c:
17369         * file-io.h:
17370         * file-io.c: Implemented CreatePipe
17371
17372 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17373
17374         * metadata.c (mono_get_param_info): set alignment for value types
17375
17376 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17377
17378         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17379         Constify mono_domain_assembly_open().
17380         * loader.c: handle null namespace in icalls.
17381
17382 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17383
17384         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17385         (emit_str_to_ptr_conv): marshal object as structs
17386
17387         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17388
17389         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17390
17391 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17392
17393         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17394         (mono_marshal_get_native_wrapper): we an now return value types
17395
17396 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17397
17398         * verify.c: more checks implemented.
17399
17400 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17401
17402         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17403         (fix bug #27695)
17404         (mono_marshal_get_native_wrapper): allow byref arguments
17405         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17406         impl. PtrToStringXXX methods
17407         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17408         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17409         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17410         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17411         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17412
17413 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17414
17415         * reflection.c: fix buglet in parsing an assembly name.
17416
17417 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17418
17419         * marshal.c (emit_ptr_to_str_conv): first impl.
17420
17421 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17422
17423         * object.c, class.h: cache the vtable in the class as suggested by
17424         vargaz@freemail.hu (Zoltan Varga).
17425
17426 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17427
17428         * class.h, loader.c: added mono_field_from_token().
17429         * verify.c: first cut of type checking code.
17430
17431 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17432
17433         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17434
17435 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17436
17437         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17438         (fix bug #27782)
17439         (mono_marshal_get_remoting_invoke): impl.
17440         (mono_delegate_begin_invoke): impl.
17441         (mono_mb_emit_save_args): impl.
17442         (mono_delegate_end_invoke): impl.
17443         (mono_marshal_get_delegate_begin_invoke):
17444         (mono_marshal_get_delegate_end_invoke):
17445         (mono_marshal_get_delegate_invoke): generate a special name for
17446         those methods (including the signature) and associate them whith
17447         the delegate class. 
17448
17449 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17450
17451         * reflection.[ch]: 
17452         (mono_reflection_type_from_name): now it has a MonoImage parameter
17453         which is used as the default image to search the type in. If the image
17454         is NULL or getting the type from it fails, it defaults to corlib.
17455
17456         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17457         new parameter.
17458
17459 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17460
17461         * reflection.c: update the parameter table index.
17462
17463 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17464
17465         * domain.c: don't include the mark byte in the string hash.
17466
17467 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17468
17469         * icall.cs: icall for Type.GetTypeCode ().
17470         * verify: a couple of fixes and disabled local initialization checks.
17471
17472 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
17473
17474         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
17475
17476         * debug-helpers.c (mono_method_full_name): print the type of the
17477         runtime wrapper
17478
17479         * metadata.c (mono_signature_hash): a hash function for signatures
17480         (mono_signature_hash): better hash algorithm
17481
17482         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
17483
17484         * debug-helpers.c (mono_method_full_name): this can now generate
17485         method names with signatures
17486
17487         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
17488         method dont have this pointers.
17489
17490 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17491
17492         * reflection.c: fixup typebuilder tokens.
17493         * image.c: fix buglet.
17494         * marshal.h: remove whitespace.
17495         * metadata.h, metadata.c: reinstate code that was removed.
17496         * verify.c: handle catch directives and fix another couple of bugs.
17497
17498 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
17499
17500         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
17501         (mono_marshal_get_native_wrapper): make it comp. with the old code
17502         (mono_marshal_get_native_wrapper): support boolean
17503         (mono_marshal_get_managed_wrapper): support more types
17504
17505 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
17506
17507         * class.c (class_compute_field_layout): compute class->blittable attribute.
17508
17509 2002-07-09  Dick Porter  <dick@ximian.com>
17510
17511         * threads.c: Make the thread cleaning up cope with threads that
17512         call ExitThread()
17513
17514 2002-07-08  Radek Doulik  <rodo@ximian.com>
17515
17516         * reflection.c (method_encode_code): use non-translated values to
17517         compute finally_start, this fixes exception handling on ppc, yay!
17518
17519         * decimal.h (struct signscale): fix endianess
17520
17521 2002-07-07  Radek Doulik  <rodo@ximian.com>
17522
17523         * reflection.c: swap box_val and not val
17524
17525 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17526
17527         * reflection.c, reflection.h: handle full assembly info in type name.
17528         Handle Type arguments when loading custom attributes.
17529         * icall.c: updated to use new mono_reflection_type_from_name () method.
17530
17531 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17532
17533         * loader.c:
17534         (method_from_memberref): also print assembly name when method not found.
17535
17536 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17537
17538         * icall.c:
17539         (ves_icall_TypeGetProperties): fixed bug #27473. 
17540
17541 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17542
17543         * reflection.c: display image name and token when cannot find the
17544         .ctor for an attribute.
17545
17546 2002-07-05  Martin Baulig  <martin@gnome.org>
17547
17548         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
17549
17550 2002-07-04  Dick Porter  <dick@ximian.com>
17551
17552         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
17553         compile on mingw.  This will cause mingw builds to not wait for
17554         subthreads to terminate after the main thread does.  I've lodged a
17555         bug with the mingw developers for them to wrap OpenThread().
17556
17557 2002-07-03  Dick Porter  <dick@ximian.com>
17558
17559         * threads.c: Store thread IDs instead of handles, because
17560         GetCurrentThread() returns a pseudohandle and therefore stores
17561         useless values.  mono_thread_cleanup() continues checking the
17562         array of threads until it is empty, to cope with subthreads
17563         spawning new threads after the main thread has finished.
17564
17565         * profiler.h:
17566         * profiler.c:
17567         * profiler-private.h: Pass the thread ID to thread profiler
17568         functions, instead of a handle
17569
17570 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17571
17572         * verify.c: fixes to make it more usable.
17573         * pedump.c: added --verify code to verify IL code in an assembly.
17574
17575 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17576
17577         * reflection.c: turn errors into warnings to allow compiling corlib.
17578
17579 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17580
17581         * reflection.c: add special cases to compile corlib.
17582
17583 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17584
17585         * reflection.c: handle properties with only a set method.
17586
17587 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17588
17589         * opcodes.h: add enum with opcodes in opval order.
17590
17591 2002-07-01  Dick Porter  <dick@ximian.com>
17592         
17593         * object.h:
17594         * object.c (mono_runtime_run_main): Removed unneeded argument
17595
17596 2002-06-28  Martin Baulig  <martin@gnome.org>
17597
17598         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
17599
17600 2002-06-27  Dick Porter  <dick@ximian.com>
17601
17602         * threads.c: Store the handle in both the parent thread and in the
17603         subthread, to minimise the time between starting a new thread and
17604         storing its ID.
17605
17606 2002-06-26  Dick Porter  <dick@ximian.com>
17607
17608         * appdomain.c (mono_runtime_cleanup): Close the socket library
17609         after all the threads have finished, not before
17610
17611 2002-06-26  Martin Baulig  <martin@gnome.org>
17612
17613         * debug-symfile.c (mono_debug_find_source_location): Added
17614         `guint32 *line_number' argument.  If it's not NULL, store the line number
17615         there and return the file name without the line number.
17616
17617 2002-06-25  Dick Porter  <dick@ximian.com>
17618
17619         * icall.c:
17620         * process.h:
17621         * process.c: Process forking and other support functions
17622
17623 2002-06-25  Dick Porter  <dick@ximian.com>
17624
17625         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
17626         things dont happen when the image is closed.
17627         (mono_image_lookup_resource): Walk the resource section looking
17628         for a particular entry
17629
17630         * cil-coff.h: PE resource section decoding
17631
17632 2002-06-25  Dick Porter  <dick@ximian.com>
17633         
17634         * assembly.h:
17635         * assembly.c: 
17636         (mono_assembly_foreach): Accessor functions to walk the list of
17637         loaded assemblies
17638         (mono_assembly_set_main):
17639         (mono_assembly_get_main): Process methods need to know which
17640         assembly is the "main" one
17641
17642         * object.c (mono_runtime_run_main): Record the main assembly
17643
17644         * debug-helpers.c: Fix typo
17645
17646 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
17647
17648         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
17649         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
17650
17651 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17652
17653         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
17654
17655 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
17656
17657         * image.c (do_mono_image_open): Initialize reference count,
17658         otherwise we leak the MonoImage.
17659
17660 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17661
17662         * reflection.c: small tweak to handle self-hosting.
17663
17664 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17665
17666         * reflection.c: fix type name parse code.
17667
17668 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17669
17670         * reflection.c: break out of the loop.
17671         * image.c: special case corlib.
17672
17673 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17674
17675         * reflection.c: add all the custom attrs at the end to ensure the
17676         ctors have been properly initialized when the attributes are defined
17677         in the current assembly.
17678
17679 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17680
17681         * reflection.c: handle correctly multiple-nested types.
17682
17683 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17684
17685         * row-indexes.h: fix typos.
17686         * reflection.c: adjust for typos and fix method_def_or_ref
17687         encoding in MethodImpl table.
17688
17689 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17690
17691         * reflection.c: fix entry point patching (thanks Serge!).
17692
17693 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
17694
17695         * verify.c: add check for System.Exception
17696
17697 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17698
17699         * image.c, class.c: minifix for code just c&p'ed.
17700         * reflection.c: warning fix.
17701         * object.h, loader.h, domain.c: load also StringBuilder.
17702
17703 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17704
17705         * marshal.h, marshal.c: some support code to handle complex marshaling.
17706
17707 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17708
17709         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
17710         Better signatures with vtable error dump.
17711
17712 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
17713
17714         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
17715
17716 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
17717
17718         * icall.c (ves_icall_Type_GetField): impl.
17719
17720 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17721
17722         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
17723         to retrieve a marshal description blob for a field or param.
17724
17725 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17726
17727         * reflection.h, reflection.c: change order of nested type emission
17728         to avoid table corruption. The NestedTypes table is sorted.
17729         * icall.c: change order of GetConstructor results to workaround mcs bug.
17730
17731 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17732
17733         * reflection.h, reflection.c: handle field and param marshal
17734         information.
17735
17736 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17737
17738         * icall.c, marshal.c marshal.h: more Marshal class implementation.
17739
17740 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17741
17742         * reflection.c: fix call convention.
17743
17744 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17745
17746         * reflection.h, reflection.c: mono_image_get_memberref_token()
17747         takes a type instead of a class, now. Added
17748         mono_image_get_array_token() to create tokens for the special
17749         multi-dim array methods.
17750
17751 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17752
17753         * assembly.c: handle modules (no assembly table). Split
17754         loading references in its own function.
17755         * class.c: handle moduleref resolution scope.
17756         * image.c, image.h: cache module name in image.
17757
17758 2002-06-07  Martin Baulig  <martin@gnome.org>
17759
17760         * reflection.c (mono_image_get_type_info): Only add a class layout entry
17761         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
17762
17763 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17764
17765         * icall.c: more signature fixes that used uint instead of int.
17766
17767 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17768
17769         * reflection.c: fixed signature of field refs.
17770
17771 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17772
17773         * class.c, reflection.c: handle typerefs of nested types
17774         (both on read and when writing files).
17775
17776 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17777
17778         * icall.c: fix method signatures that tried to workaround the previous
17779         typo, d'oh!
17780
17781 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17782
17783         * debug-helpers.c: fix typo.
17784
17785 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17786
17787         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
17788         rewrote the PE/COFF writing code (our programs are understood by the
17789         ms runtime, now).
17790
17791 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17792
17793         * gc.c, gc.h, icall.c: weakreference support.
17794
17795 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17796
17797         * Makefile.am, mono-config.c: use $(sysconfdir).
17798
17799 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17800
17801         * icall.c: changed default precision of Double.ToString() to 15.
17802         Fixed memory leak. Unified with Single.ToString.
17803
17804 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17805
17806         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
17807
17808 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17809
17810         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
17811         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
17812         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
17813         and myself.
17814
17815 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17816
17817         * debug-symfile.c, sysmath.c: yet more compilation fixes.
17818
17819 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17820
17821         * reflection.c, socket-io.c: more compilation fixes.
17822
17823 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17824
17825         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
17826         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
17827         unicode.c: warning and compiler compatibility fixes.
17828
17829 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17830
17831         * class.h, metadata.c: fixed warnings/compilation errors.
17832
17833 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17834
17835         * Makefile.am, mono-config.c, mono-config.h: configuration file
17836         support routines.
17837         * loader.c, loader.h: make Dll mapping configurable at runtime in the
17838         config file. Export methods to insert and lookup mappings.
17839
17840 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17841
17842         * reflection.c: handle types and boxed objects in custom attr
17843         constructors.
17844
17845 2002-05-30  Martin Baulig  <martin@gnome.org>
17846
17847         * debug-symfile.c
17848         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
17849
17850 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
17851
17852         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
17853         to lookup the implmap row for a P/Invoke method.
17854         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
17855         P/Invoke method from the runtime on an as needed basis.
17856
17857 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
17858
17859         * metadata.c (mono_metadata_parse_signature): impl.
17860
17861 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17862
17863         * class.c: handle .pack directive.
17864
17865 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17866
17867         * object.c: initialize static fields with RVA data.
17868
17869 2002-05-25  Martin Baulig  <martin@gnome.org>
17870
17871         * debug-symfile.c
17872         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
17873
17874 2002-05-24  Martin Baulig  <martin@gnome.org>
17875
17876         * debug-symfile.c
17877         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
17878         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
17879         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
17880
17881 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17882
17883         * object.c: special case string ctros in invoke.
17884         * gc.c: silly whitespace changes.
17885
17886 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
17887
17888         * threadpool.[ch]: impl. a threadpool that can
17889         be used by mint and mono.
17890
17891 2002-05-22  Martin Baulig  <martin@gnome.org>
17892
17893         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
17894         The first argument is now a `MonoReflectionModuleBuilder *', the return
17895         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
17896         `methods' field to get the method builder.  The `token' argument is the
17897         unfixed token.
17898
17899         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
17900         invalid characters instead of g_assert_not_reached()ing.  This seems
17901         to be the behaviour of mscorlib.
17902
17903 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
17904
17905         * object.c (mono_runtime_invoke_array): applied patch from Rachel
17906         Hestilow to fix bug #25104
17907
17908 2002-05-21  Martin Baulig  <martin@gnome.org>
17909
17910         * debug-symfile.c (mono_debug_find_source_location): New function.
17911         Looks up an IL offset in the line number table and returns the source
17912         location as a string.
17913
17914 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17915
17916         * icall.c:
17917         (mono_double_ToStringImpl): changed %f by %g until we have something
17918         better.
17919
17920 2002-05-21  Nick Drochak  <ndrochak@gol.com>
17921
17922         * icall.c : Use different name for Math.Pow's icall.  Needed to check
17923         parameters first in C#.
17924
17925 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17926
17927         * icall.c, reflection.h: added icall to get info about an event.
17928
17929 2002-05-20  Radek Doulik  <rodo@ximian.com>
17930
17931         * object.c (mono_value_box): don't use memcpy for boxing on BIG
17932         endian
17933         (mono_value_box): don't use memcpy for small sizes on
17934         architectures with unaligned access
17935
17936 2002-05-20  Martin Baulig  <martin@gnome.org>
17937
17938         * reflection.c (mono_reflection_setup_internal_class): Don't crash
17939         if `tb->parent == NULL'.
17940         (mono_reflection_create_internal_class): New function.  This is
17941         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
17942         for enum types.
17943
17944         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
17945         New interncall.
17946
17947 2002-05-19  Martin Baulig  <martin@gnome.org>
17948
17949         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
17950         argument to get the length, don't default to the array length.
17951
17952 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
17953
17954         * assembly.c (mono_assembly_setrootdir): New function used to
17955         override the MONO_ASSEMBLIES directory.
17956
17957 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17958
17959         * icall.c: ValueType_GetHashCode() initialize local var.
17960
17961 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17962
17963         * reflection.c: sort custom attributes table.
17964
17965 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17966
17967         * reflection.c: support named args in custom attributes (write support).
17968
17969 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17970
17971         * reflection.c: fix finally position calculation.
17972
17973 2002-05-15  Radek Doulik  <rodo@ximian.com>
17974
17975         * reflection.c: fixed endianess at many places
17976
17977         * icall.c (ves_icall_InitializeArray): comment out debug msg
17978
17979 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
17980
17981         * object.c (mono_unhandled_exception): new function to handle
17982         unhandled exceptions.
17983         (mono_unhandled_exception): call the UnhandledException event.
17984         (mono_runtime_delegate_invoke): impl.
17985
17986 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
17987
17988         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
17989         returns the RVA, not the direct pointer to the data. Handle the case
17990         when the class size is fixed.
17991
17992 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17993
17994         * reflection.c: fix some endianess issues.
17995
17996 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
17997
17998         * object.c (mono_runtime_invoke): is now able to catch exceptions.
17999
18000         * threads.c (mono_thread_init): added a callback which is invoked
18001         at thread start.
18002
18003 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18004         
18005         * icall.c: make GetHashCode return non-negative values.
18006
18007 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18008
18009         * object.c, icall.c, gc.c: revert to address-based hashcode.
18010
18011 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18012
18013         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18014
18015 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18016
18017         * icall.c, class.c: special case <Module>.
18018
18019 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18020
18021         * icall.c: fix bug in GetNow().
18022
18023 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18024
18025         * object.c (mono_runtime_class_init): make sure that we call all
18026         static class constructors.
18027
18028 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18029
18030         * reflection.c: sort methodsemantics table.
18031
18032 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18033
18034         * reflection.h, reflection.c: honour init locals setting.
18035
18036 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18037
18038         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18039
18040 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18041
18042         * reflection.c: support ContructorBuilders in attribute blob creation.
18043
18044 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18045
18046         * reflection.c: some changes to build a binary that can be run
18047         directly in windows.
18048
18049 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18050
18051         * loader.c: print a big message when an icall can't be found.
18052
18053 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18054
18055         * string-icalls.c: fix bug 24248.
18056
18057 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18058
18059         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18060         icall.c, reflection.h: separate assembly loading by pathname and by
18061         assembly name. Use the MONO_PATH env var to search for assemblies.
18062
18063 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18064
18065         * assembly.c, image.h: add some support for assemblies
18066         with multiple modules.
18067         * class.c, class.h: export mono_class_from_typeref().
18068         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18069         instead.
18070
18071 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18072
18073         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18074         documentation says (the ECMA one is correct).
18075
18076 2002-05-02  Dick Porter  <dick@ximian.com>
18077
18078         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18079         Don't name the synchronisation mutex.
18080
18081 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18082
18083         * rand.c
18084         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18085         Make the prototypes match.
18086         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18087         Same.
18088
18089         * icall.c
18090         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18091         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18092         all systems have tm.tm_zone, so use strftime() with %Z to print
18093         the timezone abreviation into a temp string.
18094
18095         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18096         rather than mono_array_addr() on a MonoString on Big Endian
18097         machines.
18098
18099 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18100
18101         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18102         fix bug 24041
18103
18104 2002-04-30  Dick Porter  <dick@ximian.com>
18105
18106         * socket-io.c: Cope with SOCKET being an integer rather than a
18107         pointer now.
18108
18109         * threads.c: Added Thread_free_internal, to deal with thread
18110         handle cleanup.  Moved calls to handle_store() and handle_remove()
18111         to start_wrapper(), so each can only be called once.  Allocate
18112         synchronisation blocks with GC_malloc(), and use GC finalisation
18113         to close the handles.
18114
18115         * icall.c: added System.Threading.Thread::Thread_free_internal
18116
18117 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18118
18119         * icall.c: support Environment.Exit, CommandLineArgs().
18120
18121 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18122
18123         * object.c, object.h: added mono_runtime_run_main () and
18124         mono_runtime_get_main_args () for use in System.Environment.
18125
18126 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18127
18128         * gc.c: fix thinko, enable actual finalization since the jit is now
18129         fixed.
18130
18131 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18132
18133         * gc.c, object.c: take into account that an object may be offset wrt the address
18134         returned by GC_malloc().
18135
18136 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18137
18138         * image.c: handle files without entries in the assembly table (modules).
18139
18140 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18141
18142         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18143         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18144         allowed to be null when it's System.Object class setup.
18145
18146 2002-04-27  Martin Baulig  <martin@gnome.org>
18147
18148         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18149         if `tb->parent == NULL' rather than crashing.
18150
18151 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18152
18153         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18154         calling acos() where asin() should have been called.
18155
18156 2002-04-26  Martin Baulig  <martin@gnome.org>
18157
18158         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18159         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18160         there's a subdirectory called `System', but we don't want to read that
18161         subdirectory as an assembly.
18162
18163 2002-04-25  Martin Baulig  <martin@gnome.org>
18164
18165         * debug-symfile.c: Reflect latest MonoString changes.
18166
18167 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18168
18169         * rand.c, rand.h: instance method icalls need to have an explicit
18170         this pointer as first argument in the C implementation.
18171
18172 2002-04-25  Nick Drochak <ndrochak@gol.com>
18173
18174         * icall.c: Fix typo in map for GetNonZeroBytes
18175
18176 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18177
18178         * string-icalls.c : String does now passes unit tests without any 
18179         errors, the following changes has been made:
18180         
18181         Implemented replace methods.
18182         Renaming of methods to (try) follow the standard.
18183         Fixed compare ordinal
18184         Made all memory allocated directly to function instead of via icall function.
18185         Small performance fix in is_in_array function
18186                         
18187  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18188
18189         c (mono_string_Internal_ctor_charp_int_int):
18190         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18191         sindex < 0, throw ArgumentOutOfRangeException instead of
18192         ArgumentNullException.
18193
18194         Added new check for length == 0, however
18195         I need to make it return String.Empty from the C code.
18196         
18197         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18198         that calculate the length for us here.
18199         
18200         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18201         mono_string_new_utf16 with mono_string_new, since value is utf8.
18202
18203 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18204
18205         * object.c: register the object for finalization if needed.
18206         Allocate one more char in the string for the terminating 0 char.
18207
18208 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18209
18210         * class.c, class.h, image.c: check if a type implemenst a destructor.
18211         Use the proper key for array class lookups.
18212         * icall.c: register the icalls in the System.GC class.
18213         * gc.c, gc.h: GC-related functions and icalls.
18214
18215 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18216
18217         * icall.c:
18218         * socket-io.c:
18219         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18220         changed a couple of free () by g_free ().
18221
18222         * decimal.c: one-liner in the comments for decimal2string ().
18223
18224 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18225
18226         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18227
18228 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18229
18230         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18231         * object.c (mono_runtime_invoke_array) : handle null in params
18232
18233 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18234
18235         * string-icalls.c: fixed bug in split (one off bug)
18236
18237 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18238
18239         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18240         * icalls.c: added String::Equals as internal method
18241
18242 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18243
18244         * threads.c: fixed bug in the double interlocked functions
18245
18246 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18247
18248         * threads.c: implemented all of the new interlocked icalls.
18249         * string-icalls.c: fix a bug in insert.
18250         * icalls.c: added the icalls for interlocked, removed old string functions.
18251         
18252 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18253
18254         * loader.c: fix off-by-one error when reading argument names.
18255
18256 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18257
18258         * profiler.c: win32 counter implementation (untested).
18259         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18260         (the latter needs testing and more complete impl. from win32 folks).
18261
18262 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18263
18264         * object.c: mono_array_new_full workaround mono_array_class_get
18265         problem.
18266
18267 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18268
18269         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18270         * object.h (mono_string_chars): Changed casting type.
18271
18272 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18273
18274         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18275                            method signatures to use gunichar2 instead of gint16.
18276
18277 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18278
18279         * object.h, object.c: domain-specific versions of mono_object_new and
18280         mono_array_new.
18281
18282 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18283
18284         * object.c: changed String layout
18285
18286         * string-icalls.c (mono_string_Internal_ctor_chara): added
18287         internal string constructors.
18288
18289 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18290
18291         * threads.c: pass 'this' to the thread start routine.
18292
18293 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18294
18295         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18296         InternalCompareStr don't call twice mono_string_cmp_char for the last
18297         character. Improved performance in mono_string_cmp_char.
18298
18299 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18300
18301         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18302         code into its own library: libmonoruntime.
18303
18304 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18305
18306         * object.h, object.c: changed array format so that szarrays do not
18307         require a bounds structure.
18308         * icall.c, appdomain.c: support for new szarray format.
18309
18310 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18311
18312         * metadata.c: compare also the retuns type when comparing signatures:
18313         we didn't do this as an optimization since really overloaded methods
18314         must differ also in the arguments, but this doesn't work with
18315         low-level IL code (or when using explicit conversion operators: see
18316         bug#23498 for an example).
18317
18318 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18319
18320         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18321
18322 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18323
18324         * icall.c: make MonoType::GetElementType its own icall.
18325
18326 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18327
18328         * icall.c: remove MonoMethod_get_Name().
18329         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18330         object.
18331
18332 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18333
18334         * string-icalls.c: optimized a few methods.
18335
18336 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18337
18338         * icall.c: added all new string internal calls
18339         * string-icalls.c: added, new string internal call implementation.
18340         * object.c: added mono_string_new_size for allocating a string a size
18341
18342 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18343
18344         * object.c (mono_object_isinst): use the same code as in the
18345         optimized x86 version.
18346
18347 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18348
18349         * profiler.c: TSC-based timer code (faster and more accurate).
18350         Not hooked up in configure, yet (set USE_X86TSC to 1).
18351
18352 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18353
18354         * profiler.c, profiler.h: track time spent compiling methods.
18355         * threads.c: track thread creation/destruction.
18356
18357 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18358
18359         * profiler.c, profiler.h, profiler-private.h: profiling interface
18360         and sample implementation. Moved here so that it can be used also by
18361         the jit.
18362
18363 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18364
18365         * reflection.c, reflection.h: keep types and other handles separate in
18366         the hash tables for referred tokens. Add guid for modules.
18367
18368 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18369
18370         * assembly.c: fix bugs found with valgrind.
18371         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18372
18373 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18374
18375         * threads: added icall support for getting current domain for
18376                    the thread.
18377  
18378 2002-04-13  Martin Baulig  <martin@gnome.org>
18379
18380         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18381         (MonoDebugVarInfo): Added `index' field for register based addresses.
18382         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18383         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18384         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18385         `MonoDebugVarInfo *this_var'.
18386
18387         * debug-symfile.c (relocate_variable): New static function to write
18388         a location description for a local variable or method parameter.
18389
18390 2002-04-12  Martin Baulig  <martin@gnome.org>
18391
18392         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18393         stack offset and begin/end scope address of a local variable.
18394         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18395         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18396         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18397
18398         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18399         Added new relocation types for start/end scope of a local variable.
18400
18401 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18402
18403         * object.h: add mono_object_domain() macro.
18404         * reflection.c: handle typespecs.
18405         * icall.c: MonoMethod::get_Name() implementation.
18406
18407 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18408
18409         * icall.c: String::GetHashCode() icall implementation.
18410
18411 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18412
18413         * icall.c: String::IndexOfAny icall.
18414         * object.c, object.h: make array->max_length more useful.
18415         Intrduced mono_object_class() and mono_string_length() macros.
18416
18417 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18418
18419         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18420         instead of g_unichar_isdigit.
18421
18422 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18423
18424         * icall.c: Implement a simple Double.ToString().
18425
18426 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18427
18428         * appdomain.h: only io-layer.h is supposed to be included.
18429         * icall.c: explicitly import environ. Fix warning.
18430
18431 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18432
18433         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18434                 return true even if it's not Daylight Savings time.
18435                 Only return false for the case where the function isn't
18436                 implemented for a plaform (read Windows).
18437
18438 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18439
18440         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18441         data with a mutex.
18442
18443 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18444
18445         * mempool.c (mono_mempool_alloc): only use g_malloc when
18446         absolutely necessary.
18447
18448 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18449
18450         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18451
18452         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18453         (mono_class_proxy_vtable): use domain mempool
18454
18455 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18456
18457         * appdomain.h, appdomain.c: split initialization that requires the
18458         execution engine support into mono_runtime_init().
18459
18460 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18461
18462         * class.c (mono_class_init): don't include vtable inside MonoClass
18463         to save some memory, gather some statistics.
18464         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18465
18466 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18467
18468         * icall.c: internalcall implementation for ValueType.Equals().
18469
18470 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18471
18472         * object.c (mono_message_init): moved 
18473         (mono_runtime_exec_main): new arch. independent impl.
18474         (mono_runtime_invoke_array): new method - like
18475         mono_runtime_invoke, but you can pass an array of objects.
18476         (mono_remoting_invoke): new arch. independent impl.
18477         (mono_message_invoke): new arch. independent impl.
18478         (mono_runtime_class_init): new arch. independent impl.
18479         (mono_runtime_object_init): new arch. independent impl.
18480
18481 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18482
18483         * metadata.c, object.c, reflection.c: documented the exported
18484         functions.
18485
18486 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18487
18488         * icall.c: simpler code to pass the assembly builder data to corlib.
18489         Implement GetNestedTypes() internalcall.
18490
18491 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18492
18493         * class.c: warn if a type can't be loaded.
18494
18495 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
18496
18497         * image.h: typedef MonoImageOpenStatus
18498         * types.h: removed unused file
18499         
18500 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
18501
18502         * icall.c: Enum_ToObject accepts enum value arguments.
18503
18504 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18505
18506         * class.c: move initialization of properties, events and nested
18507         classes, so that they happen for interfaces, too.
18508
18509 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18510
18511         * icall.c: cleanup some ugly casts in Array_SetValue*.
18512
18513 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18514
18515         * icall.c: the values array fro enums is of the correct type, now.
18516         Implement (correctly) getFullName instead of assQualifiedName for
18517         MonoType.
18518         * reflection.h, reflection.c: added mono_type_get_name ().
18519
18520 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18521
18522         * assembly.c, image.h: for each MonoImage, record from wich assembly
18523         it was loaded.
18524         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
18525         Make Type.Assembly work.
18526
18527 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
18528
18529         * debug-symfile.h: use char* instead of gpointer to avoid
18530         unnecessary casts.
18531
18532         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
18533
18534         * icall.c (ves_icall_InternalExecute): impl. FielSetter
18535         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
18536
18537 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
18538
18539         * icall.c (mono_message_init): impl. (code cleanup)
18540         (ves_icall_InternalExecute): impl. FieldGetter
18541
18542         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
18543         defined we call all (non-static)methods through the vtable. 
18544
18545 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
18546
18547         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
18548         finalizer even though the memory is still referenced (and the chunk of
18549         memory is not freed).
18550
18551 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18552
18553         * assembly.c: fix brokeness.
18554
18555 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
18556
18557         * class.c: kill some warnings. Check explicit interface method
18558         implementation also without considering the namespace.
18559         Load also literal strings in static class data.
18560
18561 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
18562
18563         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
18564         (default_assembly_name_resolver): Make the resolver take the
18565         "base" directory where the assembly was originally defined, so we
18566         can load DLLs that are in the same directory as the assembly that
18567         is being referenced.
18568
18569 2002-03-28  Dick Porter  <dick@ximian.com>
18570
18571         * file-io.h: 
18572         * file-io.c:
18573         * socket-io.c: 
18574         * unicode.h: 
18575         * unicode.c: Warning cleanups
18576
18577 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
18578
18579         * object.h, reflection.h: use the correct type instead of MonoObject.
18580
18581 2002-03-28  Martin Baulig  <martin@gnome.org>
18582
18583         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
18584         (mono_debug_update_symbol_file): Initialize classes if necessary.
18585
18586 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
18587
18588         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
18589         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
18590
18591 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
18592
18593         * assembly.h: fix function prototype.
18594         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
18595         * mono-endian.h: use const cast.
18596
18597 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
18598
18599         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
18600
18601 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18602
18603         * loader.c: don't assert when a typeref can't be loaded, give
18604         a chance to the runtime to trow an exception instead.
18605         * loader.h: fix warning.
18606
18607 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
18608
18609         * class.c (mono_class_proxy_vtable): added proxy support
18610
18611 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
18612
18613         * icall.c: removed last of PAL calls, added System.Environment
18614         * file-io.h, file-io.c: MonoIO implementation
18615         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
18616
18617 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18618
18619         * appdomain.c: do not use the byte marker in ldstr table lookup.
18620         * debug-helpers.c: allow two ':' to separate class and method name.
18621         * object.c: allocate arrays bounds with the GC, too.
18622         * verify: add a few more checks.
18623
18624 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
18625
18626         * reflection.c: output also literal strings. Allocate parameter data
18627         with GC_malloc() (thanks, Martin, for catching this!).
18628
18629 2002-03-26  Martin Baulig  <martin@gnome.org>
18630
18631         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
18632         include the `this' offset in the `param_offsets'.
18633
18634 2002-03-25  Martin Baulig  <martin@gnome.org>
18635
18636         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
18637         mono_debug_get_class() function to get the classes. Added new
18638         relocation types for arrays and strings.
18639         (mono_debug_get_class): New static function to search in all
18640         referenced assemblies for a metadata token.
18641
18642         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
18643
18644 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18645
18646         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
18647         hold gc-allocated objects. Make the string heap a stream like the
18648         others. Removed duplicated code when writing stream info.
18649         Added asserts to catch possible buffer overflows. Set the sorted map
18650         for tables that need sorting. Added some documentation.
18651
18652 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
18653
18654         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
18655         for interned strings and vtables.
18656
18657 2002-03-24  Martin Baulig  <martin@gnome.org>
18658
18659         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
18660         it in the array since it was created with g_slist_prepend().
18661
18662 2002-03-24  Martin Baulig  <martin@gnome.org>
18663
18664         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
18665         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
18666         (mono_debug_method_from_token): Renamed to
18667         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
18668         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
18669
18670         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
18671         relocation types.
18672
18673         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
18674
18675 2002-03-24  Martin Baulig  <martin@gnome.org>
18676
18677         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
18678         (mono_debug_method_from_token): New func.
18679
18680         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
18681         New interncall, calls mono_debug_local_type_from_signature().
18682         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
18683         calls mono_debug_method_from_token().
18684
18685 2002-03-23  Martin Baulig  <martin@gnome.org>
18686
18687         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
18688         specifies the number of bytes to be converted, not the array size.
18689         Return the number of chars, not the number of bytes.
18690         (ves_icall_iconv_get_chars): The `byteCount' argument
18691         specifies the number of bytes to be converted, not the array size.
18692
18693 2002-03-23  Martin Baulig  <martin@gnome.org>
18694
18695         * reflection.h (MonoReflectionSigHelper): New type.
18696
18697         * reflection.c (mono_reflection_sighelper_get_signature_local),
18698         (mono_reflection_sighelper_get_signature_local): New functions.
18699
18700         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
18701         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
18702         interncalls.
18703
18704 2002-03-23  Martin Baulig  <martin@gnome.org>
18705
18706         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
18707         is_writeable is set.
18708         (mono_raw_buffer_update): New function to write the modified map
18709         back to disk.
18710
18711         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
18712
18713         * debug-symfile.c (mono_debug_update_symbol_file): Call
18714         mono_raw_buffer_update() when done writing.
18715
18716 2002-03-23  Martin Baulig  <martin@gnome.org>
18717
18718         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
18719
18720         * debug-symfile.c: Added support for arguments and local variables.
18721
18722 2002-03-23  Dick Porter  <dick@ximian.com>
18723
18724         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
18725         protected by ifdefs, hence breaking the w32 build.
18726
18727 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18728
18729         * object.c: implement is_interned() the right way.
18730
18731 2002-03-21  Martin Baulig  <martin@gnome.org>
18732
18733         * debug-symfile.[ch]: New files to handle debugging information
18734         files. There's also support to dynamically update these symbol
18735         files to include machine dependent information.
18736
18737 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
18738
18739         * threads.c (mono_thread_create): new function to create thread
18740         from C
18741
18742 2002-03-20  Martin Baulig  <martin@gnome.org>
18743
18744         * icall.c (ves_icall_InternalInvoke): Create a new object if the
18745         method is a constructor.
18746         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
18747         points to ves_icall_InternalInvoke().
18748
18749 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
18750
18751         * file-io.c: Flush shouldn't throw exceptions.
18752
18753 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
18754
18755         * file-io.c: FileStream flush support; FileSetLength now
18756         restores file pointer.
18757
18758 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18759
18760         * class.c: set image for pointer classes.
18761
18762 2002/03/19  Nick Drochak <ndrochak@gol.com>
18763
18764         * sysmath.c: Forgot one.
18765
18766 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
18767
18768         * sysmath.c: Avoid redefining existing names.
18769
18770 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
18771
18772         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
18773         handled by runtime as icall rather than dllimport from libm.so
18774         * file-io.c, file-io.h: fixed handle argument type.
18775
18776 2002-03-18  Dick Porter  <dick@ximian.com>
18777
18778         * reflection.c (mono_image_get_type_info): rename interface to
18779         iface, because of "#define interface struct" on windows.
18780
18781 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * class.c, class.h: rename and export mono_ptr_class_get().
18784         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
18785         * reflection.c, reflection.h, icall.c: better/saner type name
18786         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
18787         method signatures.
18788
18789 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
18790
18791         * class.c (mono_class_init): removed hardcoded GHC_SLOT
18792
18793         * icall.c (ves_icall_InternalInvoke): impl.
18794
18795 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18796
18797         * reflection.c: output the interface map table, too.
18798
18799 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
18800
18801         * class.c (class_compute_field_layout): separate computation of 
18802         static field layout
18803
18804 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
18805
18806         * icall.c: added System.Buffer support.
18807         * file-io.c: moved file icalls from PAL to FileStream.
18808
18809 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
18810
18811         * icall.c (ves_icall_System_Object_GetHashCode): impl.
18812
18813 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
18814
18815         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
18816
18817 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18818
18819         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
18820
18821 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18822
18823         * debug-helpers.{c,h}: moved here from monograph some useful functions
18824         to locate a method by name/signature in a class or image. Included
18825         also a small and flexible IL disassembler.
18826
18827 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18828
18829         * reflection.c: fixup tokens in methods with small header size, too.
18830
18831 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
18832
18833         * object.c (mono_string_to_utf8): remove assert(!error), instead
18834         print a warning. 
18835
18836 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
18837
18838         * icall.c: update to the new mono_Array_class_get interface.
18839
18840 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
18841
18842         * appdomain.c, object.c: Boehm-GC enable.
18843         * icall.c: make get_data_chunk() support split data requests.
18844         Ensure a class is initialized in more cases. Return only the first
18845         property found in GetProperties() or the compiler gets confused. 
18846         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
18847         * reflection.h, reflection.c: add fixup mechanism for field and method
18848         tokens. Initialize assembly->typeref in a single place. Output
18849         properties after events. Support custom attributes for events, too.
18850         Typo fix for paramter custom attrs.
18851
18852 2002-03-07  Martin Baulig  <martin@gnome.org>
18853
18854         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
18855
18856 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
18857
18858         * class.c (mono_array_class_get): fix. for multi. dim. arrays
18859
18860 2002-03-06  Martin Baulig  <martin@gnome.org>
18861
18862         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
18863         non-zero lower bounds. See testcases #F10-#F13.
18864
18865 2002-03-05  Martin Baulig  <martin@gnome.org>
18866
18867         * exception.c (mono_get_exception_argument_out_of_range): New exception.
18868
18869         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
18870         ves_icall_System_Array_GetValue(), only calculate the absolute array position
18871         here.
18872         (ves_icall_System_Array_SetValue): Likewise.
18873         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
18874         as argument and does the actual work. This function is used when copying a
18875         multi-dimensional array.
18876         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
18877         now do all the widening conversions of value types.
18878         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
18879
18880 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18881
18882         * class.c: remove some magic numbers and use the smbolic names,
18883         instead. Added init_events() to load event info at class init time.
18884         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
18885         and mono_metadata_methods_from_event().
18886         * reflection.h, reflection.c: added support for writing out the evnets
18887         related information.
18888
18889 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
18890
18891         * reflection.h, icall.c: use a different method (GetInterfaces)
18892         to gather interface info and add isbyref, isprimitive and
18893         ispointer to the ves_icall_get_type_info() return value.
18894
18895 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
18896
18897         * class.h: stared adding support for events.
18898         * icall.c: split find_members implementation. Added debug icall to get
18899         the address of an object.
18900         * reflection.c: handle TypeBuilders in mono_type_get_object().
18901
18902 2002-03-01  Martin Baulig  <martin@gnome.org>
18903
18904         * icall.c (ves_icall_System_Array_GetLength): This must throw an
18905         ArgumentOutOfRangeException(), not an ArgumentException().
18906         (ves_icall_System_Array_GetLowerBound): Likewise.
18907         (ves_icall_System_Array_GetValue): Improved argument checking.
18908         (ves_icall_System_Array_SetValue): Improved argument checking.
18909
18910 2002-03-01  Martin Baulig  <martin@gnome.org>
18911
18912         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
18913         called with invalid arguments rather than just dying with g_assert().
18914         (ves_icall_System_Array_SetValue): Likewise.
18915         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
18916         raise a NotImplementedException instead.
18917         (ves_icall_System_Array_GetLength): Added argument checking.
18918         (ves_icall_System_Array_GetLowerBound): Added argument checking.
18919
18920 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
18921
18922         * object.h (mono_assert): new macros mono_assert and
18923         mono_assert_not_reached
18924
18925 2002-02-28  Martin Baulig  <martin@gnome.org>
18926
18927         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
18928         and "System::String::IsInterned" to "System::String::_IsInterned".
18929
18930 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
18931
18932         * icall.c: remove hacks for typebuilder. Added icall to create a
18933         modified type from a tybebuilder.
18934         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
18935         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
18936         to create a backing MonoClass for a TypeBuilder.
18937
18938 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18939
18940         * class.c, class.h: more refactoring of class init.
18941         Export mono_class_setup_mono_type() and mono_class_setup_parent().
18942
18943 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
18944
18945         * marshal.c, marshal.h: start of marshaling interface.
18946
18947 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18948
18949         * icall.c: fix order in assembly qualified name icall.
18950
18951 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18952
18953         * class.c: do not free str, since we store it in the hash table.
18954         * reflection.h: add label field to MonoILExceptionInfo.
18955         * reflection.c: handle references to more than one assembly. Handle
18956         case when there isn't a module created in the assembly.
18957
18958 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18959
18960         * class.c: Fix typo. Start refactoring of class init code.
18961
18962 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18963
18964         * appdomain.c: exit with 1 on error.
18965         * class.c: we already have the name in MonoClassField.
18966         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
18967         MonoStreamHeader instead of an offset of image->raw_metadata.
18968
18969 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
18970
18971         * appdomain.c (mono_init): Be even more descriptive about the error.
18972
18973 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
18974
18975         * appdomain.c: give the user an informative message when corlib can't
18976         be loaded.
18977
18978 2002-02-26  Martin Baulig  <martin@gnome.org>
18979
18980         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18981         New icall to get the time zone data.
18982
18983 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18984
18985         * reflection.c: set virtual and raw size of section correctly.
18986         * threads.c: transfer domain information to newly created threads.
18987
18988 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18989
18990         * class.c: when instancing a class in a domain, load the default
18991         vaules for static fields from the constant table. Fix System.Enum to
18992         not be an enum.
18993         * icall.c: implement Object::GetType() internalcall. Implemented
18994         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
18995         Fixed checking of binding flags in find_members().
18996         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
18997         * reflection.c: handle enumerations when writing to the constant
18998         table. Use a different object cache for types.
18999
19000
19001 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19002
19003         * object.c (mono_object_isinst): fix for arrays
19004
19005         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19006
19007 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19008
19009         * object.c: don't use mprotect ()  and fix intern pool hash table
19010         lookup for big endian systems.
19011
19012 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19013
19014         * icall.c: change type_is_subtype_of () signature.
19015
19016 2002-02-21  Mark Crichton  <crichton@gimp.org>
19017
19018         * rand.c, rand.h: Added random number generator for
19019         System.Security.Cryptography classes.
19020
19021         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19022
19023         * icall.c: Added System.Security.Cryptography calls.
19024
19025 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19026
19027         * class.c, icall.c, metadata.c: better support for pointer types.
19028         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19029         * reflection.c: Add support for getting custom attrs for properties
19030         and simplify some code.
19031
19032 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19033
19034         * icall.c: change getToken () and add custom attribute GetBlob()helper
19035         method.
19036         * reflection.h: add custom attrs array to the reflection builder structures.
19037         * reflection.c: encode and emit custom attributes for all the relevant
19038         reflection objects. Cache fieldref and methodref tokens. Change
19039         mono_image_create_token() interface to take a MonoDynamicAssembly.
19040         More complete custom attributes decoder. Load custom attributes for
19041         Assembly, Field, Method and Constructor objects, too. Make the
19042         returned array an Attribute[] one, not object[]. Added
19043         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19044         custom attribute constructor.
19045
19046 2002-02-20  Dick Porter  <dick@ximian.com>
19047
19048         * icall.c:
19049         * rawbuffer.c:
19050         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19051         problem code out for now).
19052
19053 2002-02-19  Radek Doulik  <rodo@ximian.com>
19054
19055         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19056
19057 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19058
19059         * icall.c: register the GetCustomAttributes method.
19060         * object.c, object.h: add mono_string_new_len ().
19061         * reflection.h, reflection.c: added mono_runtime_invoke(),
19062         mono_install_runtime_invoke(). Added
19063         mono_reflection_get_custom_attrs () to load custom attributes and
19064         create the attribute objects.
19065
19066 2002-02-19  Dick Porter  <dick@ximian.com>
19067         * threads-dummy-types.c:
19068         * threads-dummy-types.h:
19069         * threads-dummy.c:
19070         * threads-dummy.h:
19071         * threads-pthread-types.c:
19072         * threads-pthread-types.h:
19073         * threads-pthread.c:
19074         * threads-pthread.h:  Deleted obsolete files
19075
19076 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19077
19078         * class.c (mono_class_vtable): runtime init the class when we
19079         allocate static class data.
19080
19081         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19082
19083         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19084         and String - but we will need generic marshalling support in the
19085         future. 
19086         (mono_init): set the domain name in a ms compatible way
19087
19088         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19089         String[].
19090
19091 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19092
19093         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19094         for sizes
19095
19096         * appdomain.c (mono_domain_unload): impl.
19097
19098 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19099
19100         * appdomain.c, object.c: fix intern pool implementation.
19101         * class.c: fix alignment code.
19102
19103 2002-02-16  Radek Doulik  <rodo@ximian.com>
19104
19105         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19106         and s2 > s1, just copy lower bytes to be compatible with little
19107         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19108         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19109
19110         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19111         force big_endian to be 1 for big endian machines 
19112         (ves_icall_iconv_new_decoder): ditto
19113
19114 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19115
19116         * socket-io.c (convert_sockopt_level_and_name): If the system
19117         doesn't define SOL_IP or SOL_TCP, get them by hand using
19118         getprotobyname() and caching the values (because this could be a
19119         slow operation).
19120         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19121         Use the appropriate struct when the system does support it. Ie,
19122         not all systems have struct ip_mreqn so use struct ip_mreq when
19123         appropriate.
19124
19125 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19126
19127         * reflection.c: handle finally clauses.
19128
19129 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19130
19131         * socket-io.c: use g_snprintf() instead of snprintf.
19132
19133 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19134
19135         * reflection.c (mono_param_get_objects): Cast second argument to
19136         mono_method_get_param_names to a const char** to silence the
19137         compiler warning.
19138
19139         * appdomain.c (mono_domain_assembly_open): Put parens around the
19140         truth statement in the for-loop.
19141
19142         * unicode.c (iconv_convert): Got rid of a compiler warning about
19143         int i being unused when the system has a new iconv.
19144         (iconv_get_length): Same.
19145
19146         * image.c (load_class_names): Cast the second argument to
19147         g_hash_table_insert() to char* to hush compiler warnings about the
19148         arg being a const.
19149         (mono_image_open): Same here.
19150
19151         * socket-io.c: Don't conditionally include sys/filio.h or
19152         sys/sockio.h here anymore since we now get them from
19153         io-layer/io-layer.h
19154         (inet_pton): If the system doesn't support inet_aton, implement
19155         using inet_addr and also #define INADDR_NONE if it isn't defined
19156         by the system.
19157
19158 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19159
19160         * metadata.c, metadata.h: added function to get packing and size info
19161         of a typedef.
19162         * reflection.h, reflection.c: handle field RVA data. Save info about
19163         the table layout if needed. Assign typedef indexes to all the types
19164         before dumping the info about them to avoid forward reference problems.
19165
19166 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19167
19168         * socket-io.c (convert_sockopt_level_and_name): ifdef
19169         SO_ACCEPTCONN because it is not defined on my system (old debian)
19170
19171 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19172
19173         * opcode.c: use stddef.h to get NULL.
19174
19175 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19176
19177         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19178         for FIONBIO, FIONREAD and SIOCATMARK.
19179         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19180         define INADDR_NONE and besides, inet_addr() is deprecated and
19181         should not be used. Use inet_pton() instead - it also has the
19182         added bonus that it can easily handle IPv6 addresses as well.
19183         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19184
19185 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19186
19187         * decimal.c: remove _MSC_VER conditional.
19188
19189 2002-02-13  Dick Porter  <dick@ximian.com>
19190
19191         * socket-io.c: 
19192         * icall.c: Internal calls for Blocking, Select, Shutdown,
19193         GetSocketOption and SetSocketOption
19194
19195 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19196
19197         * assembly.cs: better resolver: use it instead of some kludgy
19198         code.
19199
19200 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19201
19202         * reflection.c: the best way to speed-up the compiler is to avoid
19203         infinite loops.
19204
19205 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19206
19207         * class.c (mono_class_vtable): changed the object layout
19208         (obj->vtable->class). 
19209         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19210
19211 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19212
19213         * assembly.c: look for assemblies in the assembly dir, too.
19214
19215 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19216
19217         * class.c: fix thinko in mono_class_from_type().
19218
19219 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19220
19221         * exception.h, exception.c: added TypeLoadException.
19222         * object.h, object.c: added mono_array_clone ().
19223         * icall.c: handle throwOnError in AssemblyGetType().
19224         Added Array.Clone().
19225         * opcode.h, opcode.c: use a single value for the opcode val.
19226         Compile fix for non-gcc compilers.
19227
19228 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19229
19230         * opcodes.c, opcodes.h: export interesting info about opcodes.
19231
19232 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19233
19234         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19235         icalls. 
19236
19237         * class.c (class_compute_field_layout): set element_class for enums
19238         (mono_class_create_from_typedef): set element_class for normal classes
19239
19240         * icall.c (ves_icall_System_Enum_get_value): impl.
19241
19242         * class.c (mono_class_create_from_typedef): do not set valuetype
19243         flag for System.ValueType and System.Enum
19244
19245 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19246
19247         * unicode.c (iconv_convert): fix big endian problem.
19248
19249 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19250
19251         * class.c: add asserts if we are ever going to scribble over memory.
19252         * socket-io.c: not all systems have AF_IRDA defined.
19253
19254 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19255
19256         * class.c (class_compute_field_layout): do not consider static
19257         fields to compute alignment
19258
19259 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19260
19261         * appdomain.c (mono_appdomain_get): impl.
19262         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19263
19264 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19265
19266         * icall.c: ignore "file://" prefix when loading an assembly.
19267
19268 2002-01-23  Dick Porter  <dick@ximian.com>
19269
19270         * socket-io.c:
19271         * icall.c:
19272         * Makefile.am: Added socket support
19273
19274 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19275
19276         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19277         code back.  This should return the assemblies that are loaded by
19278         the runtime on behalf of an application domain. 
19279
19280         The current implementation is still broken, it just returns every
19281         assembly loaded, but until we get real applications domain this
19282         will do.
19283
19284 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19285
19286         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19287         AppDomain object.
19288
19289 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19290
19291         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19292         the mono_class_from_name lookup.
19293         (ves_icall_get_parameter_info): ditto.
19294         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19295         method.
19296         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19297
19298 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19299
19300         * class.c: load also nested classes on class init.
19301         System.ValueType instance methods gets passed boxed
19302         values, unless methods in derived classed that get a pointer to the
19303         data.
19304         * icall.c: use better name parsing code in GetType().
19305         * image.c, image.h: add mono_image_loaded ().
19306         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19307         * reflection.c, reflection.h: added mono_reflection_parse_type().
19308
19309 2002-01-22  Veronica De Santis <veron78@interfree.it>
19310
19311         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19312         * threads.c : Added the implementation of internal calls for events
19313         * threads.h : Added prototypes of internal calls for events
19314         
19315 2002-01-21  Radek Doulik  <rodo@ximian.com>
19316
19317         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19318
19319 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19320
19321         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19322         (mono_class_value_size): use min_align
19323
19324 2002-01-20  Dick Porter  <dick@ximian.com>
19325
19326         * threads.h:
19327         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19328         so it compiles on w32.
19329
19330 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19331
19332         * metadata.c (mono_type_stack_size): impl.
19333
19334         * class.c (mono_class_get_field): impl. memberref token
19335
19336 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19337
19338         * icall.h : Added the internal calls mapping for CreateMutex_internal
19339                     and ReleaseMutex_internal.
19340         * threads.h : Added the prototype of mutexes internal calls.
19341         * threads.c : Added the implementations of mutexes internal calls.
19342
19343 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19344
19345         * metaparse.h: removed unused file.
19346         * reflection.c, reflection.h: added stream_data_align () function 
19347         to align data in streams and keep stream aligned. Add support for
19348         exception support in method headers.
19349
19350 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19351
19352         * unicode.c: make iconv_convert () return the number of bytess written
19353         in the output buffer.
19354
19355 2002-01-15  Dick Porter  <dick@ximian.com>
19356         * threads.c: Make the runtime's idea of infinite timeouts coincide
19357         with the class library's
19358
19359         Fix a particularly egregious bug in mono_thread_cleanup(). That
19360         code was so utterly bogus it must have been written on a Monday.
19361
19362 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19363
19364         * reflection.h: add subtypes field to TypeBuilder.
19365         * reflection.c: encode constants for literal fields.
19366         Handle subtypes. Fix user string token (and add a zero byte)
19367         at the end.
19368         
19369 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19370
19371         * class.c (mono_class_init): bug fix: assign slot numbers for
19372         abstract methods.
19373
19374 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19375
19376         * reflection.c: don't try to output a code RVA for abstract methods.
19377         Small fixes for method header format. Output parameter info to the
19378         ParamDef table. Save method overriding info to MethodImpl table.
19379         Fix property support. Allow typedef.extends to be a type in the
19380         building assembly.
19381         * verify.c: fix off-by-one error.
19382
19383 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19384
19385         * class.c: fix mono_class_from_mono_type () for szarray types.
19386         Remove unused cache check in mono_class_from_type_spec().
19387         * icall.c: *type_from_name () functions handle simple arrays and byref.
19388         * reflection.c: handle byref and szarray types. Handle methods without
19389         body (gets P/Invoke compilation working). Handle types and fields in
19390         get_token ().
19391         * reflection.h: add rank to MonoTypeInfo.
19392
19393 2002-01-10  Dick Porter  <dick@ximian.com>
19394
19395         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19396         internal calls
19397
19398 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19399
19400         * icall.c: initialize class in type_from_handle ().
19401         Loop also in parent classes for get_method ().
19402         * reflection.c: properly encode class and valuetype types.
19403         Start on encoding TypeBuilder types. Handle fieldrefs.
19404         Use correct length when registering a user string.
19405         Handle ConstructorBuilder and MonoMethod in get_token ().
19406         Make mono_type_get_object () aware of cached types.
19407         * object.c: back out change to mono_string_new ().
19408
19409 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19410         * object.c: mono_string_new should return a NULL when the string 
19411         passed in is NULL -- not try to deference it.
19412         
19413 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19414
19415         * icall.c: hack to make IsSubType work for TypeBuilders.
19416         * reflection.c: emit constructors before methods.
19417         Retrieve param names in mono_param_get_objects().
19418
19419 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19420
19421         * Makefile.am: fix list of headers and sources so automake 1.5
19422         doesn't complain. Removed \# at end of list.
19423
19424 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19425
19426         * reflection.c: get token for a method ref. Set return type of
19427         constructor to void.
19428         * loader.c: debug message.
19429         * class.c: typo fix.
19430
19431 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19432
19433         * icall.c: fix array init with rank > 1. FindMembers
19434         loops in parent class as well.
19435         * image.c: do not insert nested types in name cache.
19436         * reflection.c: warning fix.
19437         * reflection.h: add override method (for interface impl).
19438
19439 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19440
19441         * metadata.c: fix customattr decoding.
19442
19443 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19444
19445         * rawbuffer.cs: Added native Win32 implementation, avoids using
19446         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19447
19448 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19449
19450         * class.c: make the low-level routines handle the cache.
19451
19452 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19453
19454         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19455
19456 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19457
19458         * class.c: fix mono_array_element_size() for objects.
19459         * class.h, class.c: add properties to MonoClass and load them
19460         at init time.
19461         * icall.c: check with isinst() when assigning a value to an array
19462         instead of requiring the classes to match exactly.
19463         Implemented icall for System.Type::GetType().
19464         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19465         enums. Handle bindingflags when looking for methods and fields.
19466         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19467         and mono_metadata_methods_from_property().
19468         * reflection.h, reflection.c: added structures for propreties,
19469         parameters and enums. Implemented mono_property_get_object() and
19470         mono_param_get_objects().
19471
19472 2001-12-18  Dick Porter  <dick@ximian.com>
19473
19474         * file-io.c: Use mono_string_to_utf16() instead of
19475         mono_string_chars()
19476
19477         * object.c: Added mono_string_to_utf16(), which copies the non
19478         NULL-terminated MonoString into a new double-null-terminated
19479         buffer.
19480
19481 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
19482
19483         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
19484
19485 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
19486
19487         * file-io.c: raise exceptions if handle is invalid.
19488
19489 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
19490
19491         * assembly.c: yet another check for mscorlib.
19492         * class.c, class.h: load nesting info for classes.
19493         * icall.c: many new functions to support the Reflection classes.
19494         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
19495         * reflection.h, reflection.c: mono_image_create_token(),
19496         mono_assembly_get_object(), mono_type_get_object(),
19497         mono_method_get_object(), mono_field_get_object(): methods to return
19498         objects that parallel the C representation of assemblies, types,
19499         methods, fields.
19500
19501 2001-12-11  Dick Porter  <dick@ximian.com>
19502
19503         * icall.c:
19504         * file-io.c: Internal calls for file IO.
19505
19506 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
19507
19508         * tabledefs.h: missing FileAttributes.
19509         * verify.h, verify.c: use is_valid_string () to simplify and check for
19510         valid strings more correctly. Fix warnings and speeling.
19511         Check more tables: Filed, File, ModuleRef, StandAloneSig.
19512         Check code: branches, maxstack, method calls.
19513
19514 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
19515
19516         * object.c (mono_object_allocate): removed static, so that the jit
19517         can allocate value types.
19518
19519         * icall.c (ves_icall_System_DateTime_GetNow): impl.
19520
19521 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19522
19523         * class.c: init enum types right away and register the
19524         token->MonoClass map in mono_class_create_from_typedef ().
19525         * verify.h, verify.c: first cut of the verifier.
19526         * pedump.c: add --verify switch to verify metadata tables.
19527         * tabledefs.h: add some missing enums.
19528
19529 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
19530
19531         * class.c (mono_install_runtime_class_init): impl.
19532         (mono_class_init): renamed mono_class_metadata_init to
19533         mono_class_init, also removed the metadata_inited flag
19534
19535         * object.c (mono_object_isinst): use faster algorithm
19536
19537 2001-11-30  Radek Doulik  <rodo@ximian.com>
19538
19539         * mono-endian.h: reverted last change
19540         added function prototypes
19541
19542         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
19543         add mono-endian.c back
19544
19545         * mono-endian.c: returned back, as Paolo pointed out, it's needed
19546         for unaligned access, I've mistaked it with endianess. I am
19547         sorry.
19548         (mono_read16): fix reverted endianess
19549         (mono_read64): ditto
19550         (mono_read32): ditto
19551
19552 2001-11-30  Dick Porter  <dick@ximian.com>
19553
19554         * exception.c: Implement mono_exception_from_name()
19555
19556 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19557
19558         * metadata.h, metadata.c: remove params_size and locals_size and their
19559         calculation from the metadata code: they are only usefult to the
19560         interp.
19561
19562 2001-11-29  Radek Doulik  <rodo@ximian.com>
19563
19564         * object.c (mono_ldstr): swap bytes here, it's probably not the
19565         best place, but works for me now, I'll redo it once I know mono
19566         better, also note that I add PROT_WRITE and don't reset back, also
19567         note that it's only affects big endians, so x86 should be OK
19568
19569         * mono-endian.h (read16): use just glib macros for both endians
19570
19571         * mono-endian.c: removed as glib macros are used in in
19572         mono-endian.h so we don't need to care about endianess for read
19573         macros as glib does that for us already
19574
19575 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
19576
19577         * class.h, class.h: take minimum alignment into consideration so
19578         that the fields of a class remain aligned also when in an array.
19579
19580 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19581
19582         * loader.h, loader.c: add mono_method_get_param_names().
19583         * class.c: 0-init class fields.
19584
19585 2001-11-26  Dick Porter  <dick@ximian.com>
19586
19587         * icall.c:
19588         * threads-types.h:
19589         * threads.c: New file that handles System.Threading on all platforms
19590
19591         * object.c: 
19592         * object.h: Remove the synchronisation struct from MonoObject,
19593         replace it with a pointer that gets initialised on demand
19594
19595         * Makefile.am: Replace all the system-specific threading code with
19596         a single file that uses the new wrapper library
19597
19598 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
19599
19600         * class.c, class.h: add mono_install_trampoline() so that the runtime
19601         can register a function to create a trampoline: removes the ugly
19602         requirement that a runtime needed to export arch_create_jit_trampoline.
19603         * object.h, object.c: added mono_install_handler() so that the runtime
19604         can install an handler for exceptions generated in C code (with
19605         mono_raise_exception()). Added C struct for System.Delegate.
19606         * pedump.c: removed arch_create_jit_trampoline.
19607         * reflection.c: some cleanups to allow registering user strings and
19608         later getting a token for methodrefs and fieldrefs before the assembly
19609         is built.
19610         * row-indexes.h: updates and fixes from the new ECMA specs.
19611
19612 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
19613
19614         * class.h, class.c: add enum_basetype field to MonoClass.
19615         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
19616         to get index in the constant table reated to a field, param or
19617         property.
19618         * reflection.h, reflection.c: handle constructors. Set public-key and
19619         version number of the built assembly to 0.
19620         * row-indexes.h: update from new ECMA spec.
19621
19622 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19623
19624         * class.h, class.c: add a max_interface_id to MonoClass.
19625         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
19626         since it's used to do that. Added mono_type_type_from_obj().
19627         Make GetType() return NULL instead of segfaulting if the type was not
19628         found. Handle simple arrays in assQualifiedName.
19629         * object.h: add a struct to represent an Exception.
19630         * reflection.c: output call convention in method signature.
19631         Add code to support P/Invoke methods and fixed offsets for fields.
19632
19633 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
19634
19635         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
19636         the value.
19637         * icall.c: use mono_array_addr instead of array->vector: fixes the
19638         reflection image writing.
19639         * reflection.c: init call convention byte to 0 in method signature.
19640         Encode the property signature. Don't output property-related methods
19641         twice. Really process the properties for a type (don't cast a field to
19642         a property, my mom always told me that).
19643         Fix 64 bit issues in pointer alignment in a different and more
19644         readable way.
19645
19646 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
19647
19648         * loader.h: Removed type class from MonoDefaults, added monotype
19649
19650         * loader.c: Loaded MonoType, removed loading of Type
19651
19652         * icall.c (my_mono_new_object): Now returns a System.MonoType,
19653         and fills in System.Type._impl with a RuntimeTypeHandle rather
19654         than the actual MonoClass *
19655
19656         (ves_icall_type_from_handle): change from type_class to
19657         monotype_class
19658
19659         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
19660         implemented
19661
19662         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
19663         implemented
19664
19665         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
19666
19667         (ves_icall_System_Reflection_Assembly_GetType): implemented
19668
19669         (ves_icall_System_MonoType_assQualifiedName): implemented
19670
19671         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
19672
19673 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
19674
19675         * assembly.c (mono_assembly_open): Implement a cache for the
19676         assemblies. 
19677
19678         (mono_assembly_close): only destroy the assembly when the last
19679         reference is gone.
19680         
19681 2001-11-09  Dick Porter  <dick@ximian.com>
19682
19683         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
19684
19685 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
19686
19687         * class.c (mono_class_metadata_init): bug fix: compute the right slot
19688
19689 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19690
19691         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
19692         from Martin Weindel.
19693         * object.h: add mono_string_chars ().
19694
19695 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
19696
19697         * reflection.c (build_compressed_metadata): Eliminates warnings
19698         and uses 64-bit clean code.
19699
19700         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
19701         (mono_type_equal): Change signature to eliminate warnings.
19702
19703 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19704
19705         * icall.c, loader.c: remove the internalcall array constructors.
19706         Changes to match the new MonoArray structure.
19707         * object.h, object.c: an array object doesn't allocate an extra
19708         vector. Add mono_array_new_full () to create jagged arrays easily.
19709
19710 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19711
19712         * metadata.h, metadata.c: add mono_metadata_field_info () to
19713         retreive all the info about a field from vairous tables.
19714         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
19715         * class.h, class.c: augment MonoClassField with more info.
19716         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
19717         policy and load a field's RVA if needed.
19718
19719 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
19720
19721         * class.c (mono_class_metadata_init): create a trampoline for all
19722         virtual functions instead of actually compiling them.
19723
19724 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
19725
19726         * class.h, class.c: include name in MonoClassField.
19727         * class.c: fix fundamental type of System.Object and System.String.
19728         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
19729         tokens in ldtoken.
19730         * icall.c: remove internalcalls for the Reflection stuff that is now
19731         done in C# code.
19732         * loader.c: mono_field_from_memberref () implementation.
19733         * mono-endian.c: thinko (s/struct/union/g).
19734         * object.c, object.h: make the mono_string_* prototypes actually use
19735         MonoString instead of MonoObject.
19736         * reflection.c, reflection.h: updates for changes in the reflection
19737         code in corlib: we use C structures that map to the actual C# classes.
19738         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
19739         fat method header if needed and use the info from the ILGenerator for
19740         methods. Handle fields in types. Misc fixes.
19741
19742 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
19743
19744         * class.c (mono_class_metadata_init): bug fix: always allocate
19745         space for static class data
19746
19747 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
19748
19749         * class.c (mono_compute_relative_numbering): use relative
19750         numbering to support fast runtime type checks.
19751
19752 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
19753
19754         * class.c (mono_class_create_from_typeref): added debugging output
19755         to print class name when MonoDummy is returned instead of real class
19756
19757 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
19758
19759         * class.c (mono_class_metadata_init): interface offset table now
19760         contains pointers into the vtable - this is more efficient for the jit
19761
19762 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
19763
19764         * class.c (mono_class_metadata_init): use a temporary vtable (the
19765         old algorithm only worked for the interpreter, but not for the jit)
19766
19767 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
19768
19769         * loader.c (method_from_memberref): use mono_class_get to get the
19770         class of an array instead of using System.Array directly.
19771         (mono_get_method): also add MEMBERREF methods to the method cache
19772         which usefull for arrays.
19773
19774 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
19775
19776         * pedump.c (arch_compile_method): added to compute vtable entry
19777
19778         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
19779         number of interfaces.
19780         
19781         * class.h: merged MonoArrayClass into MonoClass
19782
19783         * class.c (mono_class_create_from_typedef): compute the vtable size and
19784         allocate space to include the vtable inside MonoClass
19785         (mono_class_metadata_init): initialize the vtable
19786
19787 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
19788
19789         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
19790         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
19791         * image.c: endian fixes by Laurent Rioux.
19792         * object.h, object.c: rename MonoStringObject to MonoString and
19793         MonoArrayObject to MonoArray. Change some function names to conform to
19794         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
19795         guint16* as first argument, so don't use char*.
19796         Provide macros to do the interesting things on arrays in a portable way.
19797         * threads-pthread.c: updates for the API changes and #include <sched.h>
19798         (required for sched_yield()).
19799         * icall.c: updates for the API changes above.
19800         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
19801         platforms that need them.
19802
19803 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19804
19805         * class.c: set the correct type for all the fundamental
19806         type when loading the class.
19807
19808 2001-10-05  Dick Porter  <dick@ximian.com>
19809
19810         * threads-pthread.c (pthread_mutex_timedlock): Simple
19811         compatibility version for C libraries that lack this call.
19812
19813 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19814
19815         * class.c: MonoTypes stored in MonoClass are stored as
19816         fundamental MonoTypes when the class represents a
19817         fundamental type (System.Int32, ...).
19818         The TypeHandle return by ldtoken is a MonoType*.
19819         * icall.c: ves_icall_get_data_chunk () write out all the
19820         PE/COFF stuff. Implement ves_icall_define_method (),
19821         ves_icall_set_method_body (), ves_icall_type_from_handle ().
19822         * image.c: properly skip unknown streams.
19823         * loader.h, loader.c: add type_class to mono_defaults.
19824         * metadata.c, metadata.h: export compute_size () as
19825         mono_metadata_compute_size () with a better interface.
19826         Typo and C&P fixes.
19827         * pedump.c: don't try to print the entry point RVA if there is no entry point.
19828         * reflection.c, reflection.h: many cleanups, fixes, output method
19829         signatures and headers, typedef and typeref info, compress the metadata
19830         tables, output all the heap streams, cli header etc.
19831         * row-indexes.h: typo fixes.
19832
19833 2001-10-04  Dick Porter  <dick@ximian.com>
19834
19835         * object.h: Add a synchronisation mutex struct to MonoObject
19836
19837         * object.c (mono_new_object): Initialise the object
19838         synchronisation mutexes
19839
19840         * icall.c: System.Threading.Monitor internal calls
19841         
19842         * threads-pthread.h:
19843         * threads-pthread.c: System.Threading.Monitor internal calls
19844
19845         * threads-types.h: New file, includes the system-specific thread
19846         structures
19847         
19848         * threads-pthread-types.h:
19849         * threads-pthread-types.c: New files, handle pthread-specific
19850         synchronisation types
19851
19852         * threads-dummy-types.h: 
19853         * threads-dummy-types.c: New files of dummy support for
19854         thread-specific types
19855
19856         * metadata.c:
19857         * image.c:
19858         * pedump.c: include mono-endian.h not endian.h
19859         
19860         * Makefile.am: More threads files.
19861         Name mono-endian.h not endian.h
19862
19863 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
19864
19865         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
19866         stuff and implement a few more bits.
19867         * icall.c: a field needs to be dereferenced twice. Do not use the same
19868         name for two variables in the same scope.
19869         * image.c, image.h: cleanups.
19870
19871 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
19872
19873         * class.c (mono_class_metadata_init): bug fix: compute the right size
19874
19875 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
19876
19877         * icall.c: implemented some of the Reflection internalcalls.
19878         * image.c, image.h: start writing out the PE/COFF image.
19879         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
19880         that does the reverse than decode_blob_size ().
19881         * object.c: use mono_metadata_encode_value (). Move here
19882         temporary implementation of mono_string_to_utf8 ().
19883         * rawbuffer.c: make malloc_map static.
19884
19885 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19886
19887         * metadata.c: fix type comparison for arrays.
19888         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
19889         Added a couple of new classes to monodefaults.
19890         * icall.c: added a couple of Reflection-related internalcalls.
19891         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
19892         Added a byval_arg MonoType to MonoClass.
19893
19894 2001-09-28  Dick Porter  <dick@ximian.com>
19895
19896         * icall.c:
19897         * threads-pthread.h: 
19898         * threads-pthread.c: Implemented internal calls for
19899         LocalDataStoreSlot operations.  Applied mutexes around all shared
19900         data.  Reworked the thread creation and Start() operations to
19901         avoid a race condition.
19902         
19903         * threads-dummy.h:
19904         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
19905
19906 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
19907
19908         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
19909
19910 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
19911
19912         * class.c, loader.c: warn and return NULL instead of erroring out.
19913         * icall.c: added System.AppDomain::getCurDomain().
19914         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
19915
19916 2001-09-25  Dick Porter  <dick@ximian.com>
19917
19918         * threads-pthread.h:
19919         * threads-pthread.c: Implemented timed thread joining and added
19920         System.Threading.Thread::Join_internal internal call
19921
19922         * icall.c: Added System.Threading.Thread::Join_internal internal call
19923
19924         * threads-dummy.h:
19925         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
19926
19927 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
19928
19929         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
19930         mono_string_intern () to implement the semantics of the ldstr opcode
19931         and the interning of System.Strings.
19932         * icall.c: provide hooks to make String::IsIntern and String::Intern
19933         internalcalls.
19934
19935 2001-09-23  Dick Porter  <dick@ximian.com>
19936
19937         * threads-dummy.c: 
19938         * threads-dummy.h: New files of dummy threading routines
19939
19940         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
19941         support code based on system specifics
19942
19943         Rename PTHREAD_LIBS to THREAD_LIBS
19944         
19945 2001-09-23  Dick Porter  <dick@ximian.com>
19946
19947         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
19948         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
19949         internal calls.
19950         (mono_thread_init): Set up a Thread object instance to return when
19951         the main thread calls Thread.CurrentThread
19952         (mono_thread_cleanup): Wait for all subthreads to exit
19953
19954         * icall.c: New internal calls for System.Threading.Thread::Sleep
19955         (including Schedule) and CurrentThread
19956
19957         * threads.h: New file, to insulate thread-specific stuff from the
19958         rest of the code
19959
19960 2001-09-21  Dick Porter  <dick@ximian.com>
19961
19962         * threads-pthread.h: 
19963         * threads-pthread.c: New file, for handling pthreads-style
19964         threading support.  Start() now starts a new thread and executes
19965         the ThreadStart delegate instance.
19966
19967         * icall.c: Added the internalcall for
19968         System.Threading.Thread::Start_internal
19969
19970         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
19971
19972 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
19973
19974         * loader.c: work around the different signatures for delegates
19975         constructors csc generates in compiled code vs the ones compiled in mscorlib.
19976
19977 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19978
19979         * class.h, class.c: add mono_class_get_field_from_name ().
19980         * *: Fix C comments and other ANSI C issues.
19981
19982 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
19983
19984         * endian.h, assembly.c: fix some endianness issues.
19985
19986 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
19987
19988         * loader.h, load.c: add delegate_class to mono_defaults.
19989         Handle runtime provided methods in mono_get_method ().
19990
19991 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
19992
19993         * loader.c (mono_get_method): use pinvoke for internal call
19994
19995         * icall.c: use pinvoke for internal call
19996
19997         * loader.c (method_from_memberref): set the method name
19998
19999 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20000
20001         * metadata.c: help the compiler generate better code for
20002         mono_class_from_mono_type ().
20003
20004 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20005
20006         * class.c (mono_class_metadata_init): delayed computing of the
20007         class size to mono_class_metadata_init ()
20008
20009 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20010
20011         * class.c, class.h: add an interfaces member to MonoClass.
20012         * image.c, image.h: add assembly_name field to MonoImage
20013         from the assembly table.
20014         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20015
20016 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20017
20018         * class.c: Handle Array in mono_class_from_mono_type ().
20019         * metadata.c, pedump.c: some endian fixes.
20020
20021 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20022
20023         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20024         * metadata.c: fix small problem introduced with the latest commit.
20025
20026 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20027
20028         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20029         We don't need a MonoMetadata pointer anymore to compare signatures in
20030         mono_metadata_signature_equal (), update callers.
20031         Reduced memory usage an number of allocations for MonoMethodHeader and
20032         MonoMethodSignature.
20033
20034 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20035
20036         * metadata.c: added compare for szarray.
20037
20038 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20039
20040         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20041         and add a couple more types to it and mono_defaults. Give an hint on
20042         classes that need implementing in our corlib and are referenced
20043         in mscorlib.
20044
20045 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20046
20047         * class.h, class.c: keep track if a class is also an Enum.
20048         * loader.c: Implement a couple more types for use in libffi
20049         marshalling. Gives better diagnostics when failing to dlopen
20050         a library. Set method->klass for P/Invoke methods, too.
20051
20052 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20053
20054         * class.c, class.h: add a MonoType this_arg to MonoClass that
20055         represents a pointer to an object of the class' type that
20056         can be used by the interpreter and later the type cache.
20057         Add best guess alignment info for valuetype objects.
20058
20059 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20060
20061         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20062         into MonoType: one less level of indirection and allocation and
20063         simplifies quite a bit of code. Added cache for MonoTypes that are
20064         used frequently, so that we don't need to allocate them all the time.
20065
20066 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20067
20068         * class.c (mono_class_create_from_typedef): System.Enum is also a
20069         value type, although it does not derive from System.ValueType
20070         (maybe a bug in the ms compiler?)
20071
20072         * metadata.c (mono_type_size): return the right size for value types
20073
20074         * loader.c (mono_get_method): only initialize method header if not abstract
20075
20076         * class.c (mono_class_from_mono_type): use mono_default values. 
20077
20078 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20079
20080         * *: use MonoClass pointers instead of <type_tokens>
20081         
20082         * class.h: new flag: metadata_inited.
20083
20084         * class.c (mono_class_metadata_init): impl.
20085         (mono_class_instance_size): impl.
20086         (mono_class_data_size): impl.
20087
20088 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20089
20090         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20091         MonoClass now has the name and name_space fields. 
20092         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20093         mono_get_method () takes and optional MonoClass as argument.
20094         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20095         instead that takes advantage of a map from class names to typedef
20096         tokens in MonoImage.
20097
20098 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20099
20100         * metadata.c: zero is not a valid alignment boundary.
20101         Merge MONO_TYPE_VOID in default decoding code.
20102
20103 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20104
20105         * image.h: merged MonoMetadata into MonoImage
20106
20107         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20108         identify the type of elements.
20109
20110 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20111
20112         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20113         * cil-coff.h: split MonoMSDOSHeader and add size info.
20114         * image.c: add some consistency checks.
20115         * metadata.c: fix row size computation: one programmer
20116         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20117         add explanation for the locator routine.
20118         Fix decoding of size in method header.
20119         
20120 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20121
20122         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20123         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20124         function from gnome-libs.  This uses the right path separator
20125         based on the OS, and also works around a bug in some systems where
20126         a double slash is not allowed. 
20127         (default_assembly_name_resolver): Use g_concat_dir_and_file
20128         (mono_assembly_open): ditto.
20129
20130 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20131
20132         * metadata.c (mono_metadata_signature_equal): impl.
20133
20134         * *: void is now a realy MonoType (instead of using NULL)
20135         
20136         * metadata.c (do_mono_metadata_parse_type): use
20137         mono_metadata_parse_type to parse void value.
20138
20139 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20140
20141         * metadata.c, metadata.h: in the signature and method header store
20142         only the space required for holding the loca vars and incoming arguments.
20143
20144 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20145
20146         * metadata.c (do_mono_metadata_parse_type): treat void like any
20147         other type (instead of assigning NULL);
20148
20149 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20150
20151         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20152
20153 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20154
20155         * image.c (do_mono_image_open): added a cache for arrays.
20156
20157 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20158
20159         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20160         decode a single column from a row in a metadata table and changes
20161         to take advantage of it in the typedef locator (gives a nice speed up).
20162         Store offset info for function params.
20163
20164 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20165
20166         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20167
20168 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20169
20170         * assembly.c: how could mono_assembly_close () had ever worked?
20171         * metadata.c, metadata.h: provide offset info for local vars.
20172         Implement mono_type_size () to take care of alignment as well
20173         as size (it was mono_field_type_size in cli/class.c before).
20174
20175 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20176
20177         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20178
20179         * assembly.h (CORLIB_NAME): set to corlib.dll
20180
20181         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20182
20183 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20184
20185         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20186         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20187         tokentype.h: massive namespace cleanup.
20188
20189 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20190
20191         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20192
20193 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20194
20195         * metadata.c (mono_metadata_free_type): added check for type !=
20196         NULL (void) before calling mono_metadata_free_type()
20197
20198 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20199
20200         * metadata.h, row_indexes.h: added header with enumerations to use
20201         to index in the columns from tables in metadata and to decode coded
20202         tokens: we should start using this instead of embedding magic numbers
20203         all over the code.
20204
20205 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20206
20207         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20208         Move metadata_t info from cli_image_info_t to MonoImage, where
20209         it's easily accessible. Changed all the uses accordingly.
20210         Added the method and class caches to MonoImage.
20211         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20212         and mono_metadata_decode_value () signature to be more consistent
20213         with the other parse functions (and simplify code). Taken advantage
20214         of zero-length array allocation with GCC. Removed reduntant (and
20215         wrong) MonoFieldType struct and use MonoParam instead. Changed
20216         mono_metadata_parse_field_type () to use common code for parsing.
20217         Added mono_metadata_typedef_from_field () and
20218         mono_metadata_typedef_from_method () to lookup a typedef index from a
20219         field or method token.
20220         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20221
20222 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20223
20224         * metadata.c (mono_metadata_parse_field_type): Implement. 
20225         (do_mono_metadata_parse_type): Split engine from
20226         mono_metadata_parse_type, so that we can create smaller structures
20227         for things that just have one pointer to the MonoType (look at
20228         the MonoFieldType)
20229
20230 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20231
20232         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20233         as Jan Gray found out, it is incorrect. 
20234
20235 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20236
20237         * assembly.c: Implement asssembly loading.  This loads an image
20238         and loads all the referenced assemblies.  Come to think of it, we
20239         could always do lazy loading of the assemblies. 
20240
20241         * image.c (mono_image_open): Keep loaded images in a hashtable.
20242
20243         * image.h (MonoImage): Add reference count.
20244
20245 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20246
20247         * assembly.c (mono_assembly_open): Keep track of the file name in
20248         case the assembly has no ASSEMBLY table.
20249
20250         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20251         from get.c here.
20252
20253 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20254
20255         * metadata.c, metadata.h: decode local vars in method header
20256         parse function. Change callers accordingly.
20257
20258 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20259
20260         * metadata.h, cil-coff.h: protect against multiple inclusion.
20261         Added some new structures to hold information decoded from metadata:
20262         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20263         and relevant decoding/free functions.
20264         * metadata.c: implement decoding functions. Add warning for out of bounds
20265         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20266         all the info about a method signature and invocation. Remove check on
20267         uninitialized local var in parse_mh() and fix memory leak.
20268
20269 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20270
20271         * metadata.h: More macros.
20272
20273         * tokentype.h: New file.
20274
20275 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20276
20277         * assembly.c: added a consistency check and initialize
20278         some structures with g_new0().
20279         * metadata.c: fixed a couple more bugs in table size computation
20280         and add other checks for out-of bound access to metadata.
20281
20282 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20283
20284         * metatada.c: fix bugs computing table sizes. Spew a
20285         warning when index in string heap is out of bounds.
20286
20287 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20288
20289         * metadata.h: Add a couple of macros to manipulate tokens. 
20290
20291 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20292
20293         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20294         cli_section_tables).
20295
20296 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20297
20298         * metadata.c (mono_metadata_user_string): New function, provides
20299         access to the UserString heap. 
20300
20301 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20302
20303         * metadata.c: Add inline documentation.
20304
20305 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20306
20307         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20308         files. 
20309
20310 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20311
20312         * typeattr.h: New file, TypeAttribute flags. 
20313
20314 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20315
20316         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20317         mono_assembly_ensure_section): Section loading code.
20318         (load_section_tables): Load the sections.
20319
20320         * mono/metadata/metadata.c (mono_metadata_locate_token,
20321         mono_metadata_locate): Functions to locate the information
20322         definition given a token or a table and an index.
20323         (mono_metadata_compute_table_bases): New.
20324         (compute_size): New function to compute the sizes of the various
20325         tables.
20326
20327         * mono/metadata/metadata.h: Finish listing the different index
20328         types. 
20329
20330         * mono/metadata/pedump.c: Improve to dump new information.
20331
20332 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20333
20334         * mono/metadata/metadata.c: Entered all the tables matching
20335         Beta2. 
20336
20337         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20338
20339
20340