Grasshopper project system now uses csproj extension
[mono.git] / mono / metadata / ChangeLog
1
2 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
3
4         * loader.c: implemented typedef parent in field memberref.
5
6 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
7
8         * marshal.c: Fix warnings and remember to call Release on
9         IUnknown of RCW.
10         
11         Code is contributed under MIT/X11 license.
12
13 2007-02-10  Miguel de Icaza  <miguel@novell.com>
14
15         * class-internals.h: Add MonoHandleRef definition, and
16         handleref_class to mono_defaults. 
17
18         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
19         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
20
21         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
22         (do nothing on this stage)
23         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
24         (emit_marshal_handleref): New method, used for argument handling
25         of HandleRefs. 
26
27 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
28
29         * class.c (mono_class_setup_parent): Lazily init com types.
30         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
31         init com types.
32         * object.c (mono_remote_class_vtable): Lazily init com types.
33         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
34         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
35         * domain-internals.h: Expose mono_init_com_types.
36         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
37         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
38         Add support for COM Callable Wrapper marshalling.
39         * marshal.h: Add icall definitions.
40         * gc.c: Handle freeing of CCWs in finalizer code.
41         
42         Code is contributed under MIT/X11 license.
43
44 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
45
46         * reflection.c: changed all the signature encoding code to use
47         a variable-sized buffer.
48
49 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
50
51         * marshal.c: locking fixes: never take the loader lock
52         or other runtime locks when holding the marshal lock
53         (fixes bug#80664).
54
55 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
56
57         * marshal.c: make the delegate function pointer mapping
58         work for the moving GC.
59
60 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
61
62         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
63         for bug #80618.
64
65 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
66
67         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
68         gmodule.
69
70 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
71
72         * threadpool.c: made the code moving-GC safe.
73
74 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
75
76         * assembly.c, boehm-gc.c, class-internals.h, class.c,
77         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
78         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
79         warning cleanup.
80         * reflection.c: warning cleanup, some threading and moving GC fixes.
81
82 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
83
84         * class.c, loader.c: create the needed Set/Get/Address array methods
85         as well as the .ctors in mono_class_init (), fixes bug #80567.
86
87 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
88
89         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
90         we doesn't decrease its alignment. Should fix the sparc build.
91
92 2007-01-24  Dick Porter  <dick@ximian.com>
93
94         * socket-io.c
95         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
96         Create the returned object if we need to ignore an unsupported
97         socket option.  Fixes a segfault reported by Atsushi.
98
99 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
100
101         * class.c, object.c: restrict GC-tracked fields to
102         UIntPtr fields used inside corlib, so we provide better
103         type info to the GC and also allow broken packing as in
104         bug #80580.
105
106 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
107
108         * sgen-gc.c: removed duplicated function.
109
110 2007-01-19  Miguel de Icaza  <miguel@novell.com>
111
112         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
113         value that means that the value is not supported, but that we
114         should not return a failure, but instead report this as a
115         successful operation.
116
117 2007-01-19  Raja R Harinath  <rharinath@novell.com>
118
119         Fix tests/bug79956.2.il
120         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
121         (mono_generic_class_get_class): If the generic definition in an
122         enum, copy over other fields related to it.
123
124 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
125
126         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
127         genericinst enums (bug #79215).
128
129 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
130         * class.c: Fix bug 80307.
131
132 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
133
134         * image.c: if the file table is not present, try to load
135         all the modules, since we don't have info about them
136         having or not metadata (bug #80517).
137         * assembly.c: allow mono_assembly_load_references () to
138         work for netmodules.
139
140 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
141
142         * image.c, metadata-internals.h, object.c: execute module
143         cctors when running on the 2 runtime if present (bug #80487).
144
145 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
146
147         * icall.c: optimized InitializeArray() on bigendian.
148
149 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
150
151         * icall.c: fix for the broken ARM FPA double format.
152
153 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
154
155         * icall.c: handle endian issues for r4 and r8 types, too, in
156         the InitializeArray() icall.
157
158 2007-01-15  Miguel de Icaza  <miguel@novell.com>
159
160         * loader.c (mono_loader_error_prepare_exception): Clear the error
161         once we have extracted the information from it, do this before we
162         call into the JIT's class loading mechanisms.
163
164         * object.c (mono_class_create_runtime_vtable): Do not clear the
165         loader error before calling mono_class_get_exception_for_failure
166         as the loader error is needed inside
167         mono_class_get_exception_for_failure to throw the error (thinko).
168
169         Fixes #80521
170         
171 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
172
173         * reflection.c: align fields rva data so it's faster to load at
174         runtime.
175
176 2007-01-12  Raja R Harinath  <rharinath@novell.com>
177
178         Prepare to simplify GenericMethod handling.
179         * class-internals.h (mono_method_get_context): New accessor function.
180         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
181         rather than directly accessing '->context' field.
182
183         * class-internals.h (_MonoGenericParam.method): Move ...
184         (_MonoGenericContainer): ... here.  Add into union with klass field.
185         * class.c, icall.c, loader.c, metadata.c, reflection.c:
186         Update to changes.
187
188 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
189
190         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
191         the wrapper type enum and reduce relocations.
192
193 2007-01-12  Raja R Harinath  <rharinath@novell.com>
194
195         * reflection.c (inflate_mono_method): Reuse method instantiation
196         from the generic method, if available.
197
198 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
199
200         * marshal.c (emit_marshal_variant): Fix conv_arg
201         type in last commit, based on whether parameter is byref.
202         
203 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
204
205         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
206         marshalling.
207         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
208         MONO_TYPE_OBJECT back for VARIANT support.
209
210 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
211
212         * marshal.c, marshal.h, icall-def.h: Implement 
213         Marshal.ReAllocCoTaskMem.
214
215 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
216
217         * marshal.c: memory retention fixes: use the proper
218         image cache for runtime_invoke method lookups.
219
220 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
221
222         * mempool.c: added code to help debug mempool allocations.
223
224 2007-01-11  Dick Porter  <dick@ximian.com>
225
226         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
227         support (experimenting with faking it with IP_MTU_DISCOVER for
228         systems that don't have IP_DONTFRAGMENT.)
229         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
230         icall.
231
232         * icall-def.h: new System.Net.Sockets.Disconnect icall.
233
234         * socket-io.h: Add new fields to MonoSocketAsyncResult
235         corresponding to the new ones in Socket.cs.
236
237 2007-01-11  Raja R Harinath  <rharinath@novell.com>
238
239         Fix IronPython regression mentioned in #80249
240         * metadata.c (do_mono_metadata_parse_generic_class): Clear
241         'cached_context' field, since it may have been initialized as a
242         side-effect of metadata parsing.
243
244         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
245         (_MonoGenericClass.cached_class): Move here and rename from lone
246         remaining field of ...
247         (_MonoInflatedGenericClass): ... this.  Remove.
248         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
249         to changes.
250
251         Fix mcs/tests/test-128.cs regression.
252         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
253         2007-01-10 change below.
254         [MONO_TYPE_OBJECT]: Recurse into array case.
255
256 2007-01-11  Raja R Harinath  <harinath@gmail.com>
257
258         * class-internals.h (mono_get_inflated_generic_class): Remove.
259         * class.c (mono_get_inflated_generic_class): Remove.
260         (mono_generic_class_get_class): Rename from
261         mono_class_create_generic.
262         (mono_class_from_mono_type) [GENERICINST]: Use it.
263         * reflection.c, metadata.c: Update to changes.  Use
264         'mono_class_from_mono_type'.
265
266 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
267
268         * reflection.c: use passed type when encoding an array element
269         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
270
271 2007-01-09  Robert Jordan  <robertj@gmx.net>
272
273         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
274         result arguments (someDelegate.EndInvoke (unrelatedAres)).
275         Fixes bug #80392.
276
277 2007-01-09  Raja R Harinath  <rharinath@novell.com>
278
279         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
280
281         * object.c (set_value): Avoid aliasing between type->data.klass
282         and type->data.generic_class.
283
284         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
285
286 2007-01-08  Raja R Harinath  <rharinath@novell.com>
287
288         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
289         between type->data.klass and type->data.generic_class.
290
291 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
292
293         * marshal.c: In MS.NET, StringBuilder objects are not copied by
294         value in out parameters.
295
296 2007-01-08  Raja R Harinath  <rharinath@novell.com>
297
298         Simplify invariant for MonoGenericClass::klass field.
299         * class.c (mono_class_create_generic): Verify 'klass' is null.
300         * metadata.c (do_mono_metadata_parse_generic_class): Don't
301         initialize 'klass' field.
302
303 2007-01-05  Raja R Harinath  <rharinath@novell.com>
304
305         Ongoing work to avoid redundant data and simplify invariants.
306         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
307         'generic_class', and change type to a GenericInst.
308         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
309         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
310
311 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
312
313         * class.c : skip io-layer under PLATFORM_WIN32.
314
315 2007-01-03  Tor Lillqvist  <tml@novell.com>
316
317         Fix #80305: In a bundled executable, look in the bundled exe
318         assembly to determine the runtime version. Add the possibility to
319         bundle also the machine.config file.
320         
321         * assembly.c (mono_assembly_open_from_bundle): Make
322         non-static. Allow being called even if we have no bundled
323         assemblies, and return NULL right away in that case.
324
325         * domain-internals.h: Declare mono_assembly_open_from_bundle()
326         here.
327
328         * domain.c (app_config_parse): Take an assembly exe file name as
329         parameter instead of a config file name. Check for a bundled
330         config file for that assembly by calling
331         mono_config_string_for_assembly_file() (see below) before looking
332         for one in the file system.
333         (get_runtimes_from_exe): Corrsponding change to call of
334         app_config_parse().
335         (get_runtimes_from_exe): Check for bundled assembly exe file first
336         by calling mono_assembly_open_from_bundle(). If no bundled
337         assembly exe file is found, call mono_image_open() as before to
338         look it up in the file system.
339
340         * mono-config.c: Add variable bundled_machinec_onfig.
341         (mono_config_string_for_assembly_file): New function.
342         (mono_config_for_assembly): Move code snippet that looks for a
343         bundled assembly .config file into the above new function. Call
344         it.
345         (mono_register_machine_config, mono_get_machine_config): New
346         functions to set and retrieve
347
348         * assembly.h: Declare mono_register_machine_config().
349
350         * mono-config.h: Declare mono_get_machine_config() and
351         mono_config_string_for_assembly_file().
352
353         * icall.c: No declaration of environ necessary on Win32. It is
354         declared (as a macro expanding to a function call) in stdlib.h.
355         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
356         New internal mono function. Returns the value of
357         mono_get_machine_config() as a Mono string.
358
359         * icall-def.h: Add get_bundled_machine_config().
360
361 2007-01-04  Raja R Harinath  <rharinath@novell.com>
362
363         Remove redundant field
364         * class-internals.h (_MonoGenericContext.container): Remove field.
365         * loader.c (mono_method_get_signature_full): Don't parse a
366         "container" for a signature parse when the signature is inflated
367         immediately.
368         (method_from_methodspec): Likewise, for a generic_inst.
369         * class.c, metadata.c, reflection.c: Update to changes.
370
371 2006-01-04  Raja R Harinath  <rharinath@novell.com>
372
373         * class-internals.h (_MonoGenericClass): Rename 'context' field to
374         'cached_context', and change semantics -- it starts off NULL, and
375         is initialized on demand.
376         * class.c (mono_generic_class_get_context): New accessor to
377         replace 'context' field accesses.
378         (mono_class_get_context): New helper.
379         (*): Update to changes.
380         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
381
382 2007-01-03  Miguel de Icaza  <miguel@novell.com>
383
384         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
385         before the memcpy.   Fixes Marshal2 regression.
386
387 2007-01-02  Jb Evain  <jbevain@gmail.com>
388
389         * blob.h: add a MONO_TYPE_ENUM definition
390         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
391         fix the encoding of arrays of enums in custom attributes.
392
393         Fixes #79666.
394
395 2007-01-01  Miguel de Icaza  <miguel@novell.com>
396
397         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
398         string is null terminated, but only cut the string short if it
399         overflows the buffer.   
400         
401         (mono_string_to_byvalstr): Also fix this routine.   The code here
402         was not properly terminating a string (it was only terminated
403         because of the previous catch-all memset). 
404
405         I left the memset, because I do not know if applications expect
406         the runtime to clear this region. 
407
408         Fixes #79944.
409
410         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
411         Clear the error before returning to unmanaged code to prevent the
412         runtime from being confused later on (fixes  80420).
413         (ves_icall_type_from_name): Always call mono_loader_clear_error
414         after parsing a type that could have failed.
415         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
416
417         * loader.c (mono_loader_clear_error): Fix indentation.
418
419 2006-12-28  Martin Baulig  <martin@ximian.com>
420
421         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
422
423 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
424
425         * reflection.c: patch from Rolf Bjarne Kvinge to fix
426         getting a token for an EnumBuilder.
427
428 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
429
430         * reflection.c: be more careful in case resource generation
431         fails to create the data array.
432
433 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
434
435         * sgen-gc.c: write barrier for clone and fix unregister handles.
436
437 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
438
439         * reflection.c: some fixes needed in the generics code for the moving GC.
440
441 2006-12-22  Robert Jordan  <robertj@gmx.net>
442
443         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
444         account. Fixes bug #80299.
445
446 2006-12-21  Raja R Harinath  <rharinath@novell.com>
447
448         Fix WaitHandle usage in delegates.
449         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
450         * object.c (mono_wait_handle_new): Use the property set method to
451         initialize the handle.
452         (mono_wait_handle_get_handle): New.
453         * threadpool.c (mono_async_invoke): Use it.
454         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
455         Likewise.
456         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
457
458 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
459
460         * marshal.c (emit_marshal): Call emit_marshal_variant and
461         emit_marshal_com_interface when applicable.
462         (emit_marshal_variant, emit_marshal_com_interface): Add
463         methods for this case and remove if's from emit_marshal_object.
464         
465 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
466
467         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
468
469 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
470
471         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
472         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
473         and GlobalFree on Windows. Remove FIXME.
474
475 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
476
477         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
478         implementation for managed objects.
479
480 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
481
482         * object.c: implemented code to be used for checking
483         that no reference field overlaps with non-references.
484
485 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
486
487         * threadpool.c: fix queue code to be compatible with the
488         moving GC.
489
490 2006-12-18  Miguel de Icaza  <miguel@novell.com>
491
492         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
493         in structures by throwing ArgumentNullException.
494
495         (emit_marshal_safehandle): Also when they are null parameters.
496
497         (emit_marshal_safehandle): Add support for ref
498         SafeHandles parameters
499
500 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
501
502         * profiler.c: updated to use the mono-dl API instead of
503         gmodule.
504
505 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
506
507         * profiler.c: updated to use the mono-dl dynamic loading
508         API instead of gmodule.
509
510 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
511
512         * profiler.c: use readlink, older versions of glib don't have
513         g_file_read_link ().
514
515 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
516
517         * profiler.c: try to detect the path to mono if libc fails to provide
518         a useful name (bug #80286).
519
520 2006-12-16  Raja R Harinath  <rharinath@novell.com>
521
522         Fix #80242
523         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
524         instance, use the generic type definition instead.
525         (ves_icall_Type_GetNestedTypes): Likewise.
526         * class.c (mono_class_create_generic): Always set the
527         nested_classes of a generic instance to NULL, even if the generic
528         type definition has nested types.
529
530 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
531
532         * marshal.c (mono_string_from_bstr): Revert previous Windows change
533         and fix on Linux.
534         
535 2006-12-15  Miguel de Icaza  <miguel@novell.com>
536
537         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
538         my arguments were in the wrong order.   I also fixed the Windows
539         version which seems to have had the same issue.
540
541         (mono_free_bstr): On Unix, this is g_free.
542         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
543         conversions (for the tests in corlib to pass).
544
545 2006-12-14  Miguel de Icaza  <miguel@novell.com>
546
547         * marshal.c (emit_ptr_to_object_conv): For now, ignore
548         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
549         exception if a ref SafeHandle in a struct has changed).
550         
551         (emit_struct_conv): Do not perform layout checks for classes
552         derived from SafeHandle, as those are specially handled. 
553
554         (emit_object_to_ptr_conv): Add support for
555         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
556
557         (emit_marshal_safehandle): Implement conversion of return values
558         of safehandles (MARSHAL_ACTION_CONV_RESULT).
559         
560         * threads.c: WaitHandle now is compiled with two different handles
561         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
562         for 2.0.
563         
564         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
565         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
566         these routines to cope with both kinds of fields.
567
568 2006-12-12  Miguel de Icaza  <miguel@novell.com>
569
570         * metadata.c (mono_type_to_unmanaged): Handle the case where
571         type->data.klass is a SafeHandle, and in that case, return the
572         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
573         MONO_MARSHAL_CONV_SAFEHANDLE. 
574
575 2006-12-11  Miguel de Icaza  <miguel@novell.com>
576
577         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
578         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
579         calling emit_marshal_object.
580
581         (emit_marshal_safehandle): Implement marshalling of
582         SafeHandle parameters (no ref support yet).
583
584         (MarshalAction): Document the defines as I implement
585         them for SafeHandle.
586
587         (emit_marshal_object): indentation police.
588
589         * class-internals.h: Define MonoSafeHandle.
590         Add safehandle_class to MonoDefaults type.
591
592         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
593         list of classes to check for fields. 
594
595         * domain.c (mono_init_internal): Add SafeHandle to the list of
596         mono_defaults loaded.
597
598 2006-12-15  Raja R Harinath  <rharinath@novell.com>
599
600         Fix #80253
601         * reflection.c (mono_reflection_bind_generic_parameters): If the
602         generic type definition is a type builder, ensure that it is fully
603         initialized before instantiating it.  Kill some dead code.
604
605 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
606
607         * object.c: clear the loader_error () before loading
608         more metadata stuff (bug #80258).
609
610 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
611
612         * icall.c, icall-defs.h: type modifiers icalls for
613         parameters and properties.
614
615 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
616
617         * object.c, icall.c: fixed warnings.
618
619 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
620
621         * marshal.c: fixed a couple of leaks and coding style in a few places.
622
623 2006-12-08  Dick Porter  <dick@ximian.com>
624
625         * process.c: Cope with NULL ProcessStartInfo arguments on windows
626         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
627         80173.
628
629 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
630
631         * process.c: ProcessStartInfo may have only filename set and
632         arguments can be NULL.
633
634 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
635
636         * icall.c: fix leak found by Robert Jordan.
637
638 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
639
640         * marshal.c, marshal.h: generate managed method to access an element
641         of a multi-dimensional array.
642
643 2006-11-30  Paolo Molaro (lupus@ximian.com)
644
645         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
646
647 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
648
649         * icall.c: back out GetFields () fix until the serialization code is
650         fixed to not depend on the incorrect behaviour.
651
652 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
653
654         * profiler.c: provide defaults if none are set.
655
656 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
657
658         * Makefile.am, attrdefs.h: new public header file with
659         constants for attributes for use by embedders.
660
661 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
662
663         * icall.c: GetFields () fix for bug #80064.
664
665 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
666
667         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
668         removed long unused icalls.
669
670 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
671   
672         * marshal.c: 
673                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
674                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
675                 can be generated without a delegate class.
676                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
677         
678         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
679
680 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
681
682         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
683         #80069.
684
685 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
686
687         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
688         icall-def.h: added icalls needed by System.GC.
689
690 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
691
692         * loader.c: ensure the class in catch clauses is handled
693         correctly for generics methods (fixes bug#79980).
694
695 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
696
697         * monitor.h, monitor.c: added mono_locks_dump () function
698         to help debug deadlocks involving managed locks.
699
700 2006-11-13  Dick Porter  <dick@ximian.com>
701
702         * file-io.c (get_file_attributes): If the file is a symlink try
703         and get the stat data for the target, but also add the
704         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
705         the specs for the windows symlink support, but will probably have
706         to be reworked when I have test data from a vista machine.  Fixes
707         bug 79887.
708
709 2006-11-13  Dick Porter  <dick@ximian.com>
710
711         * gc.c (mono_domain_finalize): 
712         * marshal.c (mono_delegate_begin_invoke): 
713         * threadpool.c (socket_io_init, mono_thread_pool_init)
714         (mono_thread_pool_finish): 
715         * monitor.c (mono_monitor_try_enter_internal): 
716         * threads.c (mono_thread_resume, mono_thread_init)
717         (mono_thread_suspend_all_other_threads)
718         (mono_thread_execute_interruption): 
719         * appdomain.c (mono_domain_unload): Check for NULL error returns
720         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
721         75733.
722
723 2006-11-11  Miguel de Icaza  <miguel@novell.com>
724
725         * process.c
726         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
727         Only close the handle if the value of the handle is not
728         INVALID_HANDLE_VALUE.  This just makes the process a bit more
729         robust.
730
731         Improvement for #75733, so that we do not run into this problem. 
732
733         
734         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
735         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
736         internal variables.  Fixes #79462 
737         
738
739 2006-11-09  Dick Porter  <dick@ximian.com>
740
741         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
742         Use poll() not select().  Fixes bug 79397.
743
744 2006-11-09  Raja R Harinath  <rharinath@novell.com>
745
746         Fix #79872
747         * assembly.c (mono_assembly_load_from_full): Check that the given
748         image has an assembly manifest.
749
750 2006-11-09  Ankit Jain  <jankit@novell.com>
751
752         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
753         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
754         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
755
756 2006-11-07  Dick Porter  <dick@ximian.com>
757
758         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
759         Put the old resolver behaviour back for pre-2.0 profiles.
760
761 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
762
763         * threadpool.c: precise GC and locking fixes.
764
765 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
766
767         * class.c: don't load types that have an explicit unaligned
768         managed reference. Provide better info in the TypeLoad exception.
769         Part of the fix for bug #79744.
770         * object.c: use the correct check for class type load issues.
771
772 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
773
774         * class.c: enforce alignment of fields with managed references
775         even when Pack=1 is forced by the user (bug #77788).
776
777 2006-11-03  Dick Porter  <dick@ximian.com>
778
779         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
780         If the address reverse lookup fails, return it as the hostname
781         anyway.  Fixes bug 79721.
782
783 2006-11-03  Dick Porter  <dick@ximian.com>
784
785         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
786         Fix build on Windows.
787
788 2006-11-02  Dick Porter  <dick@ximian.com>
789
790         * icall-def.h: 
791         * object-internals.h: 
792         * exception.c (mono_get_exception_thread_interrupted): 
793         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
794         Fixes bug 74525.
795
796         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
797         Check for pending Thread.Interrupt.
798
799 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
800         * loader.c: Fixed bug 79684.
801
802 2006-10-27  Dick Porter  <dick@ximian.com>
803
804         * file-io.c (get_file_attributes): Force symlinks to directories
805         to be returned as a regular file.  Fixes bug 79733.
806 2006-10-26  Dick Porter  <dick@ximian.com>
807
808         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
809         CreateFile to open a directory then we need to set the
810         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
811
812 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
813
814         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
815         friends.
816
817 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
818
819         * sgengc.c: small cleanup of timer code.
820
821 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
822
823         * sgen-gc.c: fix some warnings and start adding support for
824         complete object removal on domain unload.
825
826 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
827
828         * assembly.c: build_assembly_name should not consider a version
829         number without build or revision number invalid. Fixes bug #79715.
830
831 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
832
833         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
834         call kernel32 function OutputDebugString directly.
835         
836         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
837         
838 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
839
840         * reflection.c: small cleanup, using a function to insert a MonoString
841         in the string heap.
842
843 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
844
845         * reflection.c: moving GC fixes.
846
847 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
848
849         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
850         all the objects with finalizers belonging to an unloading appdomain.
851
852 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
853
854         * sgen-gc.c: added ability to allocate even when the nursery is fully
855         pinned and fixed a couple of bugs.
856
857 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
858
859         * threads.h: Revert the last change for now.
860
861         * threads.h (mono_thread_get_pending_exception): Rename this to
862         mono_thread_get_undeniable_exception ().
863
864 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
865
866         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
867         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
868         when fname does not refer to valid assembly. This result in a more
869         meaningful error message.
870         * exception.c: added mono_get_exception_bad_image_format2 which 
871         constructs a BadImageFormatException using the ctor taking a custom
872         message and the file name. Passing in a NULL msg results in a default
873         message.
874         * exception.h: define mono_get_exception_bad_image_format2 function.
875         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
876         when file name pointed to an invalid IL image. Use 
877         mono_get_exception_file_not_found2 to construct FileNotFoundException,
878         as this results in a more meaningful error message.
879
880 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
881
882         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
883         #79465.
884
885 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
886
887         * metadata.c (mono_type_size): Change the align parameter to guint32 for
888         consistency with the other _size functions.
889         (mono_type_stack_size): Ditto.
890
891         * class.c object.c icall.c: Fix warnings caused by the above change.
892
893         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
894
895         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
896
897         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
898
899 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
900
901         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
902         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
903         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
904         threadpool.h, threads-types.h: mark more internal functions.
905
906 2006-10-11  Dick Porter  <dick@ximian.com>
907
908         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
909         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
910         reproduce the bug even before applying the fix.)
911
912 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
913
914         * reflection.c: allow retrieving attributes for arguments in generic
915         methods (bug #79241).
916
917 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
918
919         * debug-mono-symfile.c: properly check fopen () result (found by
920         coverity).
921
922 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
923
924         * reflection.c: make error message clearer and fixed two
925         issuelets found by Coverity.
926
927 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
928
929         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
930
931 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
932
933         * object-internals.h, gc-internal.h, profiler-private.h:
934         mark internal functions.
935
936 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
937
938         * reflection.c: put data in the text section.
939         * icall.c: recognize more types in type_from_typename ().
940         * process.c, marshal.c: added some GC FIXMEs.
941
942 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
943
944         * loader.c: check for NULL before initializing.
945
946 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
947
948         * gc.c (finalizer_thread): Use a non-alertable wait here.
949
950         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
951         until the correct solution is found.
952
953 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
954
955         * reflection.c (mono_module_get_object): Avoid an assert when operating on
956         modules with no metadata. Fixes #79596.
957
958         * image.c (load_metadata_ptrs): Put back the error message when
959         the #- heap is encountered since the support is not complete yet.
960
961 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
962
963         * gc.c: do not allow the user to SuppressFinalize () a
964         delegate because it would leak the trampoline if present.
965
966 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
967
968         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
969         PropertyPtr table.
970
971 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
972
973         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
974
975         * metadata.c (mono_metadata_get_param_attrs): Ditto.
976
977         * row-indexes.h: Add definitions for *Ptr tables.
978
979         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
980
981         * metadata.c (mono_metadata_translate_token_index): New helper function to
982         translate table indexes used in uncompressed metadata.
983         (mono_metadata_decode_table_row): Ditto.
984         (mono_metadata_decode_table_row_col): Ditto.
985
986         * metadata.c: Add table schema for *Ptr tables.
987
988         * class.c loader.c: Use the new helper function to access the affected metadata
989         tables.
990         
991         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
992         #38532.
993         
994 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
995
996         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
997         sequences which can be unbounded in size. Fixes #79583.
998
999 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1000
1001         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1002         static initialization.
1003
1004         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1005
1006         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1007
1008         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1009
1010         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1011         ctor fails, i.e. throw the same exception on subsequent accesses.
1012         
1013 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1014
1015         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1016         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1017         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1018         Handle marshalling of interfaces and VARIANTs contained in structs.
1019         
1020         Code is contributed under MIT/X11 license.
1021         
1022 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1023
1024         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1025         
1026         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1027         mempool.
1028
1029 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1030
1031         * console-io.c: ignore previous SIGINT handler.
1032
1033 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1034
1035         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1036         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1037         #79460, #79461, #79485.
1038
1039         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1040
1041         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1042         #79217.
1043
1044 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1045
1046         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1047         could be generated from it.
1048
1049 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1050
1051         * rand.c: fix read loop to correctly handle EINTR.
1052
1053 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1054
1055         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1056         internal calls are defined to keep methods closer to the declaring
1057         type and allow a significant reduction in runtime relocations and
1058         memory usage.
1059
1060 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1061
1062         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1063         exception message to have FileNotFoundException use the default
1064         assembly load error message. Fixes bug #79426.
1065         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1066
1067 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1068
1069         * threadpool.c: (start_thread_or_queue) use the root domain when
1070         creating the thread instead of the async object one.
1071
1072 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1073
1074         * class.c, object.c, class-internals.h, reflection.c:
1075         for arrays, store element_size inside MonoClass (speedup
1076         for array object creation).
1077
1078 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1079
1080         * icall.c: fixed CodeBase to use the file name and not the module
1081         name (bug #79365).
1082
1083 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1084
1085         * mono-debug.c, mono-debug.h: export find_method as
1086         mono_debug_find_method ().
1087
1088 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1089
1090         * debug-helpers.c, class-internals.h: added a few functions useful
1091         when debugging under gdb.
1092
1093 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1094
1095         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1096         characters that need special handling.
1097
1098 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1099
1100         * mono-config.c: make the os/cpu specification more flexible,
1101         allowing lists and negation.
1102
1103 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1104
1105         * marshal.c: COM Interop fixes. Handle case where method->klass.
1106         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1107         calling convention on non-windows platforms. This is for
1108         compatibility with XPCOM and MainWin COM.
1109         
1110         Code is contributed under MIT/X11 license.
1111         
1112
1113 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1114
1115         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1116         correctly. Fixes #79217.
1117
1118         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1119
1120 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1121
1122         * mono-config.c: allow both an os and cpu attribute for dllmap
1123         and dllentry elemnets to enable a single config file to be used
1124         for multiple architectures.
1125
1126 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1127
1128         * loader.c: MonoLoaderError was cleared too soon on load failure.
1129         Fixes bug #79424.
1130
1131 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1132
1133         * icall.c: use the defining class vtable when accessing a
1134         static field, not a pobblibly derived class.
1135
1136 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1137
1138         * icall.c string-icalls.c: Remove references to unicode.h.
1139
1140         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1141
1142         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1143
1144         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1145         indicating the image where custom marshaller types should be looked up.
1146         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1147         custom marshallers, instead of corlib. Fixes #79425.
1148
1149 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1150
1151         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1152
1153 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1154
1155         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1156         Implement Environment.ProcessorCount.
1157         
1158         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1159         Implement Environment.ProcessorCount.
1160         
1161         * icall.c: 
1162         Add Environment.ProcessorCount icall.
1163         
1164         Patch by Jason McFall.
1165
1166 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1167
1168         * assembly.c: don't append .exe/.dll when the filename already contains
1169         one of those extensions.
1170
1171 2006-09-12  Martin Baulig  <martin@ximian.com>
1172
1173         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1174         to array interfaces.
1175
1176 2006-09-11  Martin Baulig  <martin@ximian.com>
1177
1178         * reflection.c (mono_image_build_metadata): Create the
1179         MethodImpl's after emitting all types and methods, so we don't
1180         need another fixup pass for them.
1181
1182 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1183
1184         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1185         change.
1186
1187 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1188
1189         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1190         unload.
1191
1192 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1193
1194         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1195         args is not set. Fixes #78926.
1196
1197 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1198
1199         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1200
1201         * image.c (load_class_names): Move this to class.c, and rename it to 
1202         'mono_image_init_name_cache'.
1203         (load_modules): Fix a warning.
1204
1205         * class.c icall.c image.c: Initialize image->name_cache lazily.
1206
1207         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1208         on its name using information in the AOT file.
1209
1210         * class.c (mono_class_from_name): Use the new hook function.
1211
1212 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1213
1214         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1215         correctly.
1216
1217         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1218         Fixes #79289.
1219         
1220 2006-09-06  Martin Baulig  <martin@ximian.com>
1221
1222         * icall.c (mono_lookup_internal_call): Small fix.
1223
1224 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1225
1226         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1227         double g_free.
1228
1229 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1230
1231         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1232         when --debug is specified.
1233
1234 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1235
1236         * class.c (setup_generic_array_ifaces): Fix a warning.
1237
1238 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1239
1240         * Temporarily remove the patch to assemly.c that checks the
1241         assembly versions as it breaks our gacutil.
1242
1243 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1244
1245         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1246
1247         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1248         a net 1.0 runtime.
1249
1250         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1251         created using the default ctor. Fixes #79152.
1252         (mono_string_builder_to_utf16): Ditto.
1253
1254 2006-09-01  Martin Baulig  <martin@ximian.com>
1255
1256         Fix handling of the generic array interfaces.
1257
1258         * class-internals.h
1259         (MonoDefaults): Removed `generic_array_class' and added
1260         `generic_ilist' class.
1261
1262         * class.c
1263         (mono_bounded_array_class_get): Add the new generic array interfaces.
1264         (setup_generic_array_ifaces): New static method; create vtable
1265         entries for each method in the generic array interfaces.
1266
1267         * metadata.c
1268         (select_container): Allow "parent-less" generic methods.
1269
1270         * marshal.c
1271         (mono_marshal_get_generic_array_helper): New public method.
1272
1273         * icall.c
1274         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1275         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1276         moved the interncall into System.Array.
1277
1278 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1279
1280         A few more cases of avoiding work on types with ->byref set.
1281         Has the real fix for #79238
1282         * icall.c (is_generic_parameter): New helper.
1283         (ves_icall_Type_GetGenericParameterPosition): Use it.
1284         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1285         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1286         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1287         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1288         reference types.
1289         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1290         reference types.
1291         (ves_icall_Type_get_IsGenericInstance): Likewise.
1292         (ves_icall_Type_get_IsGenericType): Likewise.
1293
1294 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1295
1296         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1297         class if possible.
1298
1299         * mempool.h (mono_mempool_get_allocated): New helper function.
1300
1301         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1302         change.
1303
1304         * mempool.c: Fix warnings and the calculation of stats.
1305
1306         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1307
1308         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1309
1310         * loader.c (mono_get_method_from_token): Update method_count stat.
1311
1312         * class-internals.h (MonoStats): Add some stats.
1313
1314 2006-08-31 Robert Jordan  <robertj@gmx.net>
1315
1316         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1317         with managed variants.
1318         All code is contributed under the MIT/X11 license.
1319         
1320 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1321
1322         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1323         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1324
1325         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1326
1327         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1328         with cycles in classes.
1329
1330         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1331
1332         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1333         missing a [MarshalAs] directive. Fixes #79203.
1334
1335         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1336         klass->marshal_info. Fixes #79217.
1337
1338 2006-08-30  Martin Baulig  <martin@ximian.com>
1339
1340         Committing a patch from Joachim Ante <joe@otee.dk>:
1341         Add support for binary data symbol stores.
1342
1343         * debug-mono-symfile.c
1344         (mono_debug_open_mono_symbol_file): Renamed into
1345         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1346         arguments.
1347
1348         * mono-debug.c
1349         (mono_debug_open_image): Added `raw_contents' and `size' args.
1350         (mono_debug_init_2_memory): New public function.
1351
1352 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1353
1354         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1355
1356 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1357
1358         * appdomain.c: implement support for ShadowCopyFiles.
1359
1360 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1361
1362         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1363         when value is NULL (and should remove CID #51).
1364
1365 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1366
1367         * image.c: moved 2 functions to ../utils.
1368
1369 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1370
1371         * gc.c: cope with the target object of a GC handle being NULL
1372         (bug #78877).
1373
1374 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1375
1376         * class.c: recursively check parent's explicit implementations
1377         of interface methods (fixes bug #79125).
1378
1379 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1380
1381         * filewatcher.c: Avoid warnings when building, do not redefine
1382         constants that are defined.
1383
1384         Remove warnings.
1385
1386 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1387
1388         * image.c: don't fail when the link points to an absolute path.
1389
1390 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1391
1392         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1393         Fix CID #3.
1394
1395 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1396
1397         * image.c (full_path): A new method used to obtain the actual path
1398         of an assembly even in the presence of symbolic links.  
1399
1400         This is necessary for the case where we are running a binary that
1401         has been GACed, but we are using the "published" path name
1402         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1403         file in the GAC.
1404
1405         This was the source of the failure for the `xsp' command with the
1406         recent AppDomain changes, as far as the runtime was concerned,
1407         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1408         $prefix/mono/gac/blah/version/blah.exe.
1409
1410         (do_mono_image_open): use full path
1411
1412 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1413
1414         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1415
1416 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1417
1418         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1419         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1420
1421 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1422
1423         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1424         small structures. Fixes #78990.
1425
1426 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1427
1428         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1429
1430         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1431
1432 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1433
1434         * appdomain.c:
1435         * marshal.c: don't load all the assemblies from a domain into newly
1436         created ones. The new domains might have different rules and load
1437         assemblies from different locations. Fixes bug #76757.
1438
1439         Patch by Lluis. Conflicts resolved by Brian Crowell.
1440
1441 2006-08-16  Alp Toker  <alp@atoker.com>
1442
1443         * socket-io.c: First half of the fix for #79084.
1444         Set sa_size to the length of the content, not that of the struct.
1445         Don't add NULL suffix to the content, this should be done in
1446         managed code if needed.
1447
1448 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1449
1450         Fix part of #79012
1451         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1452         mono_metadata_parse_type returns NULL.
1453
1454 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1455
1456         * normalization-tables.h : new file for string normalization data.
1457         * locales.c, locales.h, icall.c :
1458           added load_normalization_resource() for string normalization,
1459           and icall as well.
1460         * Makefile.am : added normalization-tables.h to the sources.
1461
1462 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1463
1464         * marshal.c: Add more helper functions to reduce code duplication and use them
1465         everywhere.
1466
1467 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1468
1469         * marshal.c: Fix non-x86 stdcall warnings.
1470         
1471         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1472         them everywhere.
1473
1474 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1475
1476         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1477         type check on multi-dimensional arrays. Fixes #79000.
1478
1479 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1480
1481         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1482         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1483         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1484         * class-internals.h: add is_com_object to class structure.
1485         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1486         null checks to COM object marshalling. Fix .ctor call on RCW.
1487         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1488         
1489         All code is contributed under the MIT/X11 license.
1490
1491 2006-08-09  Dick Porter  <dick@ximian.com>
1492
1493         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1494         racing mono_monitor_allocator_lock() somewhere, so don't delete
1495         the critical section for now.  Found by running and exiting
1496         monodevelop.
1497
1498 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1499
1500         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1501         (ves_icall_System_ComObject_FindInterface): Ditto.
1502         (ves_icall_System_ComObject_CacheInterface): Ditto.
1503
1504         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1505         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1506
1507 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1508
1509         * threadpool.c: treat pipes from process asynchronous reads as sockets
1510         when reading from them, so we get select/poll or epoll to wait for
1511         data.
1512
1513 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1514
1515         * loader.c: Fix a typo (CID #233) in the null check.
1516
1517 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1518
1519         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1520         Hopefully fixes #78949.
1521         
1522         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1523         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1524         bytes. Fixes #78972.
1525
1526 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1527
1528         * filewatcher.c: we need to set errno here.
1529
1530 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1531
1532         * filewatcher.c: let Win32Exception get the error value.
1533
1534 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1535
1536         * filewatcher.c: translate errno into win32 errors for Win32Exception
1537         to know what happened.
1538
1539 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1540
1541         * threadpool.c: Fix more warnings.
1542
1543         * assembly.c (search_loaded): Fix warnings.
1544
1545         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1546         (mono_async_invoke): Ditto.
1547
1548 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1549
1550         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1551         entries for __ComObject type in addition to ComImport types.
1552         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1553         about hash table.
1554         
1555         All code is contributed under the MIT/X11 license.
1556
1557 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1558
1559         * image.c: avoid tentative loading of modulerefs that contain
1560         no metadata (P/Invoke library names).
1561
1562 2006-07-28  Dick Porter  <dick@ximian.com>
1563
1564         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1565         mono_loader_lock() somewhere, so don't delete the critical section
1566         for now.  Found by running and exiting monodevelop.
1567
1568 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1569
1570         * filewatcher.c: define the inotify syscalls when we're building on
1571         linux and have sys/syscall.h. The build system might not have support
1572         for inotify but the target system might have it.
1573
1574 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1575
1576         * domain.c: Documentation updates.
1577
1578         * loader.c (mono_free_method): Do not release the method
1579         information if we are being profiled, as profilers will use this
1580         information at shut down to present some data to the user.
1581
1582         This is needed so that the profiler does not crash, as the
1583         profiler tends to keep MonoMethods around, and they might become
1584         invalid if we free these.
1585
1586         (mono_get_method_constrained): Return the original CIL stream
1587         method as well, so verification can be performed against it.
1588
1589 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1590
1591         * filewatcher.[ch]: support for inotify file system watcher.
1592         * icall.c: add new internal calls for the inotify file system watcher.
1593
1594 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1595
1596         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1597         #78888.
1598
1599 2006-07-20  Dick Porter  <dick@ximian.com>
1600
1601         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1602         warning.
1603
1604 2006-07-20  Dick Porter  <dick@ximian.com>
1605
1606         * threads.c (start_wrapper): Do the thread cleanup while we still
1607         hold a reference to its object.  Fixes bug 78123.
1608
1609 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1610
1611         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1612         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1613           "managed-to-managed".
1614         * icall.c: Redirect string constructors that take sbyte* to
1615           ves_icall_System_String_ctor_RedirectToCreateString.
1616         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1617           to CreateString () methods with matching signature.
1618         * reflection.c: Use original security informations for
1619           MONO_WRAPPER_MANAGED_TO_MANAGED.
1620         * security-manager.c: Use original security informations for
1621           MONO_WRAPPER_MANAGED_TO_MANAGED.
1622         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1623           that is a placeholder and only its address should be used.
1624         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1625           that is a placeholder and only its address should be used.
1626
1627 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1628
1629         Begin implementing COM Interop.
1630         * appdomain.c: Increment corlib version.
1631         * class.c: Set ComImport classes' parent to __ComObject.
1632         * loader.c: Mark cominterop methods as such.
1633         * domain.c: Add __ComObject class to MonoDefaults structure.
1634         * image.c: Add 2 hashtables to the image for COM Interop related methods
1635         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1636         using the mempool allocator
1637         
1638         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1639         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1640         declaration for mono_metadata_type_dup_mp.
1641         
1642         * debug-helpers.c: Added strings for two additional wrapper types
1643         * object.c: Create proxy objects for ComImport classes
1644         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1645         and added __ComObject class to MonoDefaults structure.
1646         
1647         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1648         MonoComInteropProxy and MonoComObject.
1649         
1650         * marshal.c: Added support for COM Interop
1651         (signature_cominterop): Converts managed signature to corresponding
1652         unmanaged COM signature.
1653         (cominterop_get_function_pointer): gets unmanaged function pointer via
1654         COM object vtable
1655         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1656         (cominterop_get_method_interface): returns interface type that method is defined on
1657         (mono_mb_emit_cominterop_call): emits native call to function pointer
1658         gotten from vtable
1659         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1660         that matches signature of unmanaged function.
1661         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1662         (cominterop_get_invoke): forwards call from proxy to __ComObject
1663         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1664         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1665         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1666         
1667         * marshal.h: Added Marshal icall declarations.
1668         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1669         so we can access them in finalizer
1670         
1671 2006-07-14  Dick Porter  <dick@ximian.com>
1672
1673         * object.c (mono_type_initialization_cleanup): Fix a race
1674         condition by temporarily commenting out the critical section
1675         deletion.
1676
1677 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1678
1679         * reflection.c (create_custom_attr): Fix some warnings.
1680         (create_custom_attr_data): Ditto.
1681         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1682         types. Fixes #78855.
1683
1684 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1685
1686         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1687
1688         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1689
1690 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1691
1692         * reflection.c (resolve_object): Add support for DynamicMethod.
1693
1694         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1695         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1696
1697 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1698
1699         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1700         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1701
1702 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1703
1704         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1705         Fixes #77888.
1706
1707 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1708
1709         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1710         slightly: remove a shadow local variable.
1711
1712 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1713
1714         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1715         definition that introduces the virtual function slot.
1716         Also fix Coverity #105.
1717
1718 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1719
1720         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1721         for dynamic assemblies. Fixes #78724.
1722
1723 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1724
1725         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1726         Fixes #78722.
1727
1728 2006-06-21  Martin Baulig  <martin@ximian.com>
1729
1730         * reflection.c
1731         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1732         fixes #76484.
1733
1734 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1735
1736         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1737
1738 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1739
1740         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1741         nor TYPEREFs.
1742         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1743         Inflate result if necessary.
1744         (mono_class_get_full): Remove old version.  Rename from
1745         'mono_class_get' and add 'context' argument.  Pass it to
1746         ..._create_from_typespec.
1747         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1748         (mono_ldtoken): Revert change below.
1749
1750 2006-06-20  Martin Baulig  <martin@ximian.com>
1751
1752         * class.c (mono_ldtoken): Don't pass the generic context to
1753         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1754
1755 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1756
1757         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1758         and later freeing it. Fixes #78638.
1759
1760 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1761
1762         * icall.c (mono_class_get_throw): Revert over-zealous error
1763         throwing, the caller for mono_class_get_throw will cope with
1764         errors when classes are not properly initialized already.
1765
1766         The code still copes with loader exceptions though.
1767
1768         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1769         
1770 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1771
1772         Fixes the `make run1' version of RuntimeAbort (to be commited,
1773         source is in Bugzilla).
1774         
1775         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1776         FALSE on class loading failure instead of returning true.
1777
1778         * class.c (mono_class_create_from_typedef): It is possible for
1779         mono_metadata_interfaces_from_typedef_full to fail if a class is
1780         not found, cope with this.
1781         
1782
1783 2006-06-14  Dick Porter  <dick@ximian.com>
1784
1785         * socket-io.c: 
1786         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1787         4.1.1
1788
1789 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1790
1791         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1792
1793 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1794
1795         * icall.c: Another fix for building mono in Visual Studio.
1796
1797 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1798
1799         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1800         
1801 2006-06-09  Martin Baulig  <martin@ximian.com>
1802
1803         * debug-mono-symfile.c: Put this back and really fix it this
1804         time. Sorry for all the trouble.
1805
1806 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1807
1808         * icall.c (mono_class_get_throw): Fix a warning.
1809         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1810         ReflectionTypeLoadException if needed. Fixes #78606.
1811
1812         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1813         (mono_class_init): Ditto.
1814
1815         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1816         ref_only exceptions.
1817         (mono_loader_clear_error): Make this work even if there is no error.
1818
1819 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1820
1821         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1822         Marshal.GetComSlotForMethodInfo using internal call.
1823
1824 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1825
1826         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1827         a function for signalling it.
1828
1829         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1830         a referenced assembly is not found.
1831
1832         * loader.c (mono_loader_error_prepare_exception): Add support for 
1833         LOADER_ERROR_ASSEMBLY. Fix formatting.
1834
1835 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1836
1837         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1838         for VARIANT marshalling on windows and increment corlib version
1839         since Variant struct was added.
1840
1841 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1842
1843         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1844         stack trace line information:
1845
1846         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1847         (Martin) when looking up B which is between A and C, return A not C.
1848
1849         Bug is #78573.
1850
1851         Thanks to Alexander Olk for tracking this down.
1852
1853 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1854
1855         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1856         
1857         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1858         avoid clobbering its value.
1859         (mono_string_to_lpstr): Fix a warning on windows.
1860
1861 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1862
1863         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1864
1865         * reflection.c loader.c: Removed references to 'dummy' flag.
1866
1867         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1868
1869         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1870         it gets GC tracking.
1871
1872         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1873         GC tracking.
1874         
1875         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1876
1877         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1878
1879         * appdomain.c: Bump corlib version.
1880
1881 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1882
1883         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1884         CEE_STIND_REF when working with object references.
1885
1886 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1887
1888         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1889         Fixes #78539.
1890
1891 2006-05-30  Miguel de Icaza  <miguel@novell.com>
1892
1893         * loader.c (method_from_memberref): Fix argument value for
1894         mono_loader_set_error_method_load (I was passing the MonoClass
1895         instead of the class name char *).
1896
1897 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1898
1899         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1900         CEE_STIND_REF when working with object references.
1901
1902 2006-05-30  Martin Baulig  <martin@ximian.com>
1903
1904         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
1905         mono_method_full_name() change and replace the ':' with a '.'
1906         here.
1907
1908 2006-05-30  Martin Baulig  <martin@ximian.com>
1909
1910         * debug-mono-symfile.c
1911         (mono_debug_symfile_lookup_location): Fix the algorithm:
1912         when looking up B which is between A and C, return A not C.
1913
1914 2006-05-29  Martin Baulig  <martin@ximian.com>
1915
1916         * mono-debug.h
1917         (MonoDebugMethodInfo): Make the typedef public.
1918         (MonoDebugSourceLocation): New public struct.
1919
1920         * mono-debug.c
1921         (mono_debug_source_location_from_address): Removed.
1922         (mono_debug_source_location_from_il_offset): Removed.
1923         (mono_debug_il_offset_from_address): Removed.
1924         (mono_debug_address_from_il_offset): Removed.
1925         (mono_debug_lookup_method): New public function.
1926         (mono_debug_lookup_source_location): New public function; replaces
1927         the old mono_debug_source_location_from_*() functions; see the
1928         inline documentation.
1929         (mono_debug_free_source_location): New public function.
1930         (mono_debug_print_stack_frame): New public function; see the
1931         inline documentation.
1932
1933         * debug-mono-symfile.c
1934         (mono_debug_find_source_location): Renamed into
1935         mono_debug_symfile_lookup_location(); only take a
1936         `MonoDebugMethodInfo *' and an `offset' argument; added inline
1937         documentation.
1938         (mono_debug_find_method): Renamed into
1939         mono_debug_symfile_lookup_method().
1940
1941 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
1942
1943         * assembly.c (mono_assembly_open_full): Dont overwrite the status
1944         returned by mono_image_open_full ().
1945
1946         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
1947         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
1948         #78517.
1949
1950         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
1951         #78518.
1952
1953 2006-05-27  Miguel de Icaza  <miguel@novell.com>
1954
1955         * class.c (mono_class_from_typeref): handle missing images
1956         earlier, deals with bug #78418.   Refactor code; 
1957
1958         Fix a warning introduced in my previous commit (some stale code
1959         from before I revisited my patch).
1960
1961         * class.c (mono_class_create_from_typedef): On failure, remove the
1962         class from the MonoImage->class_cache as the class is not
1963         initialized;   Fixes the leak pointed out by Paolo.
1964
1965 2006-05-25  Dick Porter  <dick@ximian.com>
1966
1967         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
1968         DeleteCriticalSections until I figure out which one may still be
1969         sometimes locked when mono_thread_cleanup is called.
1970
1971 2006-05-24  Dick Porter  <dick@ximian.com>
1972
1973         * threads.c (mono_thread_cleanup): Move the threading cleanup out
1974         of mono_thread_manage and back into its own function, so it can be
1975         called after the finalizer thread has finished.
1976
1977         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
1978
1979 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
1980
1981         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
1982         Fixes #78495.
1983
1984         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
1985         with non-blittable elements.
1986         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
1987
1988 2006-05-24  Martin Baulig  <martin@ximian.com>
1989
1990         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1991         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
1992
1993         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
1994         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
1995         `mono_debugger_event_handler' to NULL.
1996
1997 2006-05-24  Martin Baulig  <martin@ximian.com>
1998
1999         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2000
2001 2006-05-24  Martin Baulig  <martin@ximian.com>
2002
2003         * mono-debug-debugger.h
2004         (mono_debugger_create_notification_function): Added
2005         `MonoCodeManager *' argument.
2006
2007 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2008
2009         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2010
2011 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2012
2013         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2014         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2015         implementation.
2016
2017 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2018
2019         * icall.c: precise GC support: objects can't be stored in unmanaged
2020         memory anymore, even if they are kept alive by other references: since
2021         they can move the GC needs to be able to always find them.
2022
2023 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2024
2025         * object.c: precise GC support for static fields. Support
2026         for moving GCs: write barriers and pinned allocation for interned
2027         strings.
2028
2029 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2030
2031         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2032         structure.
2033
2034 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2035
2036         * class.c, gc.c: sgen and precise GC updates.
2037
2038 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2039
2040         * marshal.h, marshal.c: added write barrier wrapper and precise type
2041         fixes.
2042
2043 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2044
2045         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2046         support.
2047
2048 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2049
2050         * reflection.c: precise and sgen GC updates.
2051
2052 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2053
2054         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2055
2056 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2057
2058         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2059
2060 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2061
2062         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2063         MONO_TYPE_OBJECT. Fixes #78462.
2064
2065 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2066
2067         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2068         and blittable types.
2069
2070 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2071
2072         * class.c (mono_class_get_exception_for_failure): Implement parts
2073         of a TODO: if the loader error is set (instead of the class
2074         error), we return a Loader exception that can be properly thrown
2075         elsewhere.
2076
2077         This was exposed by some Winforms 2.0 code that I tried to run
2078         (Atsushi pointed me to it).
2079
2080 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2081
2082         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2083         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2084         
2085         * marshal.c (emit_marshal_vtype): Add limited support for 
2086         UnmanagedType.LPStruct. Fixes #78427.
2087
2088         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2089         Applied a patch from kangaroo to fix #77523.
2090
2091 2006-05-17  Martin Baulig  <martin@ximian.com>
2092
2093         * threads.c
2094         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2095         (debugger_thread_created): Removed.
2096         (debugger_thread_exited): Removed.
2097
2098 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2099
2100         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2101
2102         * object-internals.h (MonoReflectionResource): Sync with managed version.
2103
2104 2006-05-12  Wade Berrier <wberrier@novell.com>
2105
2106         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2107
2108 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2109
2110         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2111         functions try to allocate from the image mempool.
2112
2113 2006-05-12  Dick Porter  <dick@ximian.com>
2114
2115         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2116
2117 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2118
2119         * object.c: The FieldGetter and FieldSetter methods require the full
2120         name of the class, not only the name. Fixes bug #78277.
2121
2122 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2123
2124         * loader.c (method_from_memberref): Do not pass the NULL klass to
2125         mono_loader_set_error_() methods.  Pass the non-NULL value
2126         (class). 
2127
2128 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2129
2130         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2131         (mono_assembly_close): Null out assembly->image->references after freeing it.
2132
2133         * image.c (mono_image_close): Free image->references.
2134         
2135         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2136
2137 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2138
2139         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2140         before checking if it's NULL (g_assert).
2141
2142 2006-05-10  Martin Baulig  <martin@ximian.com>
2143
2144         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2145         I thought I already killed that two months ago, but now it somehow reappeared.
2146
2147 2006-05-10  Martin Baulig  <martin@ximian.com>
2148
2149         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2150
2151 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2152
2153         * reflection.c: Allocate memory for dynamically created methods in the image
2154         mempools.
2155
2156 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2157
2158         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2159         don't use the ad pointer before checking if it's NULL (g_assert).
2160
2161 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2162
2163         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2164         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2165
2166         * marshal.c: Allocate all signatures from mempools.
2167
2168         * marshal.c: Allocate some more signatures from mempools.
2169
2170 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2171
2172         * object.c (mono_load_remote_field): The code used to provide a
2173         temporary variable for returning results if the user did not
2174         provide a result pointer.  But our temporary variable was allocted
2175         on the satck.
2176
2177         Fix calling code to always pass a result area.   Coverity ID 103.
2178
2179 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2180
2181         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2182         value, not the old. Fixes #78312.
2183         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2184
2185         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2186         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2187         per-image cache.
2188
2189         * assembly.c (mono_assembly_close): Free image->references.
2190
2191         * assembly.c (mono_assembly_names_equal): Fix a warning.
2192         (mono_assemblies_cleanup): Cleanup more global data.
2193
2194         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2195
2196         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2197         ptr_cache and image->modules.
2198
2199         * image.c (mono_image_init): Allocate array_cache lazily.
2200         
2201 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2202
2203         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2204         behavior was changed recently and has bad side effects.
2205
2206 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2207
2208         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2209         
2210         * assembly.c (mono_assembly_close): Remove a debug printf.
2211
2212         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2213
2214         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2215         to also allow for temporary references between mono_image_open ()/close ().
2216
2217         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2218
2219 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2220
2221         * marshal.c: Fix support for dynamic methods.
2222
2223         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2224
2225         * marshal.c (mono_marshal_cleanup): New cleanup function.
2226
2227         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2228         image mempools.
2229
2230         * class.c (mono_class_init): Fix leaking class->nested_classes.
2231
2232         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2233
2234         * image.c (mono_image_init): Initialize the new cashes.
2235
2236         * image.c (mono_image_close): Destroy the new cashes.
2237
2238         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2239
2240         * mempool.c (mono_mempool_strdup): New helper function.
2241
2242         * class-internals.h: Add prototype for mono_loader_unlock ().
2243
2244         * domain.c (mono_jit_info_table_find): Fix a warning.
2245         (mono_debugger_check_runtime_version): Ditto.
2246
2247         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2248         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2249         functions to these modules.
2250
2251         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2252         metadata modules.
2253         
2254         * marshal.c (mono_free_bstr): Fix a warning.
2255
2256         * assembly.c (mono_assembly_open_full): Fix another small leak.
2257
2258         * object.c: Fix some unload leaks in the remoting code.
2259
2260         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2261         function.
2262
2263         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2264
2265         * reflection.c: Fix some unload leaks in dynamic assemblies.
2266
2267 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2268
2269         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2270         * marshal.h: Add BSTR support on Win32
2271         * icall.c: Add BSTR icalls
2272         * metadata.h: Add BSTR enums
2273
2274 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2275
2276         Work to catch the crash from #76795 and turn it into an
2277         exception.   As I stubbed out pieces of the VisualBasic support,
2278         I found a number of places where the code was failing and I added
2279         checks to those places. 
2280         
2281         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2282         function return a status code.  If we fail to parse the signature
2283         from mono_metadata_parse_generic_inst, return FALSE.
2284
2285         * loader.c (mono_get_method_from_token): If we fail to load the
2286         method (mono_class_get) return NULL.   
2287
2288         * (method_from_memberref): Return NULL if we are unable to parse
2289         the method signature
2290
2291         (mono_loader_error_prepare_exception): Since we now use the
2292         loader_error flag internally to stop processing, and obtaining
2293         exceptions that might be thrown will walk this code path the
2294         proper way of going from a MonoLoaderError into a
2295         MonoException was convoluted.   This new routine encapsulates the
2296         process of turning the error into an exception and *clearing* the
2297         error afterwards.
2298         
2299 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2300
2301         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2302         with missing assemblies), and to cope with:
2303
2304                 * Missing fieldref from a non-existing assembly.
2305                 * Missing methodref from a non-existing assembly.
2306
2307         The first batch of work to address *some* of the issues from 76661.
2308         
2309         * object.c (mono_class_create_runtime_vtable): If we fail to
2310         initialize the class raise the exception here. 
2311
2312         * metadata.c (mono_class_get_overrides_full): If any methods fail
2313         to load return the failure to the caller.
2314
2315         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2316         flagging assemblies that failed to load.   
2317
2318         Do not crash if we are unable to load the assembly.
2319
2320         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2321         assemblies. 
2322
2323         * loader.c (mono_loader_set_error_type_load): Change the
2324         convention to always pass unallocated strings, so we make our own
2325         copies (I know our own code had duplicated strings before, but
2326         this keeps the normal conventions).
2327         (method_from_memberref): Call mono_loader_set_error_method_load
2328         for all possible failures of loading the class. 
2329         Remove assert, turn into a loader error.
2330
2331         (mono_loader_error_to_exception): Move this routine from mini
2332         (mini_loader_error_to_exception) there was no need to have that in
2333         mini. 
2334
2335         * class.c (mono_class_from_typeref): If we were not able to load
2336         the assembly with mono_assembly_load_reference, call the
2337         mono_loader_set_error_type_load to register the problem.
2338
2339         (mono_class_setup_fields): If we fail to load the type from
2340         mono_metadata_parse_type_full, call mono_class_set_failure and
2341         break from the loop.
2342
2343         If class->exception_type is set, we do not layout the fields as
2344         that might crash the runtime, and instead return (from breaking
2345         from the previous loop).
2346
2347         (mono_class_setup_vtable): This now returns a boolean indicating
2348         whether the table was properly setup.   The decision is driven by
2349         mono_class_get_overrides_full which might run into non-existing
2350         methods. 
2351         
2352         (mono_class_init): Returns TRUE on success or FALSE if there was a
2353         problem in loading the type (incorrect assemblies, missing
2354         assemblies, methods, etc).
2355
2356         When we call mono_class_setup_fields we also check for a potential
2357         error inside this call (either a class exception or a general
2358         loader exception).
2359
2360         (mono_class_create_from_typedef): If the parent fails to load
2361         (calling mono_class_get_full) return NULL.
2362         
2363         ** Important **
2364
2365         calls to mono_metadata_parse_type_full should be checked
2366         everywhere and set the mono_class_set_failure
2367         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2368
2369         The current patch checks the places where my manually constructed
2370         tests show the errors are showing up, but we should do it
2371         everywhere. 
2372
2373         ** Important2 **
2374
2375         mono_class_init return values should be tested everywhere, like
2376         the previous case this is something that we should audit
2377         everywhere and not only on the cases exposed by the tests I
2378         created. 
2379
2380 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2381
2382         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2383         boolean parameter and instead pass the information on `options'
2384         parameter (FileOptions).
2385
2386         * icall.c: Register the new signature for MonoIO.Open.
2387
2388         * debug-helpers.c (dis_one): Trying to understand how coverity
2389         works.  Fix Run 5, item 78.
2390
2391 2006-04-26  Dick Porter  <dick@ximian.com>
2392
2393         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2394         dereference.
2395
2396 2006-04-25  Martin Baulig  <martin@ximian.com>
2397
2398         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2399
2400         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2401         debugger_thread_created().
2402         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2403         special way.
2404         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2405         (mono_debugger_finalize_threads): New function; undo the effects
2406         of mono_debugger_init_threads().
2407         (mono_debugger_create_all_threads): Removed.
2408
2409 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2410
2411         * image.c (mono_image_close): Tidy up trace messages.
2412
2413         * assembly.c (mono_assembly_close): Ditto.
2414
2415         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2416         no longer references an already freed assembly. Fixes #78168.
2417
2418 2006-04-21  Dick Porter  <dick@ximian.com>
2419
2420         * threads.c (mono_thread_detach): Fix reference counting when
2421         detaching threads.
2422
2423 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2424
2425         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2426         #78155.
2427
2428 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2429
2430         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2431         (mono_type_to_stind): Ditto.
2432
2433         * marshal.c: Use the new helper functions to simplify code.
2434
2435         * image.c (mono_image_close): Add some code for help debug assembly unloading
2436         problems.
2437
2438         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2439         image mempool.
2440
2441         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2442         assembly was already loaded in another appdomain. Fixes #78083.
2443
2444 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2445
2446         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2447         referenced assemblies.
2448         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2449
2450         * domain.c (mono_domain_free): Add a trace message.
2451
2452         * appdomain.c (add_assemblies_to_domain): Ditto.        
2453
2454         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2455         field.  
2456
2457 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2458
2459         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2460
2461 2006-04-12  Martin Baulig  <martin@ximian.com>
2462
2463         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2464         `USE_INCLUDED_LIBGC'.   
2465
2466 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2467
2468         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2469         the patch contains ../ and a small directory name later. Hopefully fixes
2470         #78035.
2471
2472 2006-04-10  Martin Baulig  <martin@ximian.com>
2473
2474         Clean up the debugger's thread-handling code.
2475
2476         The debugger's thread-handling code has been moved from
2477         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2478         over the `threads' hash, keep track of exiting threads and also
2479         use proper locking.
2480
2481         We can now debug XSP and XSP based applications with the debugger.
2482
2483         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2484
2485         * threads.h
2486         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2487         (mono_install_thread_callbacks): Likewise.      
2488
2489         * threads.c (mono_thread_callbacks): Removed.
2490         (debugger_thread_created, debugger_thread_exited): New static functions.
2491         (start_wrapper): Call debugger_thread_created().
2492         (thread_cleanup): Call debugger_thread_exited().
2493         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2494         (mono_debugger_init_threads): New public function.
2495         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2496         iterate directly over the `threads' hash and also use proper locking.
2497
2498         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2499
2500         * mono-debug-debugger.h
2501         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2502
2503 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2504
2505         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2506         argument type=array. Fixes #78057.
2507
2508 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2509
2510         * culture-info-table.h : regenerated. Fixed bug #69652.
2511
2512 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2513
2514         * loader.c metadata.c: Reapply a variant r59116.
2515         
2516         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2517
2518         * class.c (mono_class_setup_interface_offsets): New internal function.
2519
2520         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2521         interfaces too. Fixes #77398.
2522
2523         * reflection.c (encode_cattr_value): Add support for 
2524         parameter type=object, argument type=array.
2525         (load_cattr_value): Ditto. Fixes #77916.
2526
2527         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2528         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2529
2530         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2531         a byval char array and CharSet is Ansi.
2532
2533         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2534
2535 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2536
2537         * metadata.c: Add some locking comments.
2538         
2539         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2540         mempool.
2541         (mono_metadata_free_method_signature): Don't free the signature itself.
2542
2543         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2544
2545         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2546         reference the same MonoImage.
2547         (mono_assembly_load_from_full): Add an assert.
2548
2549 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2550
2551         * image.c (mono_image_close): Don't put the image we are about to free into the
2552         loaded_images_guid_hash.
2553
2554         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2555         to reduce code duplication.
2556
2557         * marshal.c: Register the native functions called by this module as icalls, to
2558         somewhat centralize the creation of MonoMethodSignature's.
2559
2560         * loader.c (mono_method_signature): Add a cache for method signatures.
2561
2562         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2563         the parameter attributes of a method.
2564         (mono_metadata_parse_method_signature_full): Refactored the computation of
2565         parameter attributes into a separate function. Also avoid one allocation in
2566         most cases.
2567
2568         * assembly.c (mono_assembly_close): Ditto.
2569
2570         * image.c (mono_image_close): Log trace messages with INFO level.
2571
2572         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2573
2574         * image.c reflection.c: Correct reference counting of image modules.
2575         
2576         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2577         of this function from the image mempool.
2578         
2579         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2580         to allow more cached types to be used.
2581
2582         * mono-debug.c (mono_debug_add_method): Appled patch from
2583         David S. Miller  <davem@sunset.davemloft.net>: Access 
2584         minfo->lexical_blocks[] entry elements using read32().
2585
2586 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2587
2588         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2589         methods as it is allocated from the mempool.
2590
2591         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2592         image mempool.
2593
2594         * metadata-internals.h: Add comments describing the reference counting scheme
2595         used for MonoImage and MonoAssembly.
2596
2597         * image.c assembly.c reflection.c: Rework reference counting of images and 
2598         assemblies so they are freed when the runtime is shut down. Free some 
2599         additional memory structures when an image is unloaded.
2600         
2601 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2602
2603         * class.c loader.c reflection.c: Allocate more data structures in
2604         the image mempool.
2605
2606 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2607
2608         * icall.c
2609         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2610         build on pre glib 2.4 systems.
2611
2612 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2613
2614         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2615
2616         * icall.c: Fix some warnings.
2617
2618 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2619
2620         * culture-info-table.h : regenerated.
2621
2622 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2623
2624         * threads.c, object-internals.h, verify.c: changed the culture caching
2625         code to use a normal MonoArray for storage so the GC can keep track of
2626         them easily. Fixed bits of the cache logic, too and simplified the
2627         code.
2628
2629 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2630
2631         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2632         thread for non-Boehm GCs.
2633
2634 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2635
2636         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2637         needed to keep track of the data for static fields.
2638
2639 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2640
2641         Fix #75172
2642         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2643         for interface classes.  Use 'num_methods' instead.
2644         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2645         before using '->vtable_size' field.
2646
2647 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2648
2649         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2650         doesn't contain managed pointers, so use a normal hashtable.
2651
2652 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2653
2654         * reflection.c, class-internals.h, domain.c: fixed handling of types
2655         used as values for objects in custom attributes (bug #77915):
2656
2657 2006-03-24  Martin Baulig  <martin@ximian.com>
2658
2659         * class.c (mono_class_setup_fields): Added support for generic
2660         instances; fixes #77580.
2661
2662 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2663
2664         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2665
2666 2006-03-24  Dick Porter  <dick@ximian.com>
2667
2668         * file-io.c (get_file_attributes): More stat macro breakage.
2669         Fixes bug 77759.
2670
2671 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2672
2673         * profiler.c: added the file=filename option in the default profiler
2674         to output the profile data to filename.
2675
2676 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2677
2678         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2679         bug #77877.
2680
2681 2006-03-22  Martin Baulig  <martin@ximian.com>
2682
2683         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2684         allocated `MonoClassField *' in `fb->handle'.
2685
2686 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2687
2688         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2689         allocate interface ID to save memory and allow better ID reuse on
2690         appdomain unload. setup_generic_vtable () removal from Martin.
2691
2692 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2693
2694         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2695         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2696         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2697         write barriers for reference stores with managed objects accessed with
2698         C structures in the runtime and in embedding programs.
2699
2700 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2701
2702         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2703         'interface_id' and 'max_interface_id' fields of MonoClasses
2704         representing open generic types.
2705
2706 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2707
2708         * object.h, object.c, icall.c: added functions to deal with
2709         storing valuetypes that contain references in managed objects.
2710         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2711         fixes and comments around uses of mono_array_addr ().
2712
2713 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2714
2715         * object.h, icall.c, monitor.c: object.GetHashCode ()
2716         implementation that supports the moving garbage collector.
2717
2718 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2719
2720         * icall.c, threads-types.h, threads.c: implemented finalizer for
2721         LocalDataStoreSlot.
2722
2723 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2724
2725         * metadata.c (mono_type_size): Add a fixme.
2726         (mono_type_stack_size): Ditto.
2727
2728         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2729         'type_forwarders' field.
2730
2731         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2732         attribute from net 2.0.
2733
2734         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2735         from class.c.
2736
2737         * class.c (mono_class_setup_fields): Fix a warning.
2738         
2739         * class.c (mono_class_from_name): Add support for assemblyref entries
2740         in the EXPORTEDTYPE table.
2741
2742         * reflection.c: Add support for handling type forwarders under net 2.0.
2743
2744         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2745         
2746 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2747
2748         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2749         overwriting entries in ModuleBuild->types, also clean up the code
2750         a little. Fixes #77774.
2751
2752 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2753
2754         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2755         load friend assembly info when present.
2756
2757 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2758
2759         Fix crasher on gtest-158.cs.
2760         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2761         the return value if the MonoClass we want is yet in an
2762         inconsistent state.
2763         * class.c (mono_class_create_from_typedef): Add an comment
2764         explaining an order dependency between mono_class_setup_parent and
2765         mono_class_setup_mono_type.
2766
2767 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2768
2769         * class.c: documentation updates and events bug fix.
2770
2771 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2772
2773         * class.c: some cleanup, locking fixes.
2774
2775 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2776
2777         * class.c: fix the generics code to setup nested
2778         type info to the instantiated type (bug #77770).
2779
2780 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2781
2782         * marshal.c: fixed a few type correctness issues.
2783
2784 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2785
2786         * loader.c: the Set/Get/Addrtess array methods should be public.
2787
2788 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2789
2790         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2791         
2792         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2793         info->wrapper.
2794
2795 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2796
2797         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2798
2799         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2800
2801         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2802         (mono_mempool_alloc0): Ditto.
2803
2804 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2805
2806         * socket-io.c:
2807         (create_object_from_sockaddr): it was allocating 4 extra bytes
2808         for the AF_UNIX data. Fixes bug #77747.
2809
2810 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2811
2812         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2813
2814 2006-03-09  Dick Porter  <dick@ximian.com>
2815
2816         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2817         Fixes bug 76966 again.
2818
2819 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2820
2821         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2822         names from r57532
2823         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2824
2825 2006-03-07  Martin Baulig  <martin@ximian.com>
2826
2827         * object.c
2828         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2829
2830 2006-03-07  Martin Baulig  <martin@ximian.com>
2831
2832         * class.c
2833         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2834         regression introduced in r56970; see gtest-252.cs.
2835
2836         * loader.c (mono_get_method_constrained): Correctly handle generic
2837         methods; see gtest-253.cs.
2838
2839 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2840
2841         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2842
2843 2006-03-04  Martin Baulig  <martin@ximian.com>
2844
2845         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2846         compute the parent type at runtime, just like we're already doing
2847         it for interfaces.
2848
2849         * reflection.c
2850         (mono_reflection_bind_generic_parameters): Don't compute the
2851         parent type anymore.
2852
2853         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2854
2855 2006-03-04  Martin Baulig  <martin@ximian.com>
2856
2857         * mono-debug-debugger.h
2858         (mono_debugger_create_notification_function): Allocate memory at
2859         runtime and return a pointer to it.
2860
2861 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2862
2863         * assembly.c: Fix windows build.
2864         
2865         * assembly.c: Fix build.
2866
2867         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2868
2869         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2870         
2871 2006-03-03  Dick Porter  <dick@ximian.com>
2872
2873         * process.c
2874         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2875         Check parameters before dereferencing them.  Fixes Aaron's part of
2876         bug 77393.
2877
2878 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2879
2880         Fix performance regression.
2881         * loader.c (find_method_in_class): Add 'from_class' argument.
2882         Rename 'klass' argument to 'in_class'.  The signature is compared
2883         against the method in 'in_class', and the corresponding method is
2884         returned from 'from_class'.
2885         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2886         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2887         type definition and generic instantiation in parallel.
2888         (mono_get_method_constrained): Update to changes.
2889
2890 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2891
2892         * threads.c: make sure the domain is correct, too when doing
2893         mono_thread_attach ().
2894
2895 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
2896
2897         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
2898         windows. Fixes #77683.
2899
2900 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2901
2902         * object.h, *: introduced specific way to set elements of an array
2903         of references to be used as write barrier. Still need to audit the
2904         uses of mono_array_addr.
2905
2906 2006-03-01  Miguel de Icaza  <miguel@novell.com>
2907
2908         * object-internals.h: New field to cache the assmebly name, patch
2909         from Tambet Ingo (tambet@ximian.com)
2910
2911 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2912
2913         * decimal.h, class-internals.h, metadata-internals.h,
2914         file-io.h: mark a few function declarations as internal, to
2915         reduce the number of PLT entries.
2916
2917 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2918
2919         * file-io.c: fix typo in warning message.
2920
2921 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
2922
2923         * loader.c: on unix, lookup the "*A" version of a function
2924         if charset is auto as a second option before failing.
2925
2926 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2927
2928         * class.h (mono_class_inflate_generic_method): Revert to two
2929         argument version.
2930         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
2931         (mono_class_inflate_generic_method_full): Add.
2932         * class.c (mono_class_inflate_generic_method_full): Rename from
2933         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
2934         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
2935         * loader.c, reflection.c: Update to changes.
2936
2937 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
2938
2939         * icall.c: const fixes and small improvements.
2940
2941 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2942
2943         * threadpool.c: for asynchronous connect(), enable the same workaround
2944         for BSD 6 as for the Mac. Fixes bug #77637.
2945
2946 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
2947
2948         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
2949         formatted classes. Fixes #77524.
2950
2951 2006-02-24  Raja R Harinath  <rharinath@novell.com>
2952
2953         * class.c (inflate_generic_type): Add a couple more
2954         micro-optimizations.
2955         (inflate_generic_context): Don't use the 'gmethod' from
2956         'inflate_with'.
2957         (mono_class_inflate_generic_method): If the method has generic
2958         parameters, but the passed-in context doesn't have a 'gmethod',
2959         create one.  Use the possibly simplified generic instantiation
2960         from the declaring class instead of the one passed in.
2961
2962 2006-02-24  Raja R Harinath  <harinath@gmail.com>
2963
2964         Make generic method signature and method header handling lazy.
2965         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
2966         (inflate_generic_header): Likewise.
2967         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
2968         parameter to avoid inflating types.
2969         (mono_get_inflated_method): Empty out.
2970         * class.h (mono_class_inflate_generic_method): Update to changes.
2971         * loader.c (mono_get_method_from_token): Don't parse signature for
2972         generic methods, nor methods of generic classes.
2973         (mono_method_signature): Rename from 'mono_method_signature'.
2974         Inflate signature on demand.
2975         (mono_method_get_header): Inflate method header on demand.
2976         * reflection.c: Update to changes.
2977
2978 2006-02-23  Raja R Harinath  <rharinath@novell.com>
2979
2980         * metadata.c (mono_metadata_inflate_generic_inst): If the
2981         instantiation is closed, don't bother expanding it in the new
2982         context.
2983         * class.c (inflate_generic_class): If the generic instantiation
2984         doesn't change after inflation, return the argument itself.
2985         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
2986         Add bounds checks.
2987         (inflate_generic_context): If neither the generic class nor the
2988         generic method instantiations change, return the original context.
2989         * reflection.c (mono_method_get_object): Do
2990         'mono_get_inflated_method' before accessing the ->klass field.
2991         (inflate_mono_method): Don't create a MonoGenericMethod unless
2992         necessary.
2993         (inflate_method): Don't pass a constructed type as the declaring
2994         type of a methodbuilder.
2995
2996 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
2997
2998         * object.c: fix memory overwrite.
2999
3000 2006-02-22  Dick Porter  <dick@ximian.com>
3001
3002         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3003         it doesn't work any more.
3004         (mono_threads_request_thread_dump): Fix unused variable warnings.
3005
3006 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3007
3008         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3009         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3010         the public header file.
3011
3012 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3013
3014         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3015
3016 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3017
3018         * class-internals.h, object.c: reduce the size of MonoVTable
3019         and store the interface_offsets array at negative offsets.
3020
3021 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3022
3023         * metadata.c: tweak table descriptors data structures to reduce
3024         size and runtime relocations.
3025
3026 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3027
3028         * marshal.c: fix some types and opcodes to be type-safe
3029         in marshaling wrappers.
3030
3031 2006-02-21  Ankit Jain  <jankit@novell.com>
3032
3033         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3034
3035 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3036
3037         * metadata.c (get_constraints): Relax debugging checks for monodis.
3038
3039 2006-02-21  Ankit Jain  <jankit@novell.com>
3040
3041         * metadata.c (mono_metadata_load_generic_params): Move the code
3042         checking for ambiguous generic params from here to mono/dis/get.c
3043         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3044
3045 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3046
3047         Fix assertion triggered when compiling nemerle.
3048         * class.c (mono_get_shared_generic_inst): Rename from
3049         get_shared_inst and make non-static.
3050         * loader.c (mono_get_shared_generic_method): New.  Used to create
3051         the MonoGenericContext-equivalent of a MonoGenericContainer.
3052         (mono_get_method_from_token): Initialize the 'context' field of
3053         the created MonoGenericContainer.
3054         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3055         * metadata.c (get_constraints): Add sanity check.
3056         * class-internals.h: Add new internal methods.
3057
3058         * reflection.c (verify_safe_for_managed_space): New sanity check.
3059         Currently checks that owner-less generic parameters aren't allowed
3060         in managed space.
3061         (mono_type_get_object): Use it.
3062         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3063         that are now in mono_type_get_object.
3064         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3065
3066 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3067
3068         * metadata.c (mono_type_create_from_typespec): Rename from
3069         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3070         argument and caching of types in the generic container.
3071         (unwrap_arrays, find_generic_param): Remove.
3072         * metadata-internals.h: Update.
3073         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3074
3075 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3076
3077         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3078
3079         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3080         return values. Fixes #77581.
3081
3082         * class.c (mono_fnptr_class_get): Switch name and name_space.
3083
3084         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3085         classes and add support for [In, Out] attributes.
3086         (mono_marshal_free_asany): Ditto. Fixes #77524.
3087
3088 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3089
3090         * class.c (mono_class_from_generic_parameter): Make more robust to
3091         incomplete MonoGenericContainers from monodis.
3092
3093 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3094
3095         * class-internals.h: added some more exception types.
3096         * class.c, metadata.c: added a few checks to handle missing
3097         types.
3098
3099 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3100
3101         Use owner-less generic-params some more.
3102         * class.c (my_mono_class_from_generic_parameter): Remove.
3103         (mono_class_from_generic_parameter): Handle null image,
3104         param->name and param->owner.
3105         (mono_class_from_mono_type): Update.
3106         (mono_class_create_from_typespec): Remove 'container' parameter.
3107         If that parameter is non-null, the result is always inflated by
3108         'mono_class_get_full' anyway.
3109         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3110         parameter.
3111         (mono_class_get_full): Update.
3112
3113         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3114         instance is not open, don't bother inflating.
3115         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3116         parse metadata for inflated classes.
3117         (_mono_class_get): Change GenericContext* parameter to
3118         GenericContainer*.
3119         (mono_class_create_from_typespec): Likewise.  Simplify, and
3120         implement trivially.  All the cases are handled in
3121         mono_class_from_mono_type.  Don't inflate returned class.
3122         (mono_class_get_full): Delegate GENERICINST optimization to
3123         inflate_generic_type.
3124         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3125
3126 2006-02-16  Dick Porter  <dick@ximian.com>
3127
3128         * socket-io.c (create_object_from_sockaddr): Fix typo.
3129         (create_sockaddr_from_object): Check array lengths before
3130         potentially accessing items off the end.
3131         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3132         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3133         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3134         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3135         length checks to avoid wraparound overflows.
3136         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3137         contents of the array of sockets
3138         (hostent_to_IPHostEntry2)
3139         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3140         Check return value of inet_ntop ().
3141         (addrinfo_to_IPHostEntry): Fix typo
3142
3143 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3144
3145         Type metadata parsing doesn't use generic-instantiation information.
3146         * metadata.c (mono_metadata_parse_array_full): Change
3147         MonoGenericContext* parameter to MonoGenericContainer*.
3148         (mono_metadata_parse_type_full): Likewise.
3149         (mono_type_create_from_typespec_full): Likewise.
3150         (mono_metadata_parse_mh_full): Likewise.
3151         (mono_metadata_parse_generic_inst): Likewise.
3152         (do_mono_metadata_parse_generic_class): Likewise.
3153         (do_mono_metadata_parse_type): Likewise.
3154         * metadata-internals.h: Update to changes.
3155         * class.c (mono_class_find_enum_basetype): Likewise.
3156         (mono_class_setup_fields): Likewise.
3157         (mono_class_create_from_typespec): Likewise.
3158         * loader.c (method_from_methodspec): Likewise.
3159         (mono_get_method_from_token): Likewise.
3160         (mono_method_get_header): Likewise.
3161
3162 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3163
3164         * marshal.c: handle additional GENERICINST case (patch from
3165         Thong Nguyen <tum@veridicus.com>).
3166         Fix a few cases where LDIND_I/STIND_I was used for references.
3167
3168 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3169
3170         * reflection.c (mono_reflection_get_token): Remove unused variable.
3171
3172 2006-02-16  Martin Baulig  <martin@ximian.com>
3173
3174         * reflection.c (mono_reflection_get_token): Add support for fields
3175         in instantiated generic types.
3176
3177         * icall.c
3178         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3179
3180 2006-02-15  Martin Baulig  <martin@ximian.com>
3181
3182         * icall.c
3183         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3184         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3185         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3186         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3187
3188 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3189
3190         * class.c, metadata.c, metadata.h, object.c, icall.c,
3191         marshal.c: changed mono_type_get_underlying_type () to do
3192         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3193         Fixed handling of instantiated generic valuetypes (bug #75479).
3194
3195 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3196
3197         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3198         Delegate to mono_metadata_decode_value, and work on the returned value.
3199
3200         * icall.c (ves_icall_MonoType_GetGenericArguments):
3201         Add consistency check here too.
3202         
3203 2006-02-15  Ankit Jain  <jankit@novell.com>
3204
3205         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3206         char/short etc.
3207
3208 2006-02-15  Ankit Jain  <jankit@novell.com>
3209
3210         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3211         signed values, used only for representing lower bounds of arrays.
3212         (mono_metadata_parse_array_full): Use new
3213         mono_metadata_decode_signed_value to decode lower bounds.
3214
3215 2006-02-14  Martin Baulig  <martin@ximian.com>
3216
3217         * reflection.c
3218         (mono_reflection_get_token): Support "MonoGenericMethod" and
3219         "MonoGenericCMethod" and allow generic instances / methods.
3220
3221 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3222
3223         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3224         to obtain the terminal size using an ioctl.
3225
3226         * object.c (mono_nullable_init): Revert this as nullable reference
3227         types are not valid.
3228         (mono_nullable_box): Ditto.
3229
3230 2006-02-09  Dick Porter  <dick@ximian.com>
3231
3232         * threads.c (mono_thread_detach): Drop a reference to the thread
3233         we're detaching.
3234
3235 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3236
3237         * object.c (mono_nullable_init): Handle nullable reference types.
3238         (mono_nullable_box): Ditto. Fixes #77446.
3239
3240 2006-02-07  Martin Baulig  <martin@ximian.com>
3241
3242         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3243
3244 2006-02-07  Ankit Jain  <jankit@novell.com>
3245
3246         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3247         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3248         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3249         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3250         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3251         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3252
3253 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3254
3255         * class.c (mono_class_create_generic): Set type_token as well.
3256
3257         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3258         compatible with MS.
3259
3260 2006-02-02  Martin Baulig  <martin@ximian.com>
3261
3262         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3263         has never been used so far.
3264
3265 2006-02-02  Martin Baulig  <martin@ximian.com>
3266
3267         * mono-debug-debugger.h: Changed comment at the top of this file;
3268         the header is not installed, but it's safe to #include it from
3269         within the JIT.
3270
3271         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3272         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3273
3274 2006-02-02  Martin Baulig  <martin@ximian.com>
3275
3276         * mono-debug.h
3277         (MonoSymbolTable): Removed the `metadata_info' field.
3278
3279         * mono-debug.c
3280         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3281
3282         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3283         (mono_debugger_add_builtin_types): Removed.
3284         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3285         (mono_debugger_create_notification_function): We now operate on a
3286         pre-allocated area; take a `gpointer' and return `void'.
3287
3288         * mono-debug-debugger.c
3289         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3290         (mono_debugger_add_builtin_types): Removed.
3291
3292 2006-02-02  Martin Baulig  <martin@ximian.com>
3293
3294         * threads.c (mono_debugger_create_all_threads): New public method.
3295
3296 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3297
3298         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3299         breaks on several platforms.
3300
3301 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3302
3303         * assembly.c: the VS.NET build doesn't supply default values for
3304         MONO_ASSEMBLIES and MONO_CFG_DIR.
3305
3306 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3307
3308         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3309         helper function.
3310
3311         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3312
3313         * loader.c (method_from_memberref): Fix a warning.
3314
3315         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3316
3317         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3318         with explicit layout. Fixes #77433.
3319
3320 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3321
3322         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3323         max_interface_id is initialized before using it. Fixes #77398.
3324         (ves_icall_Type_GetInterfaces): Ditto.
3325
3326 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3327
3328         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3329         allocate memory for parameter attributes when parsing memberref
3330         signatures.
3331         * loader.c (mono_loader_set_error_method_load): Don't warn.
3332         (method_from_memberref): Ensure MissingMethodException gets thrown
3333         if method is not found.  Make warning more informative.
3334
3335 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3336
3337         Fix #77397
3338         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3339         return true if is byref.
3340         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3341         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3342         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3343
3344 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3345
3346         Fix tests/find-method.2.il
3347         * loader.c (find_method, find_method_in_class): Remove is_inflated
3348         argument.  Revert 2006-01-18 change.
3349         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3350         is generic, search for method in its generic definition.
3351         * class.c (mono_class_setup_vtable_general): Print generic
3352         arguments of generic types in debugging printf.
3353
3354 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3355
3356         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3357
3358         * threads.c (mono_threads_request_thread_dump): New helper function.
3359
3360 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3361
3362         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3363
3364 2006-01-25  Ankit Jain  <jankit@novell.com>
3365
3366         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3367         move definition to ..
3368         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3369         
3370 2006-01-25  Ankit Jain  <jankit@novell.com>
3371             Raja R Harinath  <rharinath@novell.com>
3372
3373         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3374         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3375         as necessary.
3376
3377 2006-01-25  Martin Baulig  <martin@ximian.com>
3378
3379         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3380         `MonoDebuggerThread' into debug-debugger.c.
3381
3382 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3383
3384         * profiler.c: fix printing of data.
3385
3386 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3387
3388         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3389           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3390
3391 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3392
3393         * object.c: fix deadlock related to string interning.
3394
3395 2006-01-23  Martin Baulig  <martin@ximian.com>
3396
3397         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3398
3399         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3400
3401 2006-01-23  Martin Baulig  <martin@ximian.com>
3402
3403         * mono-debug.h: Moved the prototypes of some functions which are
3404         used by the JIT here from mono-debug-debugger.h.
3405
3406 2006-01-21  Martin Baulig  <martin@ximian.com>
3407
3408         * Makefile.am: Don't install mono-debug-debugger.h.
3409
3410 2006-01-21  Martin Baulig  <martin@ximian.com>
3411
3412         * mono-debug-debugger.h: Enforce the private status of this header
3413         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3414         Moved some stuff from mono-debugger-jit-wrapper.h here.
3415
3416 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3417
3418         * class.c (mono_class_from_typeref): Add a sanity test to help
3419         catch lack of assembly load/search hooks.
3420
3421 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3422
3423         * marshal.c (emit_struct_conv): Relax the fields with same offset
3424         check even more. Fixes #77230.
3425
3426 2006-01-18  Martin Baulig  <martin@ximian.com>
3427
3428         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3429         argument; if false, we compare the uninstantiated signatures.
3430         (method_from_memberref): Compare the uninstantiated signatures;
3431         fixes #76417.
3432
3433 2006-01-18  Robert Jordan  <robertj@gmx.net>
3434
3435         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3436         Clear the weak link. Fixes bug #77170.
3437
3438         * gc.c (mono_gchandle_free):
3439         Reflect *-gc.c changes (tiny optimization).
3440
3441 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3442
3443         * metadata.c (mono_metadata_signature_dup): Applied patch from
3444         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3445         Fixes #77288.
3446
3447 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3448
3449         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3450         marshalling from native to managed code. Fixes #77230.
3451
3452 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3453
3454         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3455         connect. Fixes bug #77020.
3456
3457 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3458
3459         * class.c: fixed id assignement for nested interfaces (bug #77275).
3460         Added also better info for --print-vtable debugging.
3461
3462 2006-01-12  Martin Baulig  <martin@ximian.com>
3463
3464         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3465         interfaces on-the-fly; fixes #76625.
3466
3467         * class-internals.h
3468         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3469         don't need that anymore.
3470
3471 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3472
3473         * socket-io.c
3474         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3475         To avoid initing the nested_classes when not needed I turned the
3476         PeerCredData as a toplevel internal class, as it has to be shared
3477         anyways. 
3478
3479         Fixes the CASA issue.
3480
3481 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3482
3483         * domain.c: Accessors for MonoJitInfo
3484
3485         * profiler-private.h: Add jitinfo to the end jit hook
3486
3487         * profiler.[ch]: Define new hooks, called after jitting which give
3488         the MonoJitInfo that was compiled
3489
3490 2006-01-10  Martin Baulig  <martin@ximian.com>
3491
3492         * class.c (mono_class_setup_events): Add support for generic
3493         classes; fixes #76440.
3494
3495 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3496
3497         Fix #77160.
3498         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3499         on passed-in method.
3500
3501 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3502
3503         * object.c (mono_runtime_invoke_array): Add Nullable support.
3504
3505         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3506
3507 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3508
3509         * file-io.c: Don't consider sockets as directory and avoid an endless
3510         loop. Fix bug #76966.
3511
3512 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3513
3514         * object.c (mono_nullable_init): New helper function.
3515         (mono_nullable_box): Ditto.
3516
3517         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3518
3519         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3520
3521         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3522         
3523 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3524
3525         * class.c (mono_class_is_assignable_from): Make T assignable to 
3526         Nullable<T>.
3527
3528 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3529
3530         * appdomain.c: Bump corlib version to 46.
3531         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3532         serialization purpose) and changed ves_icall_System_Reflection_
3533         Assembly_get_code_base signature to accept a boolean (to escape, or 
3534         not, the assembly code base).
3535
3536 2005-12-23  Dick Porter  <dick@ximian.com>
3537
3538         * icall.c: 
3539         * threads-types.h: 
3540         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3541         CreateEvent icall now returns "created" boolean parameter.
3542
3543 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3544
3545         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3546         #76967.
3547
3548         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3549         when attr_klass is an interface. Fixes #77045.
3550
3551 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3552
3553         * marshal.c (emit_struct_conv): Fix previous patch.
3554         
3555         * marshal.c (emit_struct_conv): Add a check for fields with the same
3556         offset.
3557
3558 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3559
3560         Fix regression in Mono.C5.
3561         * class.c (mono_class_create_generic): If 'klass' is an interface
3562         set up the interface offsets.
3563         (mono_class_is_assignable_from): Don't throw away generic arguments.
3564
3565 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3566
3567         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3568         type parameters.
3569
3570 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3571
3572         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3573         dead store.
3574         (do_mono_metadata_parse_generic_class): Don't pass the current
3575         generic context when parsing the type being instantiated: it
3576         cannot use it, anyway.
3577
3578         * loader.c (method_from_memberref): Don't inflate a signature if
3579         it doesn't contain any type parameters.
3580
3581 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3582
3583         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3584
3585 2005-12-14  Martin Baulig  <martin@ximian.com>
3586
3587         * class.c
3588         (mono_type_get_name_recurse): Don't return null for type
3589         parameters and open generic classes.
3590         (mono_class_setup_methods): Don't exclude generic instances.
3591         (mono_get_unique_iid): Use different IDs for different
3592         instantiations of the same generic type.
3593         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3594         open generic instances; create a normal vtable for closed generic
3595         instances.
3596         (mono_class_setup_vtable_general): We're now also called for
3597         closed generic instances.
3598
3599         * reflection.c
3600         (mono_reflection_bind_generic_parameters): Correctly use
3601         mono_metadata_lookup_generic_inst() everywhere.
3602
3603 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3604
3605         * object.c (mono_class_create_runtime_vtable): Call 
3606         mono_class_setup_vtable ().
3607
3608         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3609         function.
3610         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3611         #76959.
3612
3613         * loader.c (mono_loader_set_error_type_load): Print the type load
3614         warnings to the console so they are more visible to the user.
3615         (mono_loader_set_error_method_load): Ditto.
3616
3617         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3618         is still broken.
3619         
3620         * reflection.c (ensure_runtime_vtable): Fix build.
3621
3622         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3623         doesn't work in all cases.
3624
3625 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3626
3627         * object.c (mono_array_new_full): Treat a single dimensional array
3628         with 0 lower bounds as an szarray. Fixes #76973.
3629
3630         * reflection.c (custom_attr_visible): Really fix this.
3631
3632 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3633
3634         * reflection.c (custom_attr_visible): Allow nested public attributes
3635         as well.
3636
3637         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3638         interface check.
3639
3640 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3641
3642         * class.c (set_generic_param_owner): Delete.
3643         (mono_class_create_from_typedef): Don't set ->owner field of
3644         generic parameters to "param containers" of enclosing classes.
3645         * reflection.c (mono_reflection_initialize_generic_parameter):
3646         Likewise.
3647
3648 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3649
3650         * reflection.c (custom_attr_visible): Fix build.
3651
3652 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3653
3654         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3655         private attributes.
3656         
3657         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3658         handling of null parameter defaults.
3659
3660 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3661
3662         * class.c (mono_class_from_generic_parameter): Don't set
3663         klass->generic_container.
3664         (my_mono_class_from_generic_parameter): Likewise.
3665
3666 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3667
3668         * reflection.c (load_public_key): Fix a warning.
3669         (method_encode_code): Fix unaligned accesses.
3670
3671 2005-12-07  Martin Baulig  <martin@ximian.com>
3672
3673         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3674
3675         * reflection.c
3676         (write_generic_param_entry): Encode our custom attrs.
3677
3678         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3679
3680 2005-12-07  Martin Baulig  <martin@ximian.com>
3681
3682         * reflection.c (encode_new_constraint): Removed; we don't use the
3683         `NewConstraintAttribute' anymore.
3684
3685 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3686
3687         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3688         not fire a TypeResolve event when Assembly.GetType () is called.
3689
3690 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3691
3692         Beginning of support for nullable types in the runtime. Parts of
3693         this patch are from Martin.
3694
3695         * appdomain.c (MONO_CORLIB_VERSION): Bump
3696
3697         * domain.c (mono_init_internal): get the nullable type
3698
3699         * class.c (mono_class_is_nullable): New method
3700         (mono_class_get_nullable_param): New mehod
3701         (mono_class_create_generic): In types T? set cast_class to T
3702
3703         * class-internals.h (MonoDefaults): new nullable default class
3704         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3705         new methods.
3706
3707 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3708
3709         * metadata.c (select_container): New.  Refactor code to select the
3710         appropriate GenericContainer given the type of generic parameter
3711         we are looking for.
3712         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3713         not a MonoGenericContext.  Use select_container.  Update parameters.
3714         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3715         and MONO_TYPE_MVAR.
3716         (unwrap_arrays): Remove duplicate tests.
3717         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3718         generic instantiated class to find any arguments that are generic
3719         parameters.
3720         (mono_type_create_from_typespec_full): Use find_generic_param to
3721         avoid evicting some generic instantiations from the typespec
3722         cache.
3723
3724 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3725
3726         * reflection.c: fixed writing of doubles on ARM FPA.
3727
3728 2005-12-02  Robert Jordan  <robertj@gmx.net>
3729
3730         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3731
3732 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3733
3734         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3735         least on SUSE 10 they are not the same (on debian, they are just the
3736         same thing).
3737
3738 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3739
3740         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3741         DeclaringType for VARs and MVARs.
3742         * class.c (set_generic_param_owner): Fix initialization of owner
3743         fields.
3744
3745 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3746
3747         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3748
3749 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3750
3751         * threadpool.c: workaround for a bug that shows up on the Mac:
3752         select()+connect() on a blocking socket is not like it should
3753         be, so we proceed to connect() in that case, wasting the I/O
3754         threadpool thread until connect succeedes. Fixes bug #75436.
3755
3756 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3757
3758         * threadpool.c: fix typo when setting file descriptor states.
3759
3760 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3761
3762         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3763         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3764         create a temporary signature container.
3765         (mono_metadata_parse_generic_param): Update to changes.
3766         (mono_type_create_from_typespec_full): Update to changes.
3767         * loader.c (method_from_memberref): Don't use a
3768         MonoGenericContainer while parsing a memberref signature.
3769         (method_from_methodspec): Remove dead-store of the 'container'
3770         variable.  It's overwritten before use.
3771
3772         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3773         checks tighter.
3774         (mono_metadata_parse_generic_param): Likewise.
3775         * loader.c (find_method_in_class): Does not need a
3776         MonoGenericContainer.  Use 'mono_method_signature' rather than
3777         'mono_method_signature_full'.
3778         (find_method, mono_get_method_constrained, method_from_memberref):
3779         Update to changes.
3780
3781         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3782         owner-less generic-parameters are never evicted from the typespec
3783         cache.
3784
3785         * loader.c (method_from_memberref): Don't use the current context
3786         when parsing signatures.
3787         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3788
3789         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3790         side-effects in g_assert.
3791         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3792         that we don't potentially lose information.
3793
3794 2005-11-26  Dick Porter  <dick@ximian.com>
3795
3796         * icall.c:
3797         * threads.c: icalls to implement basic (ie, not named)
3798         System.Threading.Semaphore.
3799
3800 2005-11-24  Dick Porter  <dick@ximian.com>
3801
3802         * process.c
3803         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3804         Use GetProcessId() if it's available.
3805
3806 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3807
3808         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3809
3810 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3811             Ankit Jain  <jankit@novell.com>
3812
3813         * loader.c (mono_get_method_from_token): Initialize 'method' field
3814         of all generic parameters before parsing the signature.  Remove
3815         code that "fixed"-up MVAR references.
3816
3817 2005-11-23  Ankit Jain  <jankit@novell.com>
3818
3819         * metadata.c (mono_metadata_has_generic_params):
3820         (mono_metadata_load_generic_param_constraints):
3821         (mono_metadata_load_generic_params): Move duplicate code ...
3822         (mono_metadata_get_generic_param_row): ... here. Returns the
3823         first row-id in GenericParam table for a given owner (token).
3824         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3825         prototype.
3826
3827 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3828             Ankit Jain  <jankit@novell.com>
3829
3830         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3831         comparing VARs too.
3832         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3833         type->data.generic_param only if the type is an MVAR.
3834         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3835         leak owner-less VARs and MVARs into managed space.
3836
3837 2005-11-21  Martin Baulig  <martin@ximian.com>
3838
3839         * class-internals.h
3840         (MonoMethod): Moved the `generic_container' here from
3841         `MonoMethodNormal' since we now also need it for
3842         `MonoMethodPInvoke';
3843         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3844         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3845         an union containing both `MonoMethodNormal' and
3846         `MonoMethodPInvoke'.
3847
3848         * loader.c
3849         (mono_get_method_from_token): Allow implementing generic methods
3850         as interncalls.
3851
3852         * threads.c
3853         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3854         icall.
3855
3856 2005-11-17  Dick Porter  <dick@ximian.com>
3857
3858         * icall.c: 
3859         * process.h: 
3860         * process.c: Split the Process Start_internal icall into
3861         ShellExecuteEx_internal and CreateProcess_internal, which are
3862         called depending on whether UseShellExecute is true.  Fixes bug
3863         76670.
3864
3865         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3866
3867 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3868
3869         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3870         'msize' parameters, use the information in 'mspec' instead.
3871         (emit_object_to_ptr_conv): Ditto.
3872
3873         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3874         fields out of order. Fixes #76733.
3875
3876 2005-11-17  Ankit Jain  <jankit@novell.com>
3877
3878         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3879
3880 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3881
3882         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3883           bug #76575.
3884
3885 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3886
3887         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3888         for types with non-auto layout. Fixes #76717.
3889
3890 2005-11-16  Ankit Jain  <jankit@novell.com>
3891
3892         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
3893         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
3894         if generic_context is null.
3895           (mono_metadata_generic_param_equal): param->owner can be null.
3896           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
3897         null.
3898
3899 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3900
3901         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
3902         the correct value.
3903
3904 2005-11-15  Martin Baulig  <martin@ximian.com>
3905
3906         * object.c (set_value): Use mono_class_from_mono_type() instead of
3907         the hack for generic instances; fixes #76136.
3908
3909 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
3910
3911         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
3912         fields.
3913
3914         * image.c (load_metadata_ptrs): Initialize the new fields.
3915
3916         * reflection.c (create_dynamic_mono_image): Ditto.
3917
3918         * reflection.c (build_compressed_metadata): Use the new fields.
3919
3920         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
3921         icall.
3922
3923         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
3924         icall.
3925         
3926 2005-11-15  Ankit Jain  <jankit@novell.com>
3927             Raja R Harinath  <harinath@gmail.com>
3928
3929         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
3930         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
3931         new per-generic_container cache if the cached MonoType's context matches
3932         the current context.
3933           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
3934         to the expected context.
3935           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
3936
3937 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3938
3939         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
3940         we changed the signature of an icall.
3941         * icall.c: Modify to mono_double_ParseImpl return true/false 
3942         depending on the success, instead of throwing the exception. This will
3943         help us in Double.TryParse methods.
3944         
3945 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
3946
3947         * marshal.c (emit_marshal_object): Throw an exception when
3948         marshalling 'object' instead of crashing. Fixes #76696.
3949
3950 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3951
3952         * class-internals.h: Add prototype for mono_type_get_full_name ().
3953
3954 2005-11-11  Dick Porter  <dick@ximian.com>
3955
3956         * threads.c (mono_thread_manage): Make sure the main thread has
3957         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
3958
3959 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3960
3961         * loader.c (mono_loader_set_error_type_load): Log a warning to the
3962         console about the missing type.
3963         (mono_loader_set_error_method_load): Ditto.
3964
3965 2005-11-09  Miguel de Icaza  <miguel@novell.com>
3966
3967         * mono-config.c (mono_get_config_dir): Set the system defaults if
3968         none is specified.
3969
3970         * assembly.c (mono_set_dirs): New API entry point to set the
3971         assembly and the config directory in one call
3972
3973 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
3974
3975         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
3976         the ftnptr was created from a delegate in a domain other than the
3977         current domain. Fixes #75377.
3978
3979         * exception.h exception.c: Add mono_get_exception_not_supported ().
3980
3981 2005-11-08  Martin Baulig  <martin@ximian.com>
3982
3983         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
3984
3985 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
3986
3987         * security-manager.h: Added definitions to deal with strongname key 
3988         pairs bigger (and smaller) than 1024 bits.
3989         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
3990         adjust wrt the public key length being used.
3991
3992 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
3993
3994         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
3995           Windows build (r51396-51397).
3996
3997 2005-11-03  Martin Baulig  <martin@ximian.com>
3998
3999         * class.c (mono_class_setup_vtable_general): Also add generic
4000         methods to the vtable; fixes #76581.
4001
4002 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4003
4004         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4005         sure that we lookup GetString method from the System.Text.Encoding
4006         class, not the derived class or we get an empty method.
4007
4008         Fixed class #76612.
4009
4010 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4011
4012         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4013         if it has been previously set (embedders). 
4014
4015         Make mono_set_rootdir available also on Unix.
4016
4017 005-10-24  Robert Jordan  <robertj@gmx.net>
4018
4019         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4020
4021 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4022
4023         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4024         only calls which are made to native code use this flag.
4025
4026         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4027
4028 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4029
4030         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4031         Add support for FieldBuilders.
4032
4033 2005-10-29  Martin Baulig  <martin@ximian.com>
4034
4035         * mono-debug.c
4036         (mono_debug_using_mono_debugger): New public method; returns
4037         whether we're running inside the debugger.
4038
4039 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4040
4041         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4042         for Method/Constructor/FieldBuilders.
4043
4044 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4045
4046         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4047         and fields as well.
4048
4049 2005-10-26  Martin Baulig  <martin@ximian.com>
4050
4051         * mono-debug-debugger.c
4052         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4053
4054 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4055
4056         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4057         integer to isspace.
4058
4059 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4060
4061         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4062         when passing valuetypes byref. Fixes #76502.
4063
4064 2005-10-19  Jackson Harper  <jackson@ximian.com>
4065
4066         * profiler.c: Don't put a . in front of types that are not in a
4067         namespace.
4068
4069 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4070
4071         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4072
4073 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4074
4075         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4076         #76436.
4077         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4078
4079 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4080
4081         * assembly.c metadata-internals.h icall.c: Define an additional
4082         parameter for mono_assembly_name_parse_full, so we can avoid creating
4083         S.R.AssemblyName.Version when no version info wasn't passed.
4084         
4085 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4086
4087         * class.c (mono_type_get_full_name): Reimplement method that was
4088         removed. 
4089
4090         * image.c: Some docs
4091
4092 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4093
4094         * profiler.c (output_newobj_profile): Fix printing of Total memory
4095         on x86.
4096
4097 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4098
4099         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4100
4101 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4102
4103         * threads.c: remove debug output.
4104
4105 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4106
4107         * threads.c (mono_thread_manage): Fix crashes if more than 64
4108         threads need to be aborted. Hopefully fixes #75899.
4109
4110         * assembly.c (mono_stringify_assembly_name): New helper function.
4111
4112         * class.c: Use mono_stringify_assembly_name instead of the similar
4113         static function.
4114
4115         * assembly.h assembly.c: Add support for calling a postload search 
4116         hook if an assembly cannot be loaded.
4117
4118         * appdomain.c: Register new search hooks which call the AssemblyResolve
4119         events in AppDomain. Fixes #75231
4120
4121 2005-10-07  Martin Baulig  <martin@ximian.com>
4122
4123         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4124         methods without debug info.
4125
4126 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4127
4128         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4129         wrappers.
4130
4131 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4132
4133         * file-io.c: now that we return symlinks, use lstat and, when the file
4134         is a symbolic link, stat, to get the file attributes. Also avoid the
4135         conversion to/from utf16/external.
4136
4137 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4138
4139         * class.c (mono_class_layout_fields): Compute klass->has_references
4140         correctly if an embedded valuetype is not yet initialized. Fixes
4141         #76331.
4142
4143 2005-10-04  Martin Baulig  <martin@ximian.com>
4144
4145         * metadata.c
4146         (mono_metadata_load_generic_param_constraints): New public
4147         function; splitted the constraints loading out from
4148         mono_metadata_load_generic_params().
4149
4150         * class.c (mono_class_create_from_typedef): Call
4151         mono_metadata_load_generic_param_constraints() after setting up
4152         the type and creating our parent; fixes #75329.
4153
4154 2005-10-04  Martin Baulig  <martin@ximian.com>
4155
4156         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4157         non-dynamic parent classes.
4158
4159 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4160
4161         * file-io.c : win32 build fix (ETXTBSY seems not found).
4162
4163 2005-10-04  Martin Baulig  <martin@ximian.com>
4164
4165         * reflection.c
4166         (mono_image_get_methodspec_token): Make the cache actually work;
4167         fixes #75974.
4168
4169 2005-10-04  Martin Baulig  <martin@ximian.com>
4170
4171         * class.c (mono_class_name_from_token): Removed the unneccessary
4172         `MonoGenericContext *' argument.
4173
4174 2005-10-04  Martin Baulig  <martin@ximian.com>
4175
4176         * loader.c
4177         (method_from_methodspec): Make the caching work again; fixes the
4178         performance regression from #76262.
4179
4180 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4181
4182         * file-io.c:
4183         * file-io.h:
4184         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4185         GetFileSystemEntries that performs the same work but without going
4186         into io-layer, locking, etc.
4187
4188 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4189
4190         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4191         ThreadState_Stopped as well. Fixes #76047.
4192
4193 2005-09-29  Martin Baulig  <martin@ximian.com>
4194
4195         * class.c
4196         (inflate_generic_context): If the new context has a `gmethod', set
4197         its `container' that that gmethod's `container'.
4198
4199         * metadata.c
4200         (mono_metadata_parse_generic_param): Simplify things;
4201         `generic_container = generic_context->container;' is just fine.
4202
4203         * loader.c (method_from_methodspec): Code cleanups.
4204
4205 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4206
4207         * decimal.c: fix warning (and let gcc generate correct
4208         code on ARM with optimizations).
4209
4210 2005-09-28  Martin Baulig  <martin@ximian.com>
4211
4212         * loader.c
4213         (method_from_memberref): Added `MonoGenericContext *class_context'
4214         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4215         (method_from_methodspec): If we're a memberref, use the enclosing
4216         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4217
4218 2005-09-28  Martin Baulig  <martin@ximian.com>
4219
4220         * object.c (mono_runtime_invoke_array): Added support for
4221         MONO_TYPE_GENERICINST; fixes #75917.
4222
4223 2005-09-27  Martin Baulig  <martin@ximian.com>
4224
4225         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4226         `k->byval_arg.type' to determine the actual type.
4227
4228         * loader.c (method_from_methodspec): Removed some hacks.
4229
4230 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4231
4232         * class-internals.h (mono_field_is_deleted): Do the test for
4233         rtspecialname before we check the actual name of the field. This
4234         prevents us from dereferencing a pointer into the string table,
4235         saving us from accessing a few pages
4236
4237         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4238         macros. This will allow a deadlock debugger to easily be plugged
4239         in.
4240
4241 2005-09-27  Martin Baulig  <martin@ximian.com>
4242
4243         * loader.c (method_from_methodspec): Create a "signature"
4244         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4245
4246 2005-09-27  Martin Baulig  <martin@ximian.com>
4247
4248         * class.c
4249         (inflate_generic_class): Correctly set the new context's
4250         container.
4251
4252         * loader.c
4253         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4254         instead of a `MonoGenericContext *'.
4255         (mono_method_signature_full): Take a `MonoGenericContainer *'
4256         instead of a `MonoGenericContext *'.
4257
4258         * metadata.c
4259         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4260         instead of a `MonoGenericContext *'.
4261         (mono_metadata_parse_method_signature_full): Likewise.
4262
4263 2005-09-26  Martin Baulig  <martin@ximian.com>
4264
4265         * class.c
4266         (mono_class_from_generic_parameter): Set `klass->generic_container'
4267         (mono_class_from_generic_parameter): Likewise.
4268         (mono_bounded_array_class_get): We inherit the generic container
4269         from the element class.
4270
4271         * loader.c
4272         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4273         argument rather than computing it here.
4274         (method_from_memberref): Correctly set the generic context before
4275         parsing the signature.  Fixes #75681.
4276
4277 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4278
4279         * object.c (mono_class_has_special_static_fields): Fix warnings.
4280
4281 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4282
4283         * assembly.c: Add parse_public_key function, to
4284         par the public keys. Also added mono_assembly_name_parse_full,
4285         to define it the parsed key should be freed or not.
4286         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4287         to parse a long format assembly name.
4288         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4289         private, since calling it to preserve the key requires
4290         freeing it manually.
4291         
4292 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4293
4294         * locales.c : removed HAVE_ICU part.
4295
4296 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4297
4298         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4299         field_is_special_static if the klass has no special static fields.
4300
4301         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4302         (MonoCachedClassInfo): Likewise.
4303
4304         * object.c (mono_class_has_special_static_fields): New helper function.
4305
4306 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4307
4308         * class.c (mono_class_create_from_typedef): Don't call 
4309         interfaces_from_typedef_full for enums.
4310         (mono_class_create_from_typedef): Compute the base types of enums directly
4311         without calling mono_class_setup_fields ().
4312         (mono_class_find_enum_basetype): New helper function.
4313
4314         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4315         one place inside the string heap.
4316         
4317 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4318
4319         * class.c: locking fixes, code cleanups, some docs added.
4320         Allocate some data structures in the image mempool.
4321
4322 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4323
4324         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4325         the example code.
4326         
4327 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4328
4329         * class-internals.h, class.c, reflection.c: reduce memory taken by
4330         MonoClass.
4331
4332 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4333
4334         * metadata.c, metadata.h, loader.h: documentation updates, code and
4335         API cleanups.
4336
4337 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4338
4339         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4340         the example code.
4341
4342         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4343         page faults caused by the runtime while reading metadata.
4344
4345 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4346
4347         * socket-io.c: the field names were changed 3 months ago and no one
4348         realized until bug #76077 got filed!
4349
4350 2005-09-20  Martin Baulig  <martin@ximian.com>
4351
4352         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4353
4354 2005-09-20  Martin Baulig  <martin@ximian.com>
4355
4356         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4357         write the rank into the class entry.
4358
4359 2005-09-20  Martin Baulig  <martin@ximian.com>
4360
4361         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4362
4363 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4364
4365         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4366
4367         * icall.c (custom_attrs_defined_internal): New icall.
4368
4369         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4370         function.
4371         (mono_custom_attrs_construct_by_type): New helper function.
4372
4373 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4374
4375         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4376         terminate the resulting string. Fixes #76123.
4377
4378 2005-09-16  Martin Baulig  <martin@ximian.com>
4379
4380         * mono-debug.c
4381         (mono_debug_add_method): Ignore inflated methods for the moment.
4382
4383 2005-09-14  Martin Baulig  <martin@ximian.com>
4384
4385         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4386
4387 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4388
4389         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4390         return a success/failure indication.
4391         (mono_metadata_interfaces_from_typedef_full): Ditto.
4392         (get_constraints): Ditto.
4393
4394 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4395
4396         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4397         
4398         * marshal.c (emit_marshal_array): Add support for returning string
4399         arrays from delegates. Fixes #76063.
4400
4401         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4402
4403 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4404
4405         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4406         icall.
4407
4408 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4409
4410         * reflection.c icall.c: Fix after mono_get_exception_type_load
4411         signature change.
4412
4413         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4414         (mono_assembly_load_reference): Use the new helper.
4415
4416         * class-internals.h (MonoLoaderError): New structure containing 
4417         information about type loading errors.
4418
4419         * class-internals.h loader.c: Add APIs to store per-thread loader
4420         error information.
4421
4422         * loader.c class.c: Set the loader error if needed.
4423
4424         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4425
4426 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4427
4428         * decimal.c: fixed to handle the broken ARM fp format.
4429
4430 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4431
4432         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4433         broken.
4434
4435 2005-09-06  Martin Baulig  <martin@ximian.com>
4436
4437         * domain.c (supported_runtimes): Added v2.0.50727.
4438
4439 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4440
4441         * culture-info.h: reduce the size of some structures.
4442
4443 2005-09-05  Martin Baulig  <martin@ximian.com>
4444
4445         Reflect latest API changes in the August CTP.
4446
4447         * icall.c
4448         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4449         ("MonoType.HasGenericArguments"): Removed.
4450         ("MonoMethod.BindGenericParameters"): Renamed to
4451         "MakeGenericMethod".
4452         ("MethodBuilder.BindGenericParameters"): Renamed to
4453         "MakeGenericMethod".    
4454
4455 2005-09-05  Martin Baulig  <martin@ximian.com>
4456
4457         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4458
4459 2005-09-05  Martin Baulig  <martin@ximian.com>
4460
4461         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4462
4463         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4464         generic_container is non-NULL.
4465
4466 2005-09-05  Martin Baulig  <martin@ximian.com>
4467
4468         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4469
4470         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4471
4472 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4473
4474         * reflection.c (encode_locals,
4475         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4476         for large generic types.
4477
4478 2005-09-05  Martin Baulig  <martin@ximian.com>
4479
4480         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4481
4482         * class.c (mono_dup_array_type): New public method.
4483         (mono_metadata_signature_deep_dup): New public method.
4484         (dup_type): Correctly duplicate array and function types.
4485
4486 2005-09-05  Martin Baulig  <martin@ximian.com>
4487
4488         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4489
4490         * reflection.c (get_default_param_value_blobs): Handle generic types
4491         and generic methods.
4492
4493 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4494
4495         * class.c: Fixed error reporting (method/class were inversed) for 
4496         inheritance demands.
4497         * security-manager.c|h: Added the AppDomain when calling the managed
4498         System.Security.SecurityManager.InheritanceDemand method.
4499
4500 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4501
4502         * reflection.c (encode_marshal_blob): 'marshaltype' and
4503         'marshaltyperef' are alternate sources for the custom marshaler
4504         name.
4505
4506 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4507
4508         * class.c: fix creation of array classes with rank == 1
4509         (patch by Ankit Jain <jankit@novell.com>).
4510
4511 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4512
4513         * object.c: fix check for creating the bound data for arrays vs
4514         szarrays.
4515
4516 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4517
4518         * object.c: configuration file name is now based on the executable name,
4519         not the image name. Fixes bug #75931.
4520
4521 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4522
4523         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4524         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4525
4526 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4527
4528         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4529
4530 2005-08-24  Ankit Jain  <jankit@novell.com>
4531             Raja R Harinath  <rharinath@novell.com>
4532
4533         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4534           called by it recursively.
4535           (mono_class_init): Remove special case in pending_init handling, since it's
4536           superseded by the fix to mono_class_from_typeref.
4537
4538 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4539
4540         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4541         BROKEN_THREAD_START stuff.
4542
4543 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4544
4545         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4546         trampoline.
4547
4548         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4549         
4550         * object.c (mono_delegate_ctor): Replace the original function address with
4551         a delegate trampoline.
4552
4553 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4554
4555         * icall.c: add boolean argument to base64_to_byte_array and 
4556         InternalFromBase64String to control whether a whitespace-only string
4557         is allowed (or should casue a FormatException to be thrown). We need
4558         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4559         to match the MS behaviour in both profiles.
4560         * appdomain.c: Bump corlib version.
4561
4562 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4563
4564         This patch implements a big portion of publisher policy
4565         support, used to bind assembly versions and redirect
4566         one assembly from version A to version B.
4567
4568         * assembly.c:
4569         New GSList loaded_assembly_bindings, for storing the cached
4570         assembly bindings.
4571         (assembly_binding_maps_name): New static function for checking if a 
4572         assembly binding information maps an assembly name.
4573         (mono_assembly_binding_info_free): New function for freeing
4574         assembly binding information resources.
4575         (get_publisher_policy_info): New static function for retrieving 
4576         assembly binding information from a MonoImage.
4577         (compare_versions): New static function for comparing an assembly
4578         binding information data and the version of an assembly name.
4579         (check_policy_versions): New static function for checking if an
4580         assembly binding info mapping an assembly name is valid for it.
4581         (mono_assembly_load_publisher_policy): New static function for
4582         loading the 'policy.major.minor.MyAssembly' image for an assembly
4583         with an assembly name 'aname'.
4584         (mono_assembly_bind_version): New static function for updating
4585         assembly redirection.
4586         (mono_assembly_apply_binding): New static function for applying
4587         assembly binding.
4588         (search_binding_loaded): New static function for searching 
4589         loaded assembly binding infos in the cache domain.
4590         (mono_assembly_load_full): Don't apply assembly binding for
4591         reflection only assemblies.
4592
4593         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4594         which contains information about assembly binding. Also
4595         declare signature for mono_config_parse_publisher_policy ()
4596         function, used to retrieve pub policy info.
4597         
4598         * mono-config.c:
4599         (publisher_policy_start): New static function used to parse publisher 
4600         policy config files.
4601         (publisher_policy_parser): New static MonoParseHandler containing 
4602         the functions used when parsing config files.
4603         (mono_config_parse_publisher_policy): New function for parsing
4604         publisher policy files.
4605         
4606 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4607
4608         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4609
4610         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4611
4612         * object.c (mono_get_addr_from_ftnptr): New helper function.
4613
4614         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4615
4616         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4617
4618 2005-08-19  Dick Porter  <dick@ximian.com>
4619
4620         * threads.c, threads.h, appdomain.c, appdomain.h,
4621         profiler-private.h, monitor.c, object.c, object-internals.h,
4622         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4623         store the thread ID, so it can hold a 64 bit value if needed.
4624
4625 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4626
4627         * reflection.c (mono_reflection_create_dynamic_method): Store the
4628         handle class into the method references as well so ldtoken works in
4629         dynamic methods.
4630
4631         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4632         types.
4633
4634 2005-08-19  Ankit Jain <jankit@novell.com>
4635
4636         Fix #75847.
4637         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4638           here rather than using the method signature of a arbitrary function
4639           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4640           two arguments.
4641           Hack done with Harinath.
4642
4643 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4644
4645         * threadpool.c: disable printing stack traces when we get a exception
4646         in a threadpool thread. I need to do more testing to figure out which
4647         cases actually print this. Fixes bug #75828.
4648
4649 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4650
4651         * icall.c: there might be ignored whitespace after the last '='. This
4652         fixes length computation and bug #75840.
4653
4654 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4655
4656         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4657         well. Fixes #75809.
4658
4659         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4660         #75784.
4661         
4662         * reflection.c (create_custom_attr_data): Ditto.
4663
4664 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4665
4666         * locales.c, culture-info.h : removed RegionLCIDMap.
4667         * culture-info-tables.h : regenerated.
4668
4669 2005-08-16  Martin Baulig  <martin@ximian.com>
4670
4671         * class.c (mono_type_get_name_recurse): Small fix.
4672
4673 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4674
4675         * locales.c : indentation fixie.
4676
4677 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4678
4679         * object-internals.h,
4680           locales.h,
4681           locales.c,
4682           culture-info.h,
4683           icall.c : added RegionInfo table support.
4684         * culture-info-table.h : regenerated for region support.
4685
4686 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4687
4688         * reflection.c (resolve_object): handle all kinds of MonoMethod
4689         including generic ones
4690
4691 2005-08-12  Ankit Jain <jankit@novell.com>
4692
4693         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4694           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4695
4696 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4697
4698         * process.c: Don't close a thread handle when it's NULL. This is a
4699         workaround for bug #75733.
4700
4701 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4702
4703         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4704
4705 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4706
4707         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4708
4709 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4710
4711         * threadpool.c: if a work item in the thread pool has a callback that
4712         catches a exception, don't propagate it after invoking the callback.
4713         Fixes bug #75336.
4714
4715 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4716
4717         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4718
4719         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4720
4721         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4722
4723         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4724
4725 2005-08-03  Ankit Jain  <jankit@novell.com>
4726
4727         Fix #75683.
4728         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4729           PInvoke calling convention is 0.
4730
4731 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4732
4733         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4734         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4735
4736 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4737
4738         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4739         to handle threads not started by the GC (patch by Michael Meeks
4740         <michael.meeks@novell.com>).
4741
4742 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4743
4744         * reflection.c: Make buffer used in emitting types larger for some
4745         big generic types (patch by Michal Moskal).
4746
4747 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4748
4749         * mono-debug.c: Fix some (not all) alignment problems.
4750
4751 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4752
4753         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4754         Invoke mono_image_load_from_data_full passing the refonly
4755         parameter.
4756
4757         * assembly.c
4758         (mono_assembly_open_from_bundle): Add the refonly argument, 
4759         in order to pass it to other methods it calls to.
4760         (do_mono_assembly_open): Add the refonly argument, in order 
4761         to pass it to other methods it calls to.
4762         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4763         the refonly parameter to it.
4764
4765         * image.c: Add loaded_images_refonly_hash and
4766         loaded_images_refonly_guid_hash to cache the reflection
4767         only loaded images.
4768         (mono_images_init): Initialize the hash tables used for
4769         caching the reflection only images.
4770         (load_modules): Invoke mono_image_open_full passing the refonly
4771         parameter to load the modules the correct way.
4772         (build_guid_table): Add the refonly argument, to re-build the 
4773         correct hash table.
4774         (do_mono_image_open): Added the refonly argument, in order to
4775         define it for the loaded image.
4776         (mono_image_loaded_full): New function, which receives an
4777         additional parameter to look for the image in the refonly or
4778         non-refonly section.
4779         (mono_image_loaded): Updated, using mono_image_loaded_full.
4780         (mono_image_loaded_by_guid_full): The same case that happens
4781         with mono_image_loaded_full.
4782         (mono_image_loaded_by_guid): Likewise.
4783         (register_image): Use the ref_only variable inside MonoImage
4784         to decide in which hash table store the current image.
4785         (mono_image_open_from_data_full): Rename
4786         mono_image_open_from_data to mono_image_open_from_data_full,
4787         adding the refonly argument, to define the ref_only variable 
4788         inside MonoImage.
4789         (mono_image_open_from_data): Return 
4790         mono_image_open_from_data_full.
4791         (mono_image_open_full): Rename mono_image_open to
4792         mono_image_open_full, receiving the new refonly argument,
4793         to pass it to inner methods.
4794         (mono_pe_file_open): Update this function, to open
4795         a MonoImage as a non-refonly image.
4796         (mono_image_close): Use the refonly variable inside
4797         MonoImage to remove the image from the correct caches.
4798
4799         * image.h: Add the signatures of mono_image_open_full,
4800         mono_image_open_from_data_full, mono_image_loaded_full,
4801         mono_image_loaded_by_guid_full.
4802
4803         * metadata-internals.h: Add the ref_only field to 
4804         MonoImage.
4805         
4806 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4807
4808         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4809         Fix the last behavior, which used to load the assemblies and
4810         extract MonoReflectionAssemblyName information, instead of
4811         extract it from the metadata tables. Needed for Reflection
4812         Only assemblies.
4813         
4814 2005-07-29  Martin Baulig  <martin@ximian.com>
4815
4816         * mono-debug-debugger.c
4817         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4818         not initialized.
4819
4820         * mono-debug.c
4821         (mono_debug_address_from_il_offset): Check whether we have
4822         debugging support before attempting to take the lock.
4823         (mono_debug_source_location_from_address): Likewise.
4824         (mono_debug_source_location_from_il_offset): Likewise.
4825         (mono_debug_il_offset_from_address): Likewise.
4826         (mono_debug_address_from_il_offset): Likewise.
4827
4828 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4829
4830         * class.c (mono_class_from_name_case): Add support for dynamic images.
4831         Fixes #75650.
4832
4833         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4834         for #75479.
4835
4836 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4837         
4838         * reflection.c (mono_method_get_object): Fix warning.
4839
4840 2005-07-28  Martin Baulig  <martin@ximian.com>
4841
4842         * mono-debug.c
4843         (mono_debug_add_wrapper): Also write the wrapper type.
4844
4845 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4846
4847         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4848         
4849         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4850         data indicates the class has none.
4851
4852 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4853
4854         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4855         loader lock with the debugger lock. Prevents deadlocks for beagle.
4856
4857         Beagle can now run on an smp box for a weekend without any
4858         issues. Woohoo!
4859
4860 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4861
4862         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4863         in a module. Fixes #75629.
4864
4865 2005-07-26  Martin Baulig  <martin@ximian.com>
4866
4867         * mono-debug.c (mono_debug_add_wrapper): New static method.
4868         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4869         interncall or a wrapper.
4870
4871         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4872         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4873         (MONO_DEBUGGER_VERSION): Bump to 51.
4874
4875         * mono-debug-debugger.c
4876         (mono_debugger_add_type): Removed this empty function.
4877         (mono_debugger_add_method): Likewise.
4878
4879 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4880
4881         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4882         before accessing method->slot.
4883
4884 2005-07-21  Jb Evain  <jbevain@gmail.com>
4885
4886         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4887         Fixes #75010.
4888
4889 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4890
4891         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
4892         #75587.
4893
4894 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
4895
4896         * image.h image.c: Add mono_image_get_guid () API function.
4897
4898 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
4899
4900         There were issues when multiple threads tried to load
4901         assemblies. A deadlock was created between assemblies_mutex and
4902         mono_domain_assemblies_lock. This fixes the issue by making the
4903         assembly ref counting be lock free. See bug 75586.
4904         
4905         * image.c (mono_image_close): The add ref function here was using
4906         Interlocked operations while the unref was using a mutex and a
4907         --. I don't think this was ever a bug that would be exposed in a
4908         non-pendantic way (ie, by an embedder doing a ref on one thread
4909         and an unref on another), but for the sake of correctness, this is
4910         now Interlocked.
4911
4912         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
4913         (mono_assembly_load_reference): Call mono_assembly_addref rather
4914         than touching the refcount ourselves.
4915         (mono_assembly_close): Use InterlockedDecrement to unref the
4916         assembly. Don't acquire the lock unless it is actually needed.
4917
4918 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4919
4920         * class.c (mono_class_layout_fields): Fix calculation of has_references
4921         for generic types.
4922
4923 2005-07-12  Martin Baulig  <martin@ximian.com>
4924
4925         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4926
4927         * metadata.c
4928         (mono_type_hash): Provide better hashing for generic instances.
4929         (mono_generic_inst_hash): Improve hashing.
4930         (mono_generic_class_hash): Likewise.
4931
4932         * reflection.c (mymono_metadata_type_hash): Improve hashing for
4933         generic instances.
4934
4935 2005-07-12  Martin Baulig  <martin@ximian.com>
4936
4937         * reflection.c (mono_reflection_create_runtime_class): Remove the
4938         hack for generic type definitions and non-`Run' assemblies.
4939         (mono_reflection_bind_generic_parameters): Also use
4940         `klass->wastypebuilder' to check for TypeBuilders.
4941
4942 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4943
4944         * class.c (mono_class_layout_fields): Fix calculation of has_references
4945         for generic types.
4946
4947         * class.c (inflate_generic_class): Fix a leak.
4948         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
4949         for generic types.
4950
4951 2005-07-11  Martin Baulig  <martin@ximian.com>
4952
4953         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
4954         on error.
4955
4956 2005-07-11  Martin Baulig  <martin@ximian.com>
4957
4958         * loader.c (find_method): Also lookup in
4959         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
4960
4961 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4962
4963         * appdomain.c (mono_domain_unload): Don't free the error message
4964         before passing it to mono_get_exception_...
4965
4966         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
4967         
4968 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
4969
4970         * threads.c: try to better guess an available RT signal (bug #75387).
4971
4972 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4973
4974         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
4975         and CACHE_OBJECT.
4976
4977 2005-07-07  Martin Baulig  <martin@ximian.com>
4978
4979         * class.c (mono_type_get_name_full): Return NULL for
4980         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
4981         fixes #75408.
4982
4983 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4984
4985         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
4986         exit the appdomain as well being aborted.
4987
4988         * threadpool.c: Create all threadpool threads inside the root appdomain, and
4989         change back to the root domain after calling managed code. This enables
4990         appdomains using threadpools to be unloaded.
4991
4992 2005-07-07  Martin Baulig  <martin@ximian.com>
4993
4994         * class-internals.h
4995         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
4996         into `MonoDynamicGenericClass' since we only need it for dynamic
4997         types.
4998
4999         * reflection.c (mono_class_bind_generic_parameters): We don't need
5000         to compute the `parent' here.
5001
5002 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5003
5004         * culture-info-table.h : regenerated.
5005
5006 2005-07-06  Martin Baulig  <martin@ximian.com>
5007
5008         * icall.c
5009         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5010
5011         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5012
5013 2005-07-06  Martin Baulig  <martin@ximian.com>
5014
5015         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5016         we're doing a signature-only comparision; fixes #74945.
5017
5018 2005-07-06  Martin Baulig  <martin@ximian.com>
5019
5020         * class-internals.h (MonoGenericClass): Moved some things out into
5021         a new `MonoInflatedGenericClass' type.  
5022         (MonoInflatedGenericClass): New type; the `klass' of a
5023         `MonoGenericClass' is now computed lazyly in
5024         mono_get_inflated_generic_class().      
5025
5026         * class.c (mono_get_inflated_generic_class): New public function.
5027         (mono_class_inflate_generic_method): Removed the unused
5028         `MonoClass *' argument.
5029         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5030         all the methods.
5031         (mono_class_create_generic): Make this static and merge it with
5032         mono_class_create_generic_2(); we're now called automatically from
5033         mono_get_inflated_generic_class().
5034
5035         * loader.c (mono_method_signature): Call
5036         mono_get_inflated_method() here.
5037
5038 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5039
5040         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5041         type of fields with RVA.
5042
5043         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5044         for this pseudo class.
5045         (my_mono_class_from_generic_parameter): Likewise.
5046         (mono_class_init): Allow interfaces to have cctors.
5047
5048 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5049
5050         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5051         lazily for AOT methods.
5052
5053 2005-07-05  Martin Baulig  <martin@ximian.com>
5054
5055         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5056         returns FALSE for a successful match, not TRUE.
5057
5058 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5059
5060         * loader.c (mono_method_get_index): Optimize this a bit.
5061
5062 2005-07-04  Martin Baulig  <martin@ximian.com>
5063
5064         * class.c
5065         (class_compute_field_layout): Move the check for generic type
5066         definitions into mono_class_layout_fields().  Fixes #74684.
5067         (mono_class_from_generic_parameter): Correctly compute
5068         `klass->parent'; fixes #75457.
5069
5070         * reflection.c (register_assembly, register_module): Make sure
5071         `domain->rejobject_hash' is already created.
5072
5073 2005-07-02  Martin Baulig  <martin@ximian.com>
5074
5075         * class-internals.h
5076         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5077         `MonoDynamicGenericClass'.      
5078
5079 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5080
5081         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5082         returned by a field getter is null, since null is a valid value.
5083
5084 2005-07-01  Martin Baulig  <martin@ximian.com>
5085
5086         * reflection.c (mono_reflection_generic_class_initialize): Update
5087         the `dgclass->fields [i].parent' to the correct class.
5088         (mono_image_get_fieldref_token): Use the declaring type, not the
5089         reflected type.
5090
5091 2005-07-01  Martin Baulig  <martin@ximian.com>
5092
5093         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5094
5095 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5096
5097         * threads.c (thread_cleanup): assert that thread != NULL
5098         (wait_for_tids_or_state_change): We were using the wrong variable
5099         when accessing wait->threads. `i' was always out of the bounds of
5100         the array.
5101
5102 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5103
5104         * loader.c: map user32 and kernel32 to libMonoSupportW
5105
5106 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5107
5108         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5109
5110 2005-06-28  Martin Baulig  <martin@ximian.com>
5111
5112         * loader.c (method_from_methodspec): Fix #75334.
5113
5114 2005-06-28  Martin Baulig  <martin@ximian.com>
5115
5116         Fix #74953 - Arrays now implement the generic IList<T> interface
5117         on the 2.0 platform.
5118
5119         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5120
5121         * reflection.c (mono_class_bind_generic_parameters): New public
5122         function; similar to mono_reflection_bind_generic_parameters(),
5123         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5124
5125         * domain.c (mono_init_internal): Try to initialize.
5126         `mono_defaults.generic_array_class' here; this'll only succeed if
5127         we're using the 2.0 corlib.
5128
5129         * icall.c
5130         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5131         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5132         (mono_lookup_internal_call): Added support for nested classes.
5133
5134         * loader.c
5135         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5136         we're an interncall and have generic arguments.
5137
5138         * class.c
5139         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5140         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5141         instance of System.Array.InternalArray<T> for arrays, so they
5142         implement the generic IList<T> interface.
5143
5144 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5145
5146         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5147         (chastamar@yahoo.com). Fixes #75374.    
5148
5149 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5150
5151         * culture-info-table.h: regenerated.
5152
5153 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5154
5155         * icall.c: handle spaces correctly for base64 strings.
5156
5157 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5158
5159         * *.c: Kill some warnings.
5160
5161 2005-06-23  Duncan Mak  <duncan@novell.com>
5162
5163         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5164         that this builds on Solaris 10 (x86).
5165
5166 2005-06-23  Martin Baulig  <martin@ximian.com>
5167
5168         * class.c
5169         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5170         generic type definitions.
5171
5172 2005-06-23  Martin Baulig  <martin@ximian.com>
5173
5174         Fix #75331.
5175
5176         * metadata.c (mono_class_get_overrides): Renamed to
5177         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5178         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5179         pass it to mono_get_method_full().
5180
5181 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5182
5183         * reflection.c (mono_reflection_create_runtime_class): take the
5184         mono_domain_lock in this method. Prevents deadlocks
5185
5186 2005-06-22  Martin Baulig  <martin@ximian.com>
5187
5188         * loader.c (method_from_methodspec): Fix #75330.
5189
5190 2005-06-22  Martin Baulig  <martin@ximian.com>
5191
5192         * reflection.c (type_get_qualified_name): Use
5193         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5194         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5195         argument; use it if we don't have an assembly name.
5196
5197 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5198
5199         * object.c: In mono_message_init, set "copy out" flag for in
5200         parameters with the [Out] flag.
5201
5202 2005-06-21  Martin Baulig  <martin@ximian.com>
5203
5204         * class.c
5205         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5206         and MONO_TYPE_PTR.
5207
5208 2005-06-21  Martin Baulig  <martin@ximian.com>
5209
5210         * class.c (mono_class_init): Don't initialize `class->fields' for
5211         generic instances since they're initialized again in
5212         compute_field_layout(). 
5213         (compute_field_layout): Set the field's `generic_info' here; fix
5214         #75320. 
5215
5216 2005-06-21  Martin Baulig  <martin@ximian.com>
5217
5218         * class-internals.h
5219         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5220
5221         * metadata.c (mono_metadata_generic_method_equal): Also
5222         distinguish the `generic_class'; fixes #75334.
5223
5224 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5225
5226         * domain.c:
5227         * appdomain.c:
5228         * domain-internals.h:
5229         * reflection.c: 'domain_assemblies' field is now protected by its own
5230         lock. Don't call into managed code to run the AssemblyLoad event if we
5231         now there are no registered delegates for it.
5232
5233 2005-06-20  Martin Baulig  <martin@ximian.com>
5234
5235         * class.c (mono_class_is_assignable_from): Use a custom version of
5236         mono_class_has_parent() to make things work for generic instances;
5237         fix #75300.
5238
5239 2005-06-20  Martin Baulig  <martin@ximian.com>
5240
5241         * loader.c (method_from_methodspec): Apply a patch from
5242         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5243
5244 2005-06-20  Martin Baulig  <martin@ximian.com>
5245
5246         * class.c (mono_class_init): Reverted Zoltan's last change; it
5247         breaks generics.
5248
5249 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5250
5251         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5252
5253 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5254
5255         * socket-io.c: fix the index in the socket array for writable/error
5256         sockets. Fixes bug #75306.
5257
5258 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5259
5260         * class.c (mono_class_init): Allow interfaces to have static ctors.
5261
5262 2005-06-17  Martin Baulig  <martin@ximian.com>
5263
5264         * loader.c (method_from_methodspec): Use `context->container' when
5265         parsing the `gmethod->inst'.
5266
5267 2005-06-17  Martin Baulig  <martin@ximian.com>
5268
5269         * class.c (mono_type_get_name_recurse): Don't add the assembly
5270         name for type arguments.
5271
5272 2005-06-15  Martin Baulig  <martin@ximian.com>
5273
5274         * reflection.c (mono_image_get_inflated_method_token): Encode
5275         correct klass; fixes #75260.
5276
5277 2005-06-13 Michal Moskal <malekith@nemerle.org>
5278
5279         * icall.c: Make GetCorrespondingMethod/Constructor take
5280         MonoReflectionMethod method not MonoMethod. Removed
5281         MonoType.GetCorrespondingField, and make
5282         MonoGenericType.GetCorrespondingField take name not
5283         MonoClassField.
5284
5285 2005-06-13  Michal Moskal <malekith@nemerle.org>
5286
5287         * reflection.c (field_encode_signature, encode_locals):
5288          Make sizes of buffers for types larger (for big generic types).
5289          (create_generic_typespec,
5290          mono_reflection_sighelper_get_signature_local,
5291          mono_reflection_sighelper_get_signature_field):
5292          Add asserts for too small buffers.
5293
5294 2005-06-15  Martin Baulig  <martin@ximian.com>
5295
5296         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5297         if our parent is not a dynamic type.
5298
5299 2005-06-15  Martin Baulig  <martin@ximian.com>
5300
5301         * class-internals.h (MonoTypeNameFormat): New enum.
5302
5303         * class.c
5304         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5305         (mono_type_get_full_name): Removed.
5306         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5307         argument instead of the boolean's.
5308
5309         * icall.c (ves_icall_System_MonoType_getFullName):
5310         Added `gboolean assembly_qualified'.    
5311
5312         * reflection.h
5313         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5314
5315         * reflection.c (mono_reflection_parse_type): Parse the new type
5316         name format.
5317
5318 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5319
5320         * icall.c: no need to convert from utf16 to utf8 and then back again
5321         after the call to GetLogicalDrives.
5322
5323 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5324
5325         * icall.c: frombase64. Fix problems exposed by new tests.
5326
5327 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5328
5329         * icall.c: added internal calls for converting char [] and strings in
5330         base64 into byte [].
5331
5332 2005-06-10  Martin Baulig  <martin@ximian.com>
5333
5334         * class.c (mono_class_create_generic_2): Read the nested classes
5335         from the metadata rather than from `gklass->nested_classes' since
5336         `gklass' might not be initialized yet.
5337
5338 2005-06-09  Duncan Mak  <duncan@novell.com>
5339
5340         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5341         all public headers. Fixes #74919.
5342
5343 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5344
5345         * domain.c: The key for proxy_vtable_hash is now a pointer
5346         array. Added new GHashFunc and GCompareFunc functions for this.
5347
5348         * class.h: The list of interfaces in MonoRemoteClass is known in
5349         advance and can't grow (we create a new MonoRemoteClass if needed),
5350         so now the interface array can be allocated together with
5351         MonoRemoteClass.
5352         
5353         * object.c: Added a new method create_remote_class_key.
5354         Fixed mono_remote_class so it does not depend on
5355         mono_upgrade_remote_class.
5356         Removed extend_interface_array.
5357         Added new method clone_remote_class(), which makes a copy of a remote
5358         class and adds a new interface or class to it.
5359         mono_upgrade_remote_class() now creates a new remote class (or gets
5360         it from the cache) if an vtable upgrade is needed. In this way
5361         we make sure that other objects sharing the same remote class
5362         don't get the new vtable with unwanted interfaces.
5363         
5364         * object-internals.h:
5365         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5366         
5367         * marshal.c: Track changes in mono_upgrade_remote_class().
5368
5369 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5370         * icall.c: Add runtime methods for obtaining members of inflated
5371         class, which were created from supplied non-inflated members. It
5372         is used in internal Get{Method,Constructor,Field} methods in
5373         System.Type
5374
5375 2005-06-09  Martin Baulig  <martin@ximian.com>
5376
5377         * reflection.c
5378         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5379
5380 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5381         * reflection.c (mono_image_basic_init): Define
5382         Version in MonoDynamicAssembly. 
5383         
5384 2005-06-08  Martin Baulig  <martin@ximian.com>
5385
5386         Fix #75136.
5387
5388         * loader.c
5389         (mono_method_signature_full): New public method; takes a
5390         `MonoGenericContext *'.
5391         (find_method): Use mono_method_signature_full() and pass the
5392         klass'es context to it.
5393
5394         * class.c (mono_class_is_inflated_method): Use
5395         mono_method_signature_full() and pass the context to it.
5396
5397 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5398
5399         * object.c: add proper locking in mono_remote_class_vtable(),
5400         fixes possible memory corruption.
5401
5402 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5403
5404         * marshal.c (mono_remoting_marshal_init): set
5405         initialized after initialization.
5406
5407 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5408
5409         * locales.c : hush.
5410
5411 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5412
5413         * object.c (extend_interface_array): fix really silly
5414         memory corrupting / comparison bug.
5415
5416 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5417
5418         * reflection.c: Functions added to support the creation
5419         of CustomAttributeData, which includes Attribute data
5420         used by ReflectionOnly methods.
5421
5422         * reflection.h:  mono_reflection_get_custom_attrs_data and
5423          mono_custom_attrs_data_construct added (functions exposed).
5424
5425          * icall.c: Added mono_reflection_get_custom_attrs_data
5426          as icall.
5427         
5428 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5429
5430         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5431         lupus's request.
5432
5433 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5434
5435         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5436
5437         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5438         dynamic DllImportAttribute.
5439
5440         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5441         dynamic DllImportAttribute.
5442
5443         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5444         Fixes #75162.
5445
5446 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5447
5448         * threads.c: avoid segfault when an unstarted thread is aborted.
5449
5450 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5451
5452         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5453         Returns the name and version of the runtime for reporting.
5454
5455 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5456
5457         * appdomain.c: bump corlib version.
5458         * object-internals.h: new field in MonoReflectionAssembly.
5459
5460 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5461
5462         * object-internals.h: Carlos forgot to add this field.
5463
5464 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5465
5466         * icall.c: Added create_version to create instances
5467         of Version of MonoReflectionAssemblyName. This change helps
5468         the AssemblyName tests to keep running fine.
5469         
5470 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5471   
5472         * object.c (mono_method_return_message_restore): A somehow less
5473         intrusive fix for #75138.
5474
5475 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5476
5477         * object.c (mono_method_return_message_restore): Fix computation
5478         of expected number of out args.
5479
5480 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5481
5482         * reflection.c (mono_image_get_method_info): Fix the case when the
5483         charset is empty.
5484
5485 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5486
5487         * object.c: Added missing null check in
5488           mono_method_return_message_restore.
5489
5490 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5491
5492         * reflection.c (mono_image_get_method_info): Handle the case when
5493         dllentry is empty.
5494
5495 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5496
5497         * object.c: When creating the vtable for a proxy, take into account
5498         all inherited interfaces, not only the ones registered in
5499         iclass->interfaces. This fixs bug #74996.
5500         Also, in mono_method_return_message_restore, verify that the array
5501         of out args has the expected lengh.
5502
5503 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5504
5505         * socket-io.c: update the timeout in Poll when the call is interrupte.
5506
5507 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5508
5509         * socket-io.c: support abort/suspend in Select_internal after last
5510         change.
5511
5512 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5513
5514         * threadpool.c: remove warning.
5515
5516 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5517
5518         * icall.c:
5519         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5520         removing the 1024 limit from select(). Runtime part of the fix for
5521         bug #71203.
5522
5523 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5524
5525         * socket-io.c: when resolving the addresses for the same
5526         host returned by gethostname(), get the local IPs from the interface
5527         list. Loopback addresses are discarded if the are interfaces up with
5528         non-loopback ones. Fixes bug #63265.
5529
5530 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5531
5532         * appdomain.c, verify.c, object-internals.h, reflection.c:
5533         bumped corlib number to 36, and added new extra_flags field
5534         to ReflectionMethodBuilder and friends.  Fixes #75060.
5535
5536 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5537
5538         * gc.c: register a new weak link only if the object is non-null
5539         (fixes bug#75047).
5540
5541 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5542
5543         * culture-info.h : short time pattern too.
5544
5545 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5546
5547         * culture-info.h : expand long time pattern string length.
5548
5549 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5550
5551         * culture-info-table.h : update (more French date format; #72788).
5552
5553 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5554
5555         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5556         the method is static. Fixes #75029.
5557
5558 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5559
5560         * reflection.c: Update the table_idx field of method builders after
5561         saving the module, since it can change. This is a workaround for
5562         bug #74914. 
5563
5564 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5565
5566         * culture-info-table.h : update (additional French date format).
5567
5568 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5569
5570         * icall.c (ves_icall_type_Equals): Revert last change.
5571         
5572         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5573
5574         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5575
5576 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5577
5578         * class-internals.h: Added executioncontext_class field to 
5579         MonoDefaults structure.
5580         * domain.c: Cache System.Threading.ExecutionContext class in 
5581         mono_defaults.
5582         * object.c: Capture the ExecutionContext for asynchroneous calls in
5583          mono_async_result_new.
5584         * object-internals.h: Added execution_context and original_context 
5585         fields to MonoAsyncResult. Added execution_context to MonoThread.
5586         * security-manager.c|.h: Added mono_get_context_capture_method to 
5587         return the capture method (if required by the security manager or by
5588         the framework version used).
5589         * threadpool.c: Apply capture (if present) ExecutionContext in 
5590         mono_async_invoke and revert to original context after it completes.
5591
5592 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5593
5594         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5595
5596 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5597
5598         * culture-info-table.h : zh-CHT related workaround.
5599
5600 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5601
5602         * marshal.c (emit_marshal_custom): Add some error checking and call the
5603         methods in the ICustomMarshaler interface. Fixes #74875.
5604         
5605         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5606         native->managed wrappers.
5607
5608 2005-05-12  Martin Baulig  <martin@ximian.com>
5609
5610         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5611         here and use the loader lock.
5612
5613         * mono-debug.c: Properly lock when the debugger is not attached.
5614         (mono_debug_init): Release the initial lock if we're not running
5615         in the debugger.
5616
5617 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5618
5619         * marshal.c (emit_marshal_custom): Pass through NULL values without
5620         calling the custom marshalling routines.
5621
5622         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5623         conversion in structures. Fixes #74882.
5624
5625 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5626
5627         * culture-info-table.h : zh-* cultures were missing.
5628
5629 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5630
5631         * threads.c: Added a new event background_change_event which is signaled
5632         when a thread changes its background mode.
5633         Moved here several checks previously done in managed code. The checks
5634         require the thread lock, and using the thread lock in managed code
5635         can result in deadlocks.
5636         Merged Start_internal and Thread_internal into a single method. Now 
5637         Thread_internal does all work of creating and starting a thread.
5638         Added icalls for setting and getting the state of the object. Moved from
5639         managed code to avoid locking there.
5640         Added wait_for_tids_or_state_change() which is called instad of
5641         wait_for_tids when waiting for non-backround threads to end. This method
5642         will return if one of the threads ends or the background_change_event
5643         is signaled.
5644         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5645         the background mode. This method signals the background_change_event
5646         event.
5647         * icall.c:
5648         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5649         removed Start_internal.
5650         
5651 2005-05-11  Martin Baulig  <martin@ximian.com>
5652
5653         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5654         to order of some fields to get proper alignment on 64-bit machines.
5655
5656 2005-05-11  Martin Baulig  <martin@ximian.com>
5657
5658         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5659         changes as they're broken and completely fuck up the debugger.
5660
5661         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5662
5663 2005-05-10  Martin Baulig  <martin@ximian.com>
5664
5665         * reflection.c (mono_reflection_generic_class_initialize): Don't
5666         call mono_class_setup_parent() here.
5667
5668 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5669
5670         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5671         send/receive timeout use an integer in milliseconds. We were using a
5672         struct timeval.
5673
5674 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5675
5676         * locales.c:
5677         (internal_get_cultures): reserve the first slot of the array for the
5678         InvariantCulture, which will be filled in managed code.
5679
5680 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5681
5682         * reflection.c (mono_image_fill_module_table): Initialize the
5683         GENERATION field as well.
5684
5685 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5686
5687         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5688         Monitor.Enter on the object.
5689
5690 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5691
5692         * threads.c: Enable the wait for running threads when exiting.
5693         * icall.c: Suspend all threads before exiting.
5694
5695 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5696
5697         * assembly.c (mono_assembly_load_reference): Fix warning.
5698
5699 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5700
5701         * threadpool.c: changed the default number of threads per cpu. From now
5702         on, the default will be 20 + (5 * number of cpus) instead of 50.
5703
5704 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5705
5706         * loader.c (mono_method_get_signature_full): Add locking here.
5707
5708 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5709
5710         * appdomain.c: Moved methods for parsing and freeing assembly
5711         names to assembly.c.
5712         * assembly.c, domain-internals.h: Created public methods for parsing
5713         assembly names. Fixed mono_assembly_load_with_partial_name:
5714         it now finds the best match, taking into account the version,
5715         token and culture specified in the partial name. Also return
5716         the latest version if no version information is specified.
5717
5718 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5719
5720         * threadpool.c: replace check for SocketAsyncCall class.
5721
5722 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5723
5724         * threadpool-internals.h:
5725         * Makefile.am: added threadpool-internals.h
5726
5727         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5728         that happen in threadpool threads (tested on MS).
5729         (mono_thread_pool_remove_socket): new function that dispatch any pending
5730         AIO call on a socket that is closing. By now only epoll really needs it,
5731         as select/poll wake up when the socket closes.
5732
5733
5734         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5735
5736 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5737
5738         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5739
5740 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5741
5742         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5743
5744 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5745
5746         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5747         has an abort request, convert it into a suspend request.
5748
5749 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5750
5751         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5752         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5753         is not supported yet.
5754
5755 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5756
5757         * image.c: register assemblies loaded from data (bundles) in the loaded
5758         assemblies hash. Fixes bug #74772.
5759
5760 2005-04-29  Martin Baulig  <martin@ximian.com>
5761
5762         * class.c (mono_type_get_name_recurse): Update to the new naming
5763         schema from the latest .NET 2.x beta2.
5764         (mono_class_setup_vtable_general): If we're a generic instance,
5765         copy the vtable from our generic type definition and inflate all
5766         the methods in it.
5767
5768         * loader.c (find_method): Update to the new naming schema from the
5769         latest .NET 2.x beta2.
5770
5771 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5772
5773         * class.c (mono_class_init): Add a mono_loader_unlock to the
5774         #74734 fix.
5775
5776 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5777
5778         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5779         suspend_all_other_threads () call for the time being, since it can hang.
5780
5781         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5782         the background threads to exit, since it can also hang.
5783
5784         * class.c (mono_class_init): Applied patch from Ankit Jain 
5785         (radical@gmail.com). Avoid pending init errors when a field refers
5786         to a nested class using a typeref. Fixes #74734.
5787
5788         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5789         this for dynamic modules.
5790
5791 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5792
5793         * threads.c: don't wait for threads that are in the process of aborting
5794         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5795         and waiting for background threads to finish. This makes xsp and
5796         mod-mono-server exit without random length delays and/or hangs.
5797
5798 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5799
5800         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5801
5802 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5803
5804         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5805         dynamic types to prevent infinite loops. Fixes #74727.
5806
5807         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5808         ..._is_assignable_to.
5809
5810 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5811
5812         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5813
5814 2005-04-25  Martin Baulig  <martin@ximian.com>
5815
5816         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5817
5818         * domain.c
5819         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5820
5821         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5822
5823         * reflection.c (build_compressed_metadata): Set metadata header
5824         version to 2.0.
5825
5826 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5827
5828         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5829         number into an integral and a decimal part. Fixes #70473.
5830
5831         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5832
5833 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5834
5835         * culture-info-table.h : reflected the latest locale-builder output.
5836
5837 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5838
5839         * threadpool.c: check for SuspendRequested too when deciding if
5840         mono_thread_interruption_checkpoint should be called.
5841
5842 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5843
5844         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5845         * threads.c: remove interruption_mutex and use Interlocked instead. When
5846         suspending all the threads, wait for all the suspended events at once.
5847         If we're shutting down and get an APC that is going to be queued,
5848         call mono_thread_execute_interruption immediately, as the thread might
5849         be sleeping on a pthread condition or mutex.
5850
5851         * icall.c: call mono_runtime_set_shutting_down before suspending the
5852         threads.
5853
5854         Fixes bug #74693. And now xsp is happier when exiting.
5855
5856 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5857
5858         * loader.c (mono_stack_walk): Fix #74690.
5859
5860 2005-04-22  Martin Baulig  <martin@ximian.com>
5861
5862         * mono-debug.h (MonoDebugMethodJitInfo): Added
5863         `MonoDebugMethodJitInfo *jit'.
5864
5865         * mono-debug.c (mono_debug_read_method): Cache the
5866         MonoDebugMethodJitInfo in `address->jit'.
5867         (mono_debug_free_method_jit_info): New public method.
5868
5869 2005-04-22  Martin Baulig  <martin@ximian.com>
5870
5871         * class.c (mono_class_is_assignable_from): Disallow
5872         type parameter -> interface.
5873
5874 2005-04-21  Dick Porter  <dick@ximian.com>
5875
5876         * threads.c (mono_thread_create): Turn an assertion into an error.
5877
5878 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5879
5880         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5881         
5882         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5883         Fix some gcc 4.0 warnings.
5884
5885 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5886
5887         * file-io.c: fix alt dir separator char on unix systems
5888         and cleanup (fixes bug #71214).
5889
5890 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
5891
5892         * marshal.c: Use CALLVIRT instead of CALL when dispatching
5893         a call to a remote domain, since the method may be an
5894         interface method in the client domain. This fixes bug #74192.
5895
5896 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5897
5898         * threadpool.c: recv/send are now performed before going back to managed
5899         code to save one transition.
5900
5901 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5902
5903         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
5904
5905         * metadata/threadpool.c: removed hack to workaround the bug above.
5906
5907         Fixes bug #74618.
5908
5909 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
5910
5911         * reflection.c reflection.h: Fix handling of parameter defaults in
5912         dynamic methods. Also fixes handling of parameter attributes.
5913         Fixes #74609.
5914
5915         * mono-debug.c (mono_debug_close_image): Fix warning.
5916
5917 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5918
5919         * socket-io.h: replaced old unused field with new 'blocking'.
5920         * threadpool.c: restore socket blocking state on windows(tm).
5921
5922 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
5923
5924         * icall.c: don't return the codebase in the AssemblyName[] returned by
5925         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
5926         * object-internals.h: Removed FIXME (fields were presents) and fixed
5927         versioncompat declaration.
5928
5929 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5930
5931         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
5932         not closed, so don't cleanup when it happens.
5933
5934 2005-04-13  Chris Toshok  <toshok@ximian.com>
5935
5936         * mono-debug-debugger.h: change prototype for
5937         mono_debugger_lookup_type.
5938
5939         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
5940         this function, although it should probably be named
5941         mono_debugger_init_type.
5942
5943 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5944
5945         * threadpool.c: fix non-AIO case.
5946
5947 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
5948
5949         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
5950         the built-in profiler to measure just JIT compilation times.
5951
5952 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5953
5954         * threadpool.c: the epollfd might be closed by another thread at
5955         any time, so ignore EBADF at treat it as a "we're closing" sign.
5956
5957 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5958
5959         * threadpool.c: release the semaphores with a count equals to the number
5960         of working threads in both IO and regular pools. Fixed typo that messed
5961         up the count of IO pool threads. Don't initialize the pipe handles if
5962         we're using epoll.
5963
5964 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5965
5966         * threadpool.c: some systems don't like a NULL when deleting the socket
5967         from epoll.
5968
5969 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5970
5971         * threadpool.c: fix semaphore allocation.
5972
5973 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5974
5975         * threadpool.c: added epoll() based implementation for asynchronous IO
5976         that is used instead of the default poll() when available.
5977         It can be disabled by setting MONO_DISABLE_AIO.
5978
5979 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5980
5981         * threadpool.c: windows needs 'closesocket' and instead of returning
5982         0 when the stream is closed while in select, it returns -1. Fixes bug
5983         #74573.
5984
5985 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
5986
5987         * class.c (class_compute_field_layout): Fix the regression caused by
5988         the previous try.
5989
5990 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5991
5992         * threadpool.c: separate pool for socket async. IO.
5993         * threadpool.h: mono_max_worker_threads is not a global any more.
5994
5995 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
5996
5997         * class.c (class_compute_field_layout): Fix #74549.
5998
5999 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6000
6001         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6002         use 2 connected sockets instead.
6003
6004 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6005
6006         * mono-config.c: Add new entry point for mkbundle
6007         mono_config_parse_memory. 
6008
6009 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6010
6011         * threadpool.c: removed another unused function.
6012
6013 2005-04-08  Ankit Jain  <radical@corewars.org>
6014
6015         * reflection.c (get_default_param_value_blobs): Add 'types'
6016         parameter to get the types encoded in the constant table.
6017         (mono_param_get_objects): Use the type from the constant table,
6018         not the type of the parameter, when creating default values.
6019         Handle null default values correctly.
6020
6021 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6022
6023         * file-io.c:
6024         * file-io.h:
6025         * threadpool.c:
6026         * threadpool.h:
6027         * icall.c:
6028         * socket-io.c: removed dead code for async IO.
6029
6030 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6031
6032         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6033
6034         * threadpool.c: intercept socket async. calls and pass them to a thread
6035         that is polling and dispatching the job items to the threadpool as
6036         socket become ready. Fixes bugs #71217, #71933.
6037
6038         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6039         between char and short/ushort arrays.
6040
6041         * socket-io.c: remove dead code.
6042
6043 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6044
6045         * locales.c,
6046           icall.c : removed InternalToUpper_Comp() and
6047           InternalToLower_Comp().
6048
6049 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6050
6051         * char-conversions.h : The tables were incorrectly generated. Should
6052           be generated against invariant culture.
6053
6054 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6055
6056         * object.c (mono_runtime_invoke_array): Fix return value when 
6057         passing pre-created valuetype objects to ctors.
6058
6059         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6060         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6061         Fixes #74338.
6062
6063 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6064
6065         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6066         only used with --security and hides the wrong corlib version error.
6067
6068 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6069
6070         * class.c: Changed mono_class_name_from_token so that types
6071         outside of a namespace don't have an initial period.  Improved
6072         the g_warning message used in _mono_class_get when loading
6073         fails.
6074         * assembly.c: In mono_assembly_load_reference, when an assembly
6075         can't be found, "No such file or directory" is misleading and
6076         unhelpful because a few paths were checked for the presence of
6077         the assembly.  When that happens (ENOENT), display a nicer
6078         message indicating the directories that were searched.  In all
6079         cases, the warning is made easier to read for non-hackers.
6080
6081 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6082
6083         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6084         project/solution.
6085         * appdomain.h|domain.c: Removed inline from functions.
6086         * appdomain.c: Reduced warnings when compiling on windows.
6087         * icall.c: Fixed output_debug declaration to gunichar2*.
6088         * mono-config.c: Reduced warnings when compiling on windows.
6089         * rand.c: Added missing "windows.h". Added missing return value.
6090         * rawbuffer.c: Added missing winsock2.h for windows.
6091         * sysmath.h: Added mono-compiler.h header to allow/ease 
6092         compilation with non-GCC compilers.
6093         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6094         Removed cast warnings.
6095
6096         Adapted from the work of J Lothian (for VC6).
6097
6098 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6099
6100         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6101         from default_path.
6102
6103 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6104
6105         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6106         the 2.0 profile.
6107
6108 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6109
6110         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6111         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6112         stuff, and it would probably use $(prefix)/share rather than
6113         $(prefix)/lib.
6114
6115 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6116
6117         * console-io.c: added 2 includes that might be missing.
6118
6119 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6120
6121         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6122         profile.
6123
6124         * reflection.c (create_custom_attr): Allocate the params array using
6125         alloca so it gets GC tracking.
6126
6127 2005-03-23  Chris Toshok  <toshok@ximian.com>
6128
6129         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6130         out some spew.
6131
6132 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6133
6134         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6135         changes to pick up any changes in prefix, etc.
6136
6137 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6138
6139         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6140         
6141         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6142         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6143
6144 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6145
6146         * class-internals.h object-internals.h class.c reflection.c: Extend the
6147         mono_lookup_dynamic_token () function to return the class of the
6148         token as well. 
6149
6150         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6151         well. Fixes #73848.
6152
6153 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6154
6155         * security-manager.c: Skip inheritance checks for intra-corlib
6156         class inheritance and method overrides. This skips a lot of checks
6157         and (anyway) permissions cannot work until corlib is loaded.
6158
6159 2005-03-23  Martin Baulig  <martin@ximian.com>
6160
6161         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6162         MONO_TYPE_GENERICINST.  
6163
6164 2005-03-23  Martin Baulig  <martin@ximian.com>
6165
6166         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6167
6168 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6169
6170         * class.c: added locking comments to some functions.
6171         Cache the interface offsets arrays (saves about 20 KB
6172         of runtime memory in a typical app).
6173         Reduce the time overhead in mono_class_setup_supertypes ().
6174
6175 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6176
6177         * icall.c: speedup and fix leaks in GetMethodsByName and
6178         GetPropertiesByName.
6179
6180 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6181
6182         * reflection.c: some locking fixes.
6183
6184 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6185
6186         * metadata.c: added missing break in case statement.
6187
6188 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6189
6190         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6191         typedbyref return values. Fixes #73941.
6192
6193 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6194
6195         * security-manager.c|h: Added demandunmanaged method and 
6196         suppressunmanagedcodesecurity class to MonoSecurityManager.
6197         Renamed aptc class to allowpartiallytrustedcallers.
6198
6199 2005-03-17  Martin Baulig  <martin@ximian.com>
6200
6201         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6202
6203 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6204
6205         * file-io.c: disabled file async. IO using aio_*. It uses the
6206         threadpool now. Workaround for bug #73718.
6207
6208 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6209
6210         * assembly.h, mono-config.c: added code to deal with bundled configs
6211         for bundled assemblies.
6212
6213 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6214
6215         * *.c, private.h: cleanup, removing old private.h header file.
6216
6217 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6218
6219         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6220         and throw_on_unmappable_char attributes.
6221
6222 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6223
6224         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6225         _ProcessName_internal.
6226
6227 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6228
6229         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6230         #73631.
6231
6232         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6233         are no longer used.
6234
6235 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6236
6237         * object.c (compute_class_bitmap): Add support for generics. Fixes
6238         #73527.
6239
6240 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6241
6242         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6243
6244 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6245
6246         * filewatcher.c: commented out the code for windows watcher, as we don't
6247         use it (we use the managed implementation instead).
6248
6249 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6250
6251         * object-internals.h (MonoThread): Remove 'unused1' field.
6252
6253         * appdomain.c: Bump corlib version.
6254
6255         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6256
6257         * reflection.c (mono_reflection_create_runtime_class): Remove the
6258         AssemblyBuilder.Save optimization since it causes too many problems.
6259
6260 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6261
6262         * exception.c|h: Added mono_get_exception_reflection_type_load to
6263         create a ReflectionTypeLoadException object.
6264         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6265         to return NULL is a InheritanceDemand fails during reflection. Updated
6266         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6267         ReflectionTypeLoadException if an InheritanceDemand fails during 
6268         reflection. Added icall mapping for GetLinkDemandSecurity.
6269         * security-manager.c|h: Added ves_icall_System_Security_
6270         SecurityManager_GetLinkDemandSecurity internal call to return the
6271         class and methods permissions set for a LinkDemand. Removed unused
6272         fields in MonoSecurityManager.
6273
6274 2005-03-10  Martin Baulig  <martin@ximian.com>
6275
6276         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6277         it's a generic instance.
6278
6279 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6280
6281         * reflection.c (mono_get_object_from_blob): Applied patch from
6282         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6283
6284         * class.c (mono_class_is_assignable_from): Another try at fixing 
6285         #73469 without breaking anything.
6286
6287 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6288
6289         * class.c: (mono_class_is_assignable_from): Revert the last changes
6290         since they don't work with generics.
6291         
6292         * class.c (mono_class_is_assignable_from): Fix build bustage.
6293
6294         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6295         the managed IsAssignableFrom method. Fixes #73469.
6296
6297         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6298         function.
6299
6300 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6301
6302         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6303         memory when the remoting callback does not sets the out arguments.
6304         Fixes #73007.
6305
6306         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6307         by mistake.
6308
6309         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6310
6311         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6312
6313         * appdomain.c: Bump corlib version.
6314
6315 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6316
6317         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6318         function.
6319
6320         * threads.c (mono_thread_attach): Detect threads which are not started
6321         by the GC pthread wrappers.
6322
6323 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6324
6325         * icall.c: Added new icall for RNG.
6326         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6327         single handle on Linux to access /dev/urandom and fix #73183.
6328
6329 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6330
6331         * object.c: setting the new vtable in a transparent proxy object must
6332         not change the GC descriptor.
6333
6334 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6335
6336         * object.c: fixed compilation without GCJ support.
6337         * reflection.c: for runtime-created types ensure klass->has_references
6338         is correct (bug #73215).
6339
6340 2005-03-02  Martin Baulig  <martin@ximian.com>
6341
6342         * class.c (mono_class_is_assignable_from): Make this work if
6343         `oklass' is a generic instance; fixes #72831.
6344
6345 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6346
6347         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6348         with hasthis set.
6349         
6350         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6351
6352         * marshal.c: Reorganize native->managed marshalling code to also use
6353         the emit_marshal_... functions.
6354
6355 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6356
6357         * object.c: typed allocs have issues with bitmap sizes > 30,
6358         so check for max_set >= 30.
6359
6360 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6361
6362         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6363         managed code. Fixes #73012.
6364
6365         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6366
6367         * metadata.c reflection.c: Load/Emit elem_mult as well.
6368         
6369         * metadata.h (MonoMarshalSpec): Add comment.
6370
6371         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6372
6373         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6374         num_elem to -1 if not given.
6375
6376         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6377
6378         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6379         given values.
6380
6381 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6382
6383         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6384
6385 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6386
6387         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6388
6389         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6390
6391 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6392
6393         * object.c: generalized the reference bitmap creation
6394         and added hooks for the new GC.
6395         * class-internals.c: removed the gc_bitmap field from MonoClass.
6396
6397 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6398
6399         * domain.c: help the compiler to produce better code
6400         in mono_jit_info_table_find ().
6401
6402 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6403
6404         * object.c: make all allocations look typed.
6405
6406 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6407
6408         * socket-io.c: load Mono.Posix if it's not loaded already
6409         (fixes bug#73033).
6410
6411 2005-02-24  Martin Baulig  <martin@ximian.com>
6412
6413         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6414         * reflection.c (dup_type): Likewise.
6415
6416 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6417
6418         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6419         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6420
6421 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6422
6423         * domain.c, threads.c, object-internals.h: make the critical thread
6424         local vars use the fast access mode (even when we're compiled in
6425         a lib). Provide accessors to be used by the jit during codegen.
6426
6427 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6428
6429         * appdomain.c: Changed hook functios behavior to include
6430         support for the reflection only assemblies. Some icalls were changed
6431         to support the mentioned assemblies too. Signatures of static methods
6432         try_assembly_resolve and real_load now have an additional parameter:
6433         refonly.
6434
6435         * assembly.c: General changes to mono_assembly_ methods to support
6436         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6437         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6438         suffix, to support an additional gbool parameter to specify whether
6439         the assembli is reflection only or not. Created some new hook functions 
6440         to add support for reflection only assemblies. Signatures of static 
6441         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6442         have now an additional parameter: refonly.
6443
6444         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6445         indicating whether the assembly is reflection only or not.
6446
6447         * exception.c: Add mono_get_exception_invalid_operation.
6448
6449         * icall.c: Throw an InvalidOperationException when trying to invoke
6450         a property/method/event, or trying to set/get the value of a field.
6451         Also add an icall to retrieve the ref_only flag to the
6452         MonoReflectionAssembly.
6453
6454 2005-02-23  Chris Toshok  <toshok@ximian.com>
6455
6456         Part of fix for #72827.
6457         * mono-debug.c (mono_debug_add_method): add lexical block data to
6458         the info we write.  Kind of a hack at the moment - we copy the
6459         lexical block info from the MonoDebugMethodInfo to the
6460         MonoDebugMethodJitInfo here, before writing it.
6461         (mono_debug_read_method): read the lexical block info.
6462
6463         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6464
6465         * debug-mono-symfile.h: add lexical block support.
6466
6467         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6468         support.
6469
6470 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6471
6472         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6473
6474         * object.c (mono_runtime_free_method): Call mono_free_method () and
6475         put the TODOs there.
6476
6477         * loader.c (mono_free_method): Free up most memory allocated for 
6478         dynamic methods.
6479
6480 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6481
6482         * reflection.c: properly flag a Type argument to a
6483         named custom attr value (bug #72248).
6484
6485 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6486
6487         * reflection.c: reduce code duplication in named custom
6488         attribute encoding.
6489
6490 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6491
6492         * reflection.c: properly encode custom attrs of type object
6493         (bug #72649).
6494
6495 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6496
6497         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6498
6499 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6500
6501         * socket-io.c: load System.dll if it's not loaded already
6502         (bug #72850 and #70477).
6503
6504 2005-02-21  Martin Baulig  <martin@ximian.com>
6505
6506         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6507         generic instances.
6508
6509 2005-02-21  Martin Baulig  <martin@ximian.com>
6510
6511         * reflection.c (mono_image_build_metadata): We also need to
6512         "fixup" the MethodImpl table after we computed the final method
6513         indices.  Call fixup_methodimpl() to do that.
6514         (fixup_methodimpl): New private method.
6515
6516 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6517
6518         * assembly.c: special case mscorlib.dll (bug#72536),
6519         patch from Carlos Alberto Cortez.
6520
6521 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6522
6523         * threads-types.h threads.c: Fix build bustage.
6524
6525         * threads.c: Use a union for long<->double conversions.
6526
6527         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6528         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6529
6530         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6531         containing the checkpoint call with NOT_TAKEN.
6532         
6533         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6534         checkpoint before pushing the arguments, so they won't have to be
6535         spilled to stack.
6536
6537 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6538
6539         * domain.c, assembly.c, domain-internals.h: make some data
6540         const and relocation-free.
6541
6542 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6543
6544         * object.c, appdomain.c, class-internals.h: introduce the
6545         MonoClassRuntimeInfo structure to hold the info needed to
6546         use a class at runtime. Made mono_class_vtable() lock-free
6547         for all the appdomains.
6548
6549 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6550
6551         * metadata-internals.h, image.c: introduce a per-image mempool to
6552         be used for memory that has the same lifetime as the image.
6553
6554 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6555
6556         * domain.c: In mono_init_internal(), instead of selecting the first
6557         runtime version supported by an executable, get a list of all
6558         supported versions and select the one for which an mscorlib exists
6559         (since even if the runtime supports a given version, it doesn't mean
6560         that the framework for that version is installed).
6561         Modified get_runtimes_from_exe to support this behavior.
6562         In supported_runtimes, added information about additional system
6563         assembly versions.
6564         
6565         * assembly.c: Added support for more than one system assembly version
6566         per runtime version. Updated the assembly list.
6567         In mono_assembly_remap_version, removed the initial version check,
6568         since we don't know to which version we need to compare until we
6569         get the version set on which the assembly is based.
6570         Moved the code for loading corlib into the new method
6571         mono_assembly_load_corlib(), so it can be used by the initialization
6572         code.
6573         
6574         * domain-internals.h: Updated data structures and added declaration
6575         for mono_assembly_load_corlib.
6576
6577 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6578
6579         * reflection.c (resolve_object): Fix the creation of the signature in 
6580         the SignatureHelper case.
6581
6582         * assembly.c (mono_assembly_remap_version): Fix binary search.
6583         
6584 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6585  
6586         * class.c: Added inheritance check when a method is overloaded (from a
6587         virtual method or when implementing an interface) and when a class is
6588         inherited. Added functions to set a failure for a class and to 
6589         retreive the exception from a failure.
6590         * class-internals.h: Added fields to MonoClass to keep the exception
6591         information status for inheritance (or other exceptions) to be thrown
6592         later (i.e. not at load time).
6593         * object.c: Throw the inheritance SecurityException when a type is to 
6594         be created with either class or method inheritance violations.
6595         * reflection.c|h: Fix when getting declsec from a class. Removed 
6596         unrequired code for class. Improved sanity in parameter naming.
6597         * security-manager.c|h: Added functions to check for class and method
6598         inheritance.
6599
6600 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6601
6602         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6603         and has_finalize in dynamic types as well.
6604
6605 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6606
6607         * culture-info-table.h : fixed currency format for en-GB (and so on).
6608
6609 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6610
6611         * gc.c: ensure the GC handles never have 0 as a value.
6612
6613 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6614
6615         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6616         a pointer to a struct to unmanaged code. Fixes #72625.
6617
6618 2005-02-16  Martin Baulig  <martin@ximian.com>
6619
6620         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6621
6622 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6623
6624         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6625
6626 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6627
6628         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6629
6630         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6631         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6632         etc. Fixes #71471.
6633
6634         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6635
6636         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6637
6638 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6639
6640         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6641         changes to make the current context a field in MonoThread.
6642
6643 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6644
6645         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6646         the last change.
6647         
6648         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6649         extracted from mono_marshal_get_native_wrapper.
6650
6651         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6652         to create wrappers around native functions.
6653
6654         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6655         delegates for arbitrary function pointers. Fixes #71472.
6656
6657 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6658
6659         * threads.c: cleaned up the code a little.
6660
6661 2005-02-15  Martin Baulig  <martin@ximian.com>
6662
6663         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6664         the data table.
6665
6666         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6667         allocate larger chunks if needed.
6668
6669 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6670
6671         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6672         in by mistake.
6673
6674 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6675
6676         * domain.c: keep the domains in an array and ensure the domain ids
6677         are kept small, so they can be used as indexes to domain-specific data
6678         with a small memory overhead.
6679
6680 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6681
6682         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6683
6684 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6685
6686         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6687
6688 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6689
6690         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6691
6692         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6693         values.
6694
6695         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6696         
6697 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6698
6699         * domain-internals.h: add the hashtable here.
6700
6701         * class-internals.h: Remove `info' from MonoMethod
6702
6703         * domain.c: Add a new hashtable, jit_trampoline_hash
6704
6705 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6706
6707         * object.c: don't set the value of static fields
6708         (fixes bug#72494).
6709
6710 2005-02-11  Martin Baulig  <martin@ximian.com>
6711
6712         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6713         (mono_debug_add_method): Silently ignore the method if it's too big.
6714         (mono_debug_add_type): Likewise.
6715
6716 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6717
6718         * threads.c, appdomain.c: remove #ifdefs from the code.
6719
6720 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6721
6722         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6723         common security informations. This allows us to stay in unmanaged code
6724         when doing LinkDemand and it's special cases (except for the first 
6725         time for initialization). The flags a very much used with --security.
6726         * reflection.c|h: Added code to get declarative security attributes 
6727         for LinkDemand and InheritanceDemand. This required to refactor the
6728         existing code for Demand.
6729         * security-manager.c|h: Added new method fields for the special cases
6730         of LinkDemand.
6731
6732 2005-02-10  Martin Baulig  <martin@ximian.com>
6733
6734         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6735         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6736
6737 2005-02-10  Martin Baulig  <martin@ximian.com>
6738
6739         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6740         debugging code; this is almost a complete rewrite.
6741
6742         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6743
6744 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6745
6746         * domain.c, object.h: expose mono_string_equal () and 
6747         mono_string_hash ().
6748         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6749         it's implemented in managed code.
6750
6751 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6752
6753         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6754         lo leak objects between appdomains.
6755
6756 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6757
6758         * assembly.c: old compilers compilation fix from 
6759         robertj@gmx.net (Robert Jordan).
6760
6761 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6762
6763         * class-internals.h: Little reminder for the future.
6764
6765         * debug-helpers.c: Fix up wrapper_type_names
6766
6767 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6768
6769         * image.c, metadata-internals.h: when loading an image from a file,
6770         mmap all of it and use the same codepaths as when using a
6771         in-memory image: the code is simpler and we use less memory
6772         (both writable and readonly).
6773
6774 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6775
6776         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6777         API to alloc runtime data structures that need to be tracked by the
6778         GC and contain pointers.
6779         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6780         make the code more readable and eventually use a different GC.
6781
6782 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6783
6784         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6785         for out arguments.
6786         
6787 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6788
6789         * object.c: In release_type_locks(), don't release the cctor lock
6790         if it has already been released. This fixes a crash in the
6791         thread5 test.
6792
6793 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6794
6795         * gc.c, marshal.c, icall.c: register a delegate for finalization
6796         only when the native function pointer has been allocated for it.
6797
6798 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6799
6800         * object.c: cleaned up some code, allocate objects that are
6801         pointer free with the atomic malloc variant. Allocate memory
6802         for static data from the mempool if it's pointer-free.
6803         Allocate the bounds array at the end of the array data, when needed.
6804         * object-internals.h, object.h: move a private function in a private
6805         header.
6806         * class.c: handle missing case in tracking references in fields.
6807
6808 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6809
6810         * class.c, class-internals.h: keep track if a type has
6811         reference fields in either the instance or static fields.
6812
6813 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6814
6815         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6816         and renamed to MonoRuntimeInfo. Added fields to store the expected
6817         framework assembly version. Changed mono_get_framework_version and
6818         mono_get_runtime_version for a single mono_get_runtime_info method.
6819         
6820         * assembly.c: Added method to remap system assembly versions to the
6821         current executing runtime version. Removed old mapping code.
6822         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6823         
6824         * icall.c, reflection.c: Track api changes.
6825
6826 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6827
6828         * loader.c (method_from_memberref): Improve error reporting,
6829         produce the class name instead of the typeref/typedef index. 
6830
6831 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6832
6833         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6834
6835 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6836
6837         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6838         stdcall and charset name mangling.  Reorganize the code and add
6839         some tracing stuff.
6840
6841 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6842
6843         * monodiet.c: More iters!
6844
6845         * marshal.c: Iter usage.
6846
6847         * icall.c: Iter usage.
6848
6849         * object.c: Use iters.
6850
6851         * debug-helpers.c: More iters
6852
6853 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6854
6855         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6856         under win32.
6857
6858 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6859
6860         * mono-debug-debugger.c: use iters
6861
6862         * class.c, class-internals.h: mono_class_setup_events is static
6863         now
6864
6865         * All callers: use iters
6866
6867 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6868
6869         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6870         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6871
6872 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6873
6874         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6875
6876         * marshal.h: Add prototypes for ldfld/stfld_remote.
6877
6878         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6879         this is called during startup.
6880         
6881 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6882
6883         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6884         MonoThreadsSync struct private in monitor.c. Changed the way
6885         MonoThreadsSync is allocated so it's faster and there is no
6886         need to keep track of it with a finalizer and it uses less memory.
6887         This also finally allows us to allocate mono objects as ptrfree when
6888         there are no reference fields.
6889
6890 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
6891
6892         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
6893         disappearing link to the GC interface and use them to simplify
6894         the gchandles code.
6895
6896 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6897
6898         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
6899         stfld_remote which call mono_load/store_field_new. This allows methods
6900         calling ldfld/stfld wrappers to be AOTed.
6901
6902         * console-io.c: Include sys/filio.h under solaris.
6903         
6904         * console-io.c: Include curses.h if needed correctly.
6905
6906 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6907         
6908         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
6909         method->klass as well.
6910
6911         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
6912
6913         * class.c (mono_class_init): Switch on lazy initialization of 
6914         methods.
6915
6916         * class.c (mono_class_get_finalizer): Handle the case when the 
6917         finalizer is inherited.
6918
6919 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6920
6921         * console-io.c: <curses.h> is needed by term.h on solaris.
6922
6923 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
6924
6925         * icall.c, class-internals.h, monodiet.c, class.c: Remove
6926         mono_class_setup_properties where possible. Remove this ftn from
6927         the header file, and make it static.
6928
6929 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6930
6931         * loader.c: Add missing setup_... call.
6932
6933         * class.c: Add missing setup_... calls.
6934
6935         * class.c (mono_class_init): Switch on lazy initialization of 
6936         the generic vtable.
6937         
6938         * class.c (mono_class_init): Fix generics broken by the recent changes.
6939
6940         * monodiet.c (handle_type): Add missing setup_... calls.
6941
6942         * class.c: Back out garbage in previous patch.
6943         
6944         * class.c: Add missing setup_... calls.
6945
6946         * class.c (mono_class_get_method_from_name_flags): Avoid calling
6947         mono_class_setup_methods () if possible.
6948
6949         * class-internals.h (MonoClass): Add 'has_cctor' flag.
6950
6951         * class-internals.h (MonoCachedClassInfo): New structure.
6952
6953         * class.c: Initialize properties and events fields of MonoClass lazily.
6954
6955         * class.c: Add infrastructure for lazily initializing the methods and
6956         vtable fields of MonoClass. Not yet used.
6957
6958         * class.c (mono_class_get_finalizer): New helper function.
6959
6960         * class.c: Add infrastructure for loading some class related data from
6961         an AOT file.
6962
6963         * object.c: Add infrastructure for initializing the vtable from data
6964         in the AOT file.
6965
6966         * gc.c (run_finalize): Use mono_class_get_finalizer ().
6967
6968         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
6969         appropriate initialization function before accessing parts of the
6970         MonoClass structure.
6971
6972         * marshal.c: Fix warnings.
6973         
6974         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
6975
6976         * mono-debug-debugger.c (get_exception_message): Use 
6977         mono_class_get_method_from_name_flags ().
6978
6979 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
6980
6981         * reflection.c, appdomain.c: Replace a few manual searches that
6982         Zoltan missed. (Paolo approved this part of my initial patch).
6983
6984 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
6985
6986         * profiler.c: disable recording statistical events at report time.
6987
6988 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6989
6990         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
6991         to byteswap arrays of enum values, too (bug #72080).
6992
6993 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
6994
6995         * appdomain.c (set_domain_search_path): Allow this to be called if
6996         domain->setup is not yet set.
6997
6998         * loader.c (mono_method_get_index): New helper function.
6999
7000         * loader.c reflection.c: Use mono_method_get_index ().
7001
7002         * class.c (mono_class_get_method_from_name_flags): New helper method.
7003
7004         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7005         this.
7006
7007         * class.c (mono_class_get_cctor): New helper method.
7008
7009         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7010         mono_class_get_method () to look up methods.
7011
7012 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7013
7014         * console-io.c: Fix the build, this should work on Windows.
7015
7016 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7017
7018         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7019         be set to null to keep things valid
7020
7021 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7022
7023         * icall.c: added Console 2.0 icalls.
7024         * Makefile.am: added console-io.[ch]
7025         * console-io.[ch]: internal calls for Console 2.0 API.
7026
7027 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7028
7029         * class.c: make sure we consider all the interfaces
7030         when calculating max_interface_id (bug found by
7031         Jeroen Frijters running ikvm).
7032
7033 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7034
7035         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7036         valuetype fields to null.
7037
7038         * object.c (set_value): Ditto. Fixes #71669.    
7039
7040 2005-01-31  Martin Baulig  <martin@ximian.com>
7041
7042         * metadata.c (mono_metadata_has_generic_params): New public
7043         function; checks whether something is a generic method.
7044
7045 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7046
7047         * appdomain.c: fix infinite recursion when adding assemblies.
7048
7049 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7050
7051         * object.c: Fix small typo to return all items for Environment.
7052         GetCommandLineArgs.
7053
7054 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7055
7056         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7057         reflection.c: more domain and assembly-unload related fixes
7058         and memory leaks plugs.
7059
7060 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7061
7062         * 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.
7063
7064 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7065
7066         * loader.c (mono_method_signature): Make this method lazy
7067         (mono_get_method_from_token): Don't computate the signature here.
7068
7069         Doing this saves quite a bit of memory. I got 90 kb on starting up
7070         monodoc. It should also save some disk reads on startup.
7071
7072         * *: MonoMethod->signature might be NULL now. You *MUST* use
7073         mono_method_signature.
7074
7075 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7076
7077         * object.c (mono_runtime_get_main_args): Return an array from the
7078         current domain here. Fixes #71938.
7079
7080 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7081
7082         * monitor.c: formatting changes to comply with the
7083         mono coding style and remove #ifdefs from the code.
7084
7085 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7086
7087         * metadata.c, private.h: remove some unneeded data
7088         and use a more compact representation for table schemas.
7089
7090 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7091
7092         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7093         to get a better distribution in hash tables.
7094         * *.c: use mono_aligned_addr_hash() where appropriate.
7095         * assembly.c: make var static.
7096
7097 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7098
7099         * domain-internals.h: Put MonoJitInfo on a diet.
7100
7101         * domain.c: Fix a warning.
7102
7103 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7104
7105         * gc.c: rework the gc handles code to reuse handles
7106         when freed.
7107
7108 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7109
7110         * domain.c: fixed long standing bug in mono_string_equal() which
7111         was brought to light with the ldstr changes.
7112
7113 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7114
7115         * reflection.c: Remove warning by adding missing include for marshal.h
7116
7117 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7118
7119         * domain.c, object.c: change the ldstr_table to hold
7120         MonoString* as keys: makes the runtime isinterned lookup
7121         faster and simplifies memory management.
7122
7123 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7124  
7125         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7126         possible to add imperative security checks before calling the icall.
7127         * reflection.c: Return security attributes on the original MonoMethod
7128         (and not the wrapped one). This fix permissions on icalls.
7129
7130 2005-01-25  Dick Porter  <dick@ximian.com>
7131
7132         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7133         the check for mktime() support actually test the mktime() return
7134         value.  "Fixes" bug 71682, though the output is still different to
7135         MS.
7136
7137 2005-01-25  Martin Baulig  <martin@ximian.com>
7138
7139         * class.c (mono_class_is_assignable_from): Make this work for
7140         generic instances.
7141
7142 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7143
7144         * marshal.c (mono_string_utf8_to_builder)
7145         (mono_string_builder_to_utf16): We might not have ownership of the
7146         string. In thise case, we need to create a new buffer.
7147
7148         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7149         be null, in which case, use the default capacity.
7150
7151 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7152
7153         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7154         GC events to the profiler.
7155
7156 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7157
7158         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7159         if you don't want the GC to run.
7160
7161 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7162
7163         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7164         start providing a GC API and keeping different implementations in
7165         their own file.
7166         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7167
7168 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7169
7170         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7171         mmap rather than allocating a huge buffer.
7172         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7173         above.
7174
7175 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7176
7177         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7178         and CheckExecutionRights.
7179         * reflection.c|h: Keep the index of the declarative security to be 
7180         used, instead of the pointer, when AOT compiler is used. Also add 
7181         class initialization when requesting demands.
7182         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7183         CheckExecutionRights. Both properties are now FALSE by default, and
7184         unmodifiable, unless the --security option is used.
7185
7186 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7187
7188         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7189         reflection.c: properly refcount images and assemblies, many leaks fixed.
7190
7191 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7192
7193         * threadpool.c: increase the timeout for threads in the thread pool to
7194         10s.  Fixes bug #67159.
7195
7196 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7197
7198         * class-internals.h: Sun's compiler insists on explicit
7199         signed on bit fields to handle then correctly.
7200
7201 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7202
7203         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7204         Make the size of the array fit only the number of invalid path
7205         chars that we have.
7206
7207         * class.c (_mono_class_get): Improve the error reporting when a
7208         class referenced is not found, to assist debugging. 
7209
7210 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7211
7212         * threads.c: fix off-by-one error.
7213         * domain.c: free data allocated in the domain.
7214
7215 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7216
7217         * reflection.c (mono_method_body_get_object): Fill out exception info
7218         as well.
7219
7220         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7221         structure.
7222         
7223 2005-01-19  Martin Baulig  <martin@ximian.com>
7224
7225         * loader.c (mono_get_method_constrained): Make this work again.
7226
7227 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7228
7229         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7230         guint16 to match the managed side.
7231
7232         * reflection.c (mono_reflection_body_get_object): Fill out local
7233         variables array.
7234
7235         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7236         as well.
7237
7238         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7239         'local_var_sig_token'.
7240
7241 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7242
7243         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7244         System.Drawing.
7245
7246         * reflection.c (mono_method_body_get_object): Handle abstract and
7247         runtime methods.
7248
7249 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7250
7251         * marshal.c, loader.c, class-internals.h, reflection.c:
7252         store the emthod data for a wrapper in an array instead of a list.
7253
7254 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7255
7256         * marshal.c: change the code to allocate memory more
7257         conservatively for method wrappers.
7258
7259 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7260
7261         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7262         fields from MonoClass to the marshal info structure where they belong.
7263
7264 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7265
7266         * class.c, object.c, class-internals.h, marshal.c: rearrange
7267         some fields and tweak some types to lower memory usage.
7268
7269 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7270
7271         * threads.c (signal_thread_state_change): Handle the case when the
7272         target thread is the current thread.
7273
7274         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7275
7276         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7277         emit_ptr_to_object_conv. 
7278
7279         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7280         marshalling. Fixes #71352.
7281
7282 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7283
7284         * metadata.h, blob.h: move table enum to blob.h so it can be included
7285         in any header.
7286         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7287         cut the size of MonoImage/MonoDynamicImage.
7288
7289 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7290
7291         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7292
7293 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7294
7295         * reflection.c, reflection.h, icall.c: add a function to check
7296         if an attribute type is defined for a metadata object.
7297
7298 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7299
7300         * object-internals.h: Added some needed fields from StringBuilder class.
7301         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7302
7303 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7304
7305         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7306         threads before shutting down the runtime.
7307
7308         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7309
7310 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7311
7312         * object-internal.h, threads.c: implement stacksize and 
7313         parameterized thread start functionality (requires
7314         matching corlib). Marked broken code for later removal.
7315
7316 2005-01-12  Martin Baulig  <martin@ximian.com>
7317
7318         * class-internals.h (MonoGenericClass): Moved the `initialized'
7319         flag to MonoDynamicGenericClass, removed `init_pending'.
7320         (MonoGenericInst): Added `is_reference' flag.
7321
7322 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7323
7324         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7325         inside the MSDOS header. Fixes #71201.
7326
7327         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7328         gc thread.
7329         (mono_domain_finalize): Ditto.
7330
7331 2005-01-12  Martin Baulig  <martin@ximian.com>
7332
7333         * class.c (mono_get_shared_generic_class): Use the cache for
7334         non-dynamic generic classes.
7335
7336         * class-internals.h (mono_class_create_generic_2): Removed
7337         function prototype, this function is now static inside class.c.
7338
7339         * class.c (mono_class_create_generic_2): Made this static, only
7340         call it from mono_class_init() and mono_class_setup_parent().
7341         (collect_implemented_interfaces_aux): Call mono_class_init() on
7342         the interfaces we collect.
7343         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7344
7345 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7346
7347         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7348         it a real thread handle.
7349
7350         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7351         MonoJitExceptionInfo, since each catch clause needs its own variable.
7352         
7353 2005-01-11  Dick Porter  <dick@ximian.com>
7354
7355         * image.c (mono_pe_file_open): New variant on mono_image_open()
7356         that does not set up the CLI metadata; used for FileVersionInfo so
7357         it can get the data for windows binaries too.
7358         
7359         * process.c (process_read_string_block): Don't read off the end of
7360         the StringTable block.
7361
7362         These both fix bug 70766.
7363
7364 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7365
7366         * gc.c: set some fields to NULL at GC cleanup time.
7367         * threads.c: if we quit the main thread, call exit ().
7368
7369 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7370
7371         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7372
7373 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7374
7375         * threads.h, threads.c, object.c: added accessor and settor for
7376         main_thread. Handle it specially when exiting from it: wait
7377         for other foreground threads to exit.
7378
7379 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7380
7381         * process.c, verify.c: remove some bloat.
7382
7383 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7384
7385         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7386         the calling convention to cdecl under win32.
7387
7388 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7389
7390         * object.c (mono_object_get_size): New function to get the size of
7391         an object instance.
7392
7393         * profiler.c (simple_allocation): Use above.
7394
7395 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7396
7397         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7398         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7399         get an appdomain by it's id and we can't assume the root's id is 0).
7400         * domain-internals.h: Change the function prototype to match.
7401         * icall.c: Change the icall table for AppDomain.
7402
7403 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7404
7405         * locales.c (string_invariant_compare_char): Only compute
7406         GUnicodeTypes in the case where we need them.  Test for ordinality
7407         first and return if so.
7408
7409         From the commit:
7410
7411                 /*
7412                  * FIXME: here we must use the information from c1type and c2type
7413                  * to find out the proper collation, even on the InvariantCulture, the
7414                  * sorting is not done by computing the unicode values, but their
7415                  * actual sort order.
7416                  */
7417
7418 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7419
7420         * loader.c: for P/Invoke methods, allow the "Internal" shared
7421         library name to refer to the calling process symbol namespace.
7422
7423 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7424
7425         * Makefile.am: Add the security manager to the build.
7426         * security-manager.c|h: New. Initialization of the security manager.
7427
7428 2005-01-07  Dick Porter  <dick@ximian.com>
7429
7430         * threads.c: 
7431         * monitor.c: Update thread state during Monitor and WaitHandle
7432         waits.  Fixes bug 71031.
7433
7434 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7435
7436         * reflection.c (property_encode_signature): Correctly handle when the
7437         property has no methods.
7438
7439 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7440
7441         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7442         
7443         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7444         fields from mb, not rmb. Fixes #71017.
7445
7446         * marshal.c (emit_ptr_to_str_conv): Add support for 
7447         ByValTStr -> string conversion. Fixes #71015.
7448
7449         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7450
7451         * mempool.c (mono_mempool_contains_addr): New helper function.
7452
7453 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7454
7455         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7456         HasSematics encoded fields.
7457         
7458         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7459         invalid string marshalling.
7460
7461         * metadata.c: Fix warnings.
7462         
7463 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7464
7465         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7466         profiler support.
7467
7468 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7469
7470         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7471         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7472         tests.
7473
7474 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7475
7476         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7477         so methods containing these can be AOTed.
7478
7479 2005-01-03  Martin Baulig  <martin@ximian.com>
7480
7481         * loader.c (find_method): Removed the hack for generic instances.
7482         (method_from_memberref): If our parent is a generic instance, pass
7483         its generic type definition to find_method() and then inflate the
7484         method.
7485         (mono_get_method_constrained): Pass the generic type definition to
7486         find_method() and inflate the method later.
7487
7488         * class-internals.h (MonoStats): Added `generic_class_count'.
7489
7490         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7491         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7492
7493         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7494         generic type definitions.
7495
7496 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7497
7498         * loader.c icall.c: Fix warnings.
7499
7500 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7501
7502         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7503         blittable types. Fixes #70864.
7504
7505 2004-12-29  Martin Baulig  <martin@ximian.com>
7506
7507         * icall.c
7508         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7509
7510         * reflection.c (mono_method_get_object): Create a
7511         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7512         call mono_get_inflated_method().
7513
7514         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7515
7516 2004-12-27  Martin Baulig  <martin@ximian.com>
7517
7518         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7519         (MonoMethodInflated): Added `inflated' field.
7520
7521         * class.c (mono_class_inflate_generic_method): Don't really
7522         inflate the method here; just set the `is_inflated' flag in the
7523         MonoMethod.
7524         (mono_class_get_inflated_method): Actually inflate the method here
7525         if it's not already inflated; we use the MonoMethodInflated's new
7526         `inflated' field as a cache.
7527
7528 2004-12-26  Martin Baulig  <martin@ximian.com>
7529
7530         * class.c
7531         (inflate_generic_class): Moved some code out of inflate_generic_type().
7532         (mono_class_inflate_generic_method): If we're already inflated,
7533         inflate the context and use the declaring method; ie. make sure
7534         the declaring method of an inflated method is always the generic
7535         method definition.
7536         (mono_class_create_from_typedef): Create
7537         `class->generic_container->context->gclass'.
7538
7539 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7540
7541         * metadata-internals.h, marshal.c, reflection.c: More
7542         MonoGHashTable->GHashTable.
7543
7544         * domain-internals.h, class.c: Change MonoGHashTable's into
7545         GHashTables for some cases where no gc stuff is used
7546
7547         All users: update apis
7548
7549 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7550
7551         * metadata.c (builtin_types): Make this `const'. Makes this get
7552         put into the shareable section.
7553         (mono_metadata_init): Casts to make gcc happy.
7554
7555 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7556
7557         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7558
7559 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7560
7561         * icall.c: Added an internal call to retrieve the position and length
7562         of assembly-level declarative security attributes (RequestMinimum, 
7563         RequestOptional and RequestRefuse). This is used by the Assembly class
7564         to re-create the corresponding permission sets.
7565
7566 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7567
7568         * marshal.c: fix the stelemref wrapper to be type correct
7569         (and faster).
7570
7571 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7572
7573         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7574         to do key & 0x7fffffff. Hashtable already does this. It just
7575         results in longer code.
7576
7577 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7578
7579         * appdomain.c: Bump corlib version.
7580         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7581         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7582         * reflection.c|h: Add functions to get declarative security infos
7583         (blob position and length) for assemblies, classes and methods.
7584
7585 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7586
7587         * reflection.c: sort the constant table (bug #70693).
7588
7589 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7590
7591         * object-internals.h, threads.c, domain.c: add accessors for
7592         the MonoThread and MonoDomain tls keys.
7593
7594 2004-12-18  Martin Baulig  <martin@ximian.com>
7595
7596         * class.c (inflate_generic_type): If we're inflating a generic
7597         instance, set `ngclass->context->container = context->container';
7598         ie. the container we inflated into.
7599
7600         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7601         inflate_generic_type() changes.
7602
7603 2004-12-17  Martin Baulig  <martin@ximian.com>
7604
7605         * class-internals.h
7606         (MonoGenericClass): Replaced `MonoType *generic_type' with
7607         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7608         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7609         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7610
7611 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7612
7613         * exception.c (mono_exception_from_token): New helper function.
7614
7615 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7616
7617         * assembly.c (mono_assembly_load_with_partial_name): Call 
7618         mono_assembly_loaded before invoking the preload hooks. Fixes
7619         #70564.
7620
7621         * object-internals.h (MonoThread): Change culture_info and 
7622         ui_culture_info into an array.
7623
7624         * threads.c: Cache culture info objects from more than one appdomain.
7625
7626         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7627         current UI culture.
7628
7629 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7630
7631         * threads.h threads.c appdomain.c: Clear the culture_info field of
7632         all threads during unloading if they point to an object in the dying
7633         appdomain.
7634
7635 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7636
7637         * culture-info.h (TextInfoEntry): New struct
7638         * object-internals.h: sync with managed
7639         * locales.c: fill the `text_info_data' field
7640         * culture-info-tables.h: update
7641
7642 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7643
7644         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7645         collector.
7646
7647 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7648
7649         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7650         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7651
7652 2004-12-12  Martin Baulig  <martin@ximian.com>
7653
7654         * mono-debug-debugger.c (write_type): If we're an enum and the
7655         builtin types have already been initialized, call mono_class_init().
7656
7657 2004-12-11  Martin Baulig  <martin@ximian.com>
7658
7659         * metadata.c (mono_metadata_load_generic_params): Added
7660         `MonoGenericContainer *parent_container' argument; automatically
7661         compute `container->is_method'; pass the correct owner to
7662         get_constraints().      
7663
7664         * reflection.c (compare_genericparam): Sort the GenericParam table
7665         according to increasing owners. 
7666
7667 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7668
7669         * profiler.c: allow disabling the default profiler.
7670
7671 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7672
7673         * decimal.c, icall.c: allow disabling System.Decimal support.
7674
7675 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7676
7677         * reflection.c: Add support for null attribute arguments.
7678
7679 2004-12-09  Martin Baulig  <martin@ximian.com>
7680
7681         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7682         names to get rid of compiler warnings.
7683
7684 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7685
7686         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7687         mono_marshal_load_type_info (). Fixes #69625.
7688         (mono_marshal_get_ptr_to_struct): Likewise.
7689
7690 2004-12-08  Martin Baulig  <martin@ximian.com>
7691
7692         * mono-debug.h: Bumped version number to 47.
7693
7694         * mono-debug-debugger.c
7695         (mono_debugger_event_handler, mono_debugger_event): Take two
7696         guint64 arguments insteed of a gpointer and a guint32.  
7697
7698 2004-12-08  Martin Baulig  <martin@ximian.com>
7699
7700         * debug-mono-symfile.h
7701         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7702         `address' to `native_offset'.
7703
7704 2004-12-08  Martin Baulig  <martin@ximian.com>
7705
7706         * class.c (mono_class_create_from_typespec): Only inflate if we
7707         either have `context->gclass' or `context->gmethod'.
7708
7709 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7710
7711         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7712
7713         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7714
7715         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7716
7717         * reflection.c (mono_assembly_get_object): Remove the workaround put
7718         in for the release.
7719         
7720         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7721
7722         * appdomain.c: Bump corlib version.
7723
7724         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7725         be visible in other appdomains.
7726
7727 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7728
7729         * threads.c: Interlocked inc and dec for longs were messed up,
7730         use a KISS based impl for this. Fixes 70234
7731
7732 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7733
7734         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7735
7736 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7737
7738         * icall.c: fix to follow policy not to allow struct
7739         arguments in icalls.
7740
7741 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7742
7743         * process.c: make the patch that handles spaces in file paths work
7744         on mono/windows too.
7745
7746 2004-12-06  Martin Baulig  <martin@ximian.com>
7747
7748         * class.c (mono_class_create_generic): Call
7749         mono_class_setup_supertypes() if we're dynamic.
7750         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7751
7752 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7753
7754         * object-internals.h: Add new fields to MonoThread.
7755
7756         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7757
7758         * icall.c threads-types.h threads.c: Add new icalls.
7759
7760         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7761
7762         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7763         managed side.
7764
7765         * appdomain.c: Bump corlib version.
7766
7767         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7768         internal assemblies. Fixes #69181.
7769
7770 2004-12-05  Martin Baulig  <martin@ximian.com>
7771
7772         * class.c (mono_class_inflate_generic_signature): Make this a
7773         no-op if `context' is NULL or we don't have any type parameters;
7774         also copy `sentinelpos'.        
7775
7776 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7777
7778         * image.c: Add unbox_wrapper_cache.
7779
7780         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7781
7782         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7783         function generator.
7784         
7785         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7786         Fixes #70173.
7787
7788         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7789         
7790 2004-12-04  Martin Baulig  <martin@ximian.com>
7791
7792         * loader.c (mono_method_get_signature_full): New public function;
7793         like mono_method_get_signature(), but with an additional
7794         `MonoGenericContext *' argument.
7795
7796         * class.c (mono_class_inflate_generic_signature): Formerly known
7797         as inflate_generic_signature(); make this public.
7798
7799 2004-12-04  Martin Baulig  <martin@ximian.com>
7800
7801         * metadata.c
7802         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7803         instead of a `MonoGenericContainer *'.  
7804         (mono_metadata_parse_array_full): Likewise.
7805         (mono_metadata_parse_signature_full): Likewise.
7806         (mono_metadata_parse_method_signature_full): Likewise.
7807         (mono_metadata_parse_generic_inst): Likewise.
7808         (mono_metadata_parse_generic_param): Likewise.
7809         (mono_metadata_parse_mh_full): Likewise.
7810         (mono_type_create_from_typespec_full): Likewise.
7811
7812 2004-12-03  Martin Baulig  <martin@ximian.com>
7813
7814         * class-internals.h (MonoGenericContainer): Replaced the
7815         `MonoGenericContext * pointer with a `MonoGenericContext'
7816         structure and made it the first element.
7817
7818 2004-12-03  Martin Baulig  <martin@ximian.com>
7819
7820         * class.c
7821         (inflate_generic_type): Set the `context->container' when creating
7822         a new MonoGenericContext.
7823         (mono_class_inflate_generic_method): Likewise.
7824         (mono_class_create_from_typespec): Just use `context->container'
7825         to get the container.
7826
7827         * loader.c (method_from_methodspec): Set `context->parent' from
7828         `context->container' - and if that's a method container, use its
7829         parent.  Also set the `context->container' when creating a new
7830         MonoGenericContext.
7831         (mono_get_method_from_token): Use just `context->container' to get
7832         the container.
7833
7834         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7835         `gclass->context->container'.
7836
7837         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7838         the `context->container' when creating a new MonoGenericContext.
7839
7840 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7841
7842         * reflection.c (compare_genericparam): Sort params with identical
7843         owner by their number. Fixes gen-111 on sparc.
7844
7845 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7846
7847         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7848         around the domain changes.
7849
7850         * appdomain.c (mono_domain_unload): Handle the case when the thread
7851         calling Unload is itself being aborted during unloading. Fixes #70022.
7852
7853         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7854
7855         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7856         checkpoint_func as an icall so it gets a wrapper.
7857         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7858         in the cross-appdomain wrappers too.
7859
7860         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7861
7862         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7863
7864         * reflection.c: Fix some memory leaks.
7865         
7866 2004-12-02  Martin Baulig  <martin@ximian.com>
7867
7868         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7869
7870         * metadata.c (generic_class_cache): New static hashtable.
7871         (mono_metadata_lookup_generic_class): New public method.
7872
7873 2004-12-02  Martin Baulig  <martin@ximian.com>
7874
7875         * class.c (mono_class_create_from_typedef): Call
7876         mono_class_setup_parent() and mono_class_create_mono_type() before
7877         parsing the interfaces.
7878
7879 2004-12-02  Martin Baulig  <martin@ximian.com>
7880
7881         * metadata.c (generic_inst_cache): New static hashtable.
7882         (mono_metadata_lookup_generic_inst): New public function.
7883         (mono_metadata_inflate_generic_inst): New public function.
7884         (mono_metadata_parse_generic_inst): New public function.
7885         (do_mono_metadata_parse_generic_class): Use the new
7886         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7887         since this'll also use the cache.
7888
7889         * reflection.c (mono_reflection_bind_generic_method_parameters):
7890         Use mono_metadata_lookup_generic_inst() to use the new cache.
7891
7892         * class.c (inflate_mono_type): Use
7893         mono_metadata_inflate_generic_inst() to inflate a generic
7894         instance; this'll also use the new cache.
7895
7896         * loader.c (method_from_methodspec): Use
7897         mono_metadata_parse_generic_inst() and
7898         mono_metadata_inflate_generic_inst() rather than parsing it
7899         manually, so we can use the new cache.
7900
7901 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7902
7903         * threads.c (wait_for_tids): Do not incorrectly free threads when 
7904         the wait times out.
7905
7906 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
7907
7908         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
7909         iter->args based on whether parameters are passed in registers (i.e.
7910         MONO_ARCH_REGPARMS is defined)
7911
7912 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
7913
7914         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
7915         the exception message. Fixes #70070.
7916         (method_from_methodspec): Fix warnings.
7917
7918 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7919
7920         * process.c: (complete_path) return the path quoted
7921
7922 2004-12-01  Martin Baulig  <martin@ximian.com>
7923
7924         * class-internals.h (MonoGenericInst): New structure.
7925         (MonoGenericClass): Replaced `type_argc', `type_argv' and
7926         `is_open' with `MonoGenericInst *inst'.
7927         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
7928         `is_open' with `MonoGenericInst *inst'.
7929
7930 2004-11-30  Martin Baulig  <martin@ximian.com>
7931
7932         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
7933
7934         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
7935         to `generic_class_cache'.
7936
7937         * metadata.c
7938         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
7939         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
7940         (mono_generic_inst_is_valuetype): Renamed to
7941         mono_generic_class_is_valuetype().
7942
7943         * class-internals.h
7944         (MonoGenericInst): Renamed to MonoGenericClass.
7945         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
7946         (MonoClass): Renamed `generic_inst' to `generic_class'.
7947         (MonoGenericContext): Renamed `ginst' to `gclass'.
7948
7949         * object-internals.h
7950         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
7951
7952         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
7953         mono_reflection_generic_class_initialize().
7954
7955         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
7956         now known as "System.Reflection.MonoGenericClass".
7957         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
7958
7959 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
7960
7961         * class-internals.h: Added a flag field to MonoClass to cache the
7962         declarative security attributes actions associated with the class.
7963         * domain-internals.h: Added booleans to MonoJitInfo to cache the
7964         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
7965         applicable to the JITted method.
7966         * reflection.c|h: Added functions to extract (as flags) which security
7967         actions are available (declaratively) for a method, class or assembly.
7968         * metadata.c|h: Added functions to search the declarative security
7969         table in the metadata.
7970         
7971 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
7972
7973         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
7974         EXPORTEDTYPES are already in the class name cache, so there is no
7975         need to add extra code here to look at them. Just removes a bit of
7976         cruft.
7977
7978         (ves_icall_System_Environment_get_TickCount): No need for #if
7979         WINDOWS. We already have the code in io-layer.
7980
7981 2004-11-28  Martin Baulig  <martin@ximian.com>
7982
7983         * loader.c
7984         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
7985         Fixes gen-112.cs.
7986
7987 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
7988
7989         * assembly.c (do_mono_assembly_open): Instead of having a
7990         conditional WITH_BUNDLE, incorporate support for bundles here, by
7991         having a global `bundles' variable holding a pointer to the actual
7992         bundles. 
7993
7994         (mono_register_bundled_assemblies): New API call used by the
7995         bundle code. 
7996
7997         See mkbundle.1 for details.
7998         
7999 2004-11-27  Martin Baulig  <martin@ximian.com>
8000
8001         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8002         the vtable for generic methods.
8003
8004 2004-11-26  Martin Baulig  <martin@ximian.com>
8005
8006         * metadata.c
8007         (mono_metadata_generic_method_hash): New public function.
8008         (mono_metadata_generic_method_equal): Likewise.
8009
8010         * class-internals.h
8011         (MonoGenericContainer): Added `GHashTable *method_hash'.
8012
8013         * reflection.c (ReflectionMethodBuilder): Added
8014         `MonoGenericContainer *generic_container'.
8015         (reflection_methodbuilder_to_mono_method): Don't create a new
8016         MonoGenericContainer each time we're called.
8017         (mono_reflection_bind_generic_method_parameters): Use
8018         `container->method_hash' to cache the results so we don't create a
8019         different method if we're called several times with the same
8020         arguments.
8021
8022         * loader.c (method_from_methodspec): Use the new
8023         `container->method_hash' here, too.
8024
8025 2004-11-26  Martin Baulig  <martin@ximian.com>
8026
8027         * class.c (inflate_generic_signature): Correctly compute
8028         `res->has_type_parameters'.
8029         (mono_class_vtable): Use the `has_type_parameters' flag to
8030         determine whether we're a generic method.
8031
8032         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8033
8034 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8035
8036         * object.c (mono_runtime_run_main): Fix a small memory leak.
8037
8038 2004-11-25  Martin Baulig  <martin@ximian.com>
8039
8040         * class.c (set_generic_param_owner): Fixed the loop.
8041
8042 2004-11-25  Martin Baulig  <martin@ximian.com>
8043
8044         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8045         generic methods.
8046
8047 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8048
8049         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8050         names. Fixes #69787.
8051
8052 2004-11-24  Martin Baulig  <martin@ximian.com>
8053
8054         * class.c (mono_class_create_generic_2): If we don't have a
8055         `ginst->parent', inflate `gklass->parent' to get our parent.
8056
8057 2004-11-24  Martin Baulig  <martin@ximian.com>
8058
8059         * reflection.c (compare_genericparam): Correctly sort the
8060         GenericParam table; fixes #69779.
8061
8062 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8063
8064         * reflection.c: When writing a PE file, don't create a huge
8065         buffer in memory. Just write the arrays we have to the file.
8066         This reduces memory usage.
8067
8068         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8069         globally.
8070
8071 2004-11-17  Martin Baulig  <martin@ximian.com>
8072
8073         * class.c (mono_class_init): Don't setup `class->parent' for
8074         dynamic instances; moved this to mono_class_generic_2().
8075         (mono_class_create_generic): Also set `klass->inited' for dynamic
8076         generic instances.
8077         (mono_class_create_generic_2): Don't do anything for dynamic
8078         generic instances.  Set `klass->parent' here and also call
8079         mono_class_setup_parent() here. 
8080
8081         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8082         `MonoType *parent' argument; set `ginst->parent' before calling
8083         mono_class_create_generic_2(), so we set the correct parent.
8084
8085 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8086
8087         * reflection.c: allow getting attributes from ModuleBuilder
8088         (used by ikvm).
8089
8090 2004-11-17  Martin Baulig  <martin@ximian.com>
8091
8092         * class.c (mono_class_create_from_typedef): If a type parameter is
8093         inherited from an outer class, set its owner to that class.
8094
8095 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8096
8097         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8098           for (int*) written size. This fixes bug #69592.
8099
8100 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8101
8102         * icall.c: Added IsAuthenticodePresnet internal call.
8103         * image.c|h: New function that check a MonoImage for an Authenticode
8104         signature in the certificate PE data directory.
8105         * security.c|h: New internal call to ask the runtime if an 
8106         Authenticode signature seems referenced in the PE header.
8107
8108 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8109
8110         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8111
8112         * reflection.c (mono_image_create_pefile): Free the assembly streams
8113         after writing out the assembly file.
8114
8115         * object.c (mono_runtime_run_main): Fix small memory leak.
8116
8117         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8118         property access modifiers. Fixes #69389.
8119
8120 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8121
8122         * domain.c, object.c, object-internals.h, domain-internals.h,
8123         object.h, marshal.c: keep dynamic code info per domain.
8124
8125 2004-11-15  Martin Baulig  <martin@ximian.com>
8126
8127         * class.c (mono_type_get_name_recurse): Put type arguments in
8128         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8129         see bug #68387.
8130
8131 2004-11-15  Martin Baulig  <martin@ximian.com>
8132
8133         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8134         (mono_class_setup_vtable): When computing `the_cname' for a
8135         generic instance, don't include the namespace since we'd otherwise
8136         add it twice.
8137
8138 2004-11-15  Martin Baulig  <martin@ximian.com>
8139
8140         * class.c (mono_class_create_generic): Changed return type to void.
8141         (mono_class_create_generic_2): New public function; setup
8142         `class->method', `class->field' and `class->interfaces' here
8143         instead of in mono_class_init().
8144
8145         * class.h (mono_class_create_generic): Moved to class-internals.h.
8146
8147 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8148
8149         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8150         rather than writing to memory, write to this file. Right now,
8151         we are just writting into a buffer, and copying that. However
8152         we can avoid the buffer later.
8153
8154         (mono_dynamic_stream_reset): new function
8155
8156         * icall.c, object-internals.h: update for the above.
8157
8158 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8159
8160         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8161         have been using gc'd memory. First it is slower, unlikely
8162         the comment in the source code said, secondly, it increases
8163         our footprint to do it in the gc.
8164
8165         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8166         the method so that it does not have to copy to managed code.
8167
8168 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8169
8170         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8171
8172 2004-11-12  Martin Baulig  <martin@localhost>
8173
8174         * reflection.c (mono_image_create_token): Allow generic method
8175         definitions here, since they may appear in an `.override'; see
8176         gen-98/gen-99 for an example.
8177
8178 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8179
8180         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8181         #69365.
8182
8183         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8184         descriptive.
8185
8186 2004-11-11  Martin Baulig  <martin@ximian.com>
8187
8188         * class.c (mono_class_setup_vtable): In an explicit interface
8189         implementation, the method name now includes the arity.
8190
8191 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8192
8193         * object.c (mono_array_full_copy): Fix warning.
8194
8195 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8196
8197         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8198         mono_class_get_method_from_name() instead.
8199         
8200         * class-internals.h: Added two new types of wrappers. 
8201         Added MonoRemotingTarget enum. Added new trampoline function type, which
8202         takes an additional MonoRemotingTarget value as parameter, so it is
8203         possible to request a trampoline for a specific target.
8204         
8205         * class.c: Added new mono_class_get_method_from_name() method.
8206         
8207         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8208         general remoting sinks and one specific for cross domain calls.
8209         
8210         * debug-helpers.c: Added new wrapper names.
8211         
8212         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8213         of a remote class.
8214         
8215         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8216         
8217         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8218         with several other methods (mono_marshal_get_xappdomain_dispatch,
8219         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8220         and others) can generate a fast remoting wrapper for cross domain calls.
8221         More information can be found in docs/remoting.
8222         Other changes: Removed mono_find_method_by_name, and used
8223         mono_class_get_method_from_name instead.
8224         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8225         is stored in the remoting invoke hashtable.
8226         
8227         * marshal.h: published the new method for getting the xdomain wrapper,
8228         and also added a method for getting the adequate wrapper for a given
8229         method and target.
8230         
8231         * object-internals.h, object.c: Added a couple of methods for capying and
8232         cloning arrays.
8233         Modified mono_install_remoting_trampoline, which takes the new remoting
8234         trampoline that has a remoting target as parameter.
8235         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8236         will return the most suitable vtable for the target.
8237         Added mono_remote_class_vtable, which returns the vtable of a remote class
8238         (which can be the normal remoting vtable or the xdomain vtable).
8239         
8240         * threads.c: the xdomain invoke and dispatch wrappers must also be
8241         protected against interruptions.
8242
8243 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8244
8245         * icall.c: use memmove in BlockCopyInternal when the source and
8246         destination arrays are the same.
8247
8248 2004-11-09  Martin Baulig  <martin@ximian.com>
8249
8250         * class-internals.h (MonoGenericContainer): Removed `method' and
8251         `signature', replaced them with `is_method' and `is_signature'
8252         flags.  Added `context'.
8253
8254         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8255         instead of a `MonoGenericContainer *'.
8256
8257         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8258         for dynamic type parameters.
8259         (mono_metadata_load_generic_params): Setup `container->context'.
8260
8261         * reflection.c (mono_reflection_setup_generic_class): Setup
8262         `tb->generic_container->context'.
8263         (do_mono_reflection_bind_generic_parameters): Use
8264         mono_class_inflate_generic_type() to correctly inflate types,
8265         rather than using our own hack just for MONO_TYPE_VAR.
8266
8267 2004-11-09  Martin Baulig  <martin@ximian.com>
8268
8269         * class.c (mono_class_inflate_generic_method): Small fix; don't
8270         crash here.
8271
8272         * icall.c
8273         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8274         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8275         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8276         (ves_icall_Type_BindGenericParameters): Likewise.
8277         (ves_icall_Type_get_IsGenericInstance): Likewise.
8278         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8279         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8280         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8281         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8282
8283 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8284
8285         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8286         assembly versions and public key tokens. Fixes #69113.
8287
8288 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8289
8290         * metadata.c: fix bug introduced with the type cache changes
8291         on 2004-11-06.
8292
8293 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8294
8295         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8296         the MonoClass pointer instead of the token in exception clauses.
8297         * reflection.c: updates for the above and make the code not depend
8298         on the structure of MonoExceptionClause.
8299
8300 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8301
8302         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8303         Add support for dynamic assemblies. Fixes #69114.
8304
8305         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8306
8307 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8308
8309         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8310         since most only those methods use it. the code member of
8311         MonoMethodPInvoke was dead, so that can be removed too. Also,
8312         remove inline_count (again, not used), and move slot so that it
8313         can share bits with some other flags. This saves 8 bytes in the
8314         structure and gives us about 50 kb back for mcs helloworld.cs
8315
8316         * *.[ch]: Do naming changes for the above.
8317
8318         * loader.c (mono_method_get_header): Lazily init the header
8319         on first access.
8320         (mono_get_method_from_token): don't init the header here
8321         (mono_free_method): the header may never be allocated
8322
8323         Overall, this saves 150 kb of unmanaged allocations
8324         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8325         memory at runtime.
8326         
8327         * loader.c, loader.h (mono_method_get_header): new accessor.
8328
8329         * *.[ch]: use the above method. Prepares us to lazily load
8330         the header.
8331
8332         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8333         three warnings, which are actual bugs (see 69206).
8334
8335         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8336         unused. Saves a cool 4 bytes / method.
8337
8338 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8339
8340         * metadata.c (builtin_types): Add types for System.Object here.
8341         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8342         for a class or valuetype from klass->this_arg or klass->byval_arg.
8343
8344         On mcs for a hello world, this gets us down from 21836 MonoType's
8345         to 14560.
8346
8347         (mono_metadata_free_type): Account for the above change.
8348
8349 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8350
8351         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8352         exception instead of asserting if name is null.
8353         (ves_icall_System_AppDomain_GetData): Ditto.
8354
8355 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8356
8357         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8358         EnumBuilder.
8359
8360         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8361         Return NULL when the domain does not have entry_assembly set.
8362
8363         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8364         Add a 'resource_modules' argument.
8365         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8366
8367         * reflection.c (mono_reflection_create_runtime_class): Move setting
8368         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8369         for enums too.
8370
8371         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8372         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8373         Throw an ArgumentNullException if 'ptr' is null.
8374
8375         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8376         assemblies here. Fixes #69020.
8377
8378 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8379
8380         * reflection.c (build_compressed_metadata): Fix the previous patch for
8381         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8382         the stack.
8383
8384 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8385
8386         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8387         the cultures is false. Fixes #69090.
8388
8389         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8390         detected by valgrind.
8391         
8392         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8393         TypeResolve multiple times for the same type. Fixes #65577.
8394
8395 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8396
8397         * marshal.c: Avoid using ldftn to call managed functions. It is
8398         much slower than just a call.
8399
8400         * reflection.c (mono_module_get_object): free the basename we
8401         allocate here from glib.
8402         
8403         * reflection.c (ensure_runtime_vtable): make sure to free
8404         overrides.  Also, we were allocating an array of MonoMethod not an
8405         array of MonoMethod*.
8406
8407         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8408
8409         * image.c (mono_image_close): free image->guid here.
8410
8411 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8412
8413         * reflection.c: Fix some spec conformance issues with the PE file
8414         structures so mcs compiled apps run on the Net 2.0 beta.
8415
8416 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8417
8418         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8419         Implement this. Fixes #67264.
8420
8421         * debug-helpers.h debug-helpers.c marshal.c: Move 
8422         mono_find_method_by_name to debug-helpers.c.
8423
8424 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8425
8426         * object.c (mono_release_type_locks): type_initialization_hash is
8427         a GHashTable.
8428
8429         * reflection.c object.c object-internals.h: Fix warnings.
8430
8431         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8432         without accessors. Fixes #61561.
8433
8434         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8435         application base from the root domain if not set. Fixes #65641.
8436         (mono_runtime_init): Fix warning.
8437
8438 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8439
8440         * appdomain.c: call mono_thread_pool_init.
8441         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8442         of worker threads based on the number of CPUs and the environment
8443         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8444         for non-windows (windows) systems.
8445
8446 2004-10-27  Chris Toshok  <toshok@ximian.com>
8447
8448         * mono-debug-debugger.c (write_class): don't call mono_class_init
8449         here, as even with the check for (!klass->init_pending), we get
8450         into a situation where we're hitting cycles in class
8451         initialization.  Fixes #68816.
8452
8453 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8454
8455         * image.c: Avoid overwriting values in the loaded_images_hash when an
8456         assembly is loaded multiple times. Fixes #61152.
8457
8458         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8459         so multiple satellite assemblies for the same name can be loaded.
8460         Fixes #68259.
8461
8462         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8463         not NULL.
8464
8465         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8466         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8467
8468         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8469         pending finalizers are not invoked after the appdomain has been 
8470         unloaded. Fixes #67862.
8471
8472 2004-10-22  Martin Baulig  <martin@ximian.com>
8473
8474         * mono-debug-debugger.c
8475         (mono_debugger_runtime_invoke): Don't box valuetypes.
8476
8477 2004-10-22  Chris Toshok  <toshok@ximian.com>
8478
8479         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8480         don't hide private methods.
8481
8482 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8483
8484         * icall.c: Allows the runtime to "share" (when known) the public key
8485         token of an assembly. This avoid the need to recalculate the token 
8486         (from the public key) in managed code.
8487
8488 2004-10-21  Chris Toshok  <toshok@ximian.com>
8489
8490         * debug-helpers.c (append_class_name): argh, revert last patch.
8491         
8492 2004-10-21  Chris Toshok  <toshok@ximian.com>
8493
8494         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8495         not '/', so that it matches what the debugger uses to look up
8496         methods.
8497
8498 2004-10-21  Martin Baulig  <martin@ximian.com>
8499
8500         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8501         public method; this is called each time an exception is thrown and
8502         allows the debugger to use exception catch points.
8503
8504 2004-10-21  Martin Baulig  <martin@ximian.com>
8505
8506         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8507         the stack pointer and the exception object in some struct and pass
8508         that to the debugger.
8509
8510 2004-10-21  Chris Toshok  <toshok@ximian.com>
8511
8512         * mono-debug-debugger.c (do_write_class): add instance/static
8513         event support.  We don't expose "raise" or "other" yet.
8514         (event_is_static): new method.
8515
8516 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8517
8518         * mono-debug-debugger.c
8519         (mono_debugger_handle_exception): Remove
8520         bogus return value for fussy compilers.
8521
8522 2004-10-20  Martin Baulig  <martin@ximian.com>
8523
8524         * mono-debug-debugger.c
8525         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8526         (mono_debugger_handled_exception): Likewise.
8527
8528 2004-10-20  Martin Baulig  <martin@ximian.com>
8529
8530         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8531         MONO_DEBUGGER_EVENT_EXCEPTION.
8532
8533         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8534         public function to send the debugger a notification for an
8535         exception and inform it about a catch/finally clause.
8536
8537 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8538
8539         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8540         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8541         fix 2.95 build. 
8542
8543         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8544
8545 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8546
8547         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8548         marshalled as [In,Out]. Fixes #58325.
8549
8550 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8551
8552         * reflection.c (mono_method_body_get_object): Implement some fields.
8553
8554 2004-10-12  Martin Baulig  <martin@ximian.com>
8555
8556         * reflection.c (mono_reflection_bind_generic_parameters): Small
8557         fix, correctly retrieve our parent from a generic instance.
8558
8559 2004-10-12  Martin Baulig  <martin@ximian.com>
8560
8561         * metadata.c (mono_metadata_generic_param_equal): We always have
8562         an owner.
8563
8564         * class.c
8565         (mono_class_from_generic_parameter): We need to have an owner.
8566         (my_mono_class_from_generic_parameter): Likewise.
8567
8568         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8569         mono_reflection_create_generic_class() and added a new
8570         mono_reflection_setup_generic_class().  
8571         (mono_reflection_initialize_generic_param): If we're a nested
8572         generic type and inherited from the containing class, set our
8573         owner to the outer class.
8574
8575 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8576
8577         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8578
8579         * reflection.c (mono_method_body_get_object): New function to create
8580         a MethodBody object.
8581
8582         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8583
8584 2004-10-11  Martin Baulig  <martin@ximian.com>
8585
8586         * metadata.c (_mono_metadata_type_equal): Renamed to
8587         do_mono_metadata_type_equal() and made static.
8588
8589 2004-10-11  Martin Baulig  <martin@ximian.com>
8590
8591         * appdomain.c: Bump corlib version number to 28.
8592
8593 2004-10-10  Martin Baulig  <martin@ximian.com>
8594
8595         * class-internals.h
8596         (MonoGenericInst): Added `MonoGenericContainer *container'.
8597         (MonoGenericMethod): Likewise.
8598         (MonoGenericContext): Likewise.
8599         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8600
8601         * metadata.c
8602         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8603         (do_mono_metadata_parse_generic_inst): Likewise.
8604         (mono_metadata_parse_type_full): New public method.  This is the actual
8605         mono_metadata_parse_type() implementation - with an additional
8606         `MonoGenericContainer *' argument.
8607         (mono_metadata_parse_array_full): Likewise.
8608         (mono_metadata_parse_signature_full): Likewise.
8609         (mono_metadata_parse_method_signature_full): Likewise.
8610         (mono_metadata_parse_mh_full): Likewise.
8611         (mono_type_create_from_typespec): Likewise.
8612         (mono_metadata_interfaces_from_typedef_full): New public method;
8613         this is similar to the other _full() methods, but we take a
8614         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8615         (mono_metadata_parse_generic_param): Take an additional
8616         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8617         from that container.
8618         (mono_metadata_generic_param_equal): New static method to compare
8619         two type parameters.
8620         (_mono_metadata_type_equal): New static method; takes an
8621         additional `gboolean signature_only' argument - if true, we don't
8622         compare the owners of generic parameters.
8623         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8624         with a TRUE argument - do a signature-only comparision.
8625
8626         * loader.c: Use the new _full() methods and pass the
8627         MonoGenericContainer to them.
8628
8629         * object-internals.h (MonoReflectionTypeBuilder): Added
8630         `MonoGenericContainer *generic_container' field.
8631         (MonoReflectionMethodBuilder): Likewise.
8632
8633 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8634
8635         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8636         case initial images of dynamic assemblies.
8637
8638         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8639
8640         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8641
8642         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8643         length of event->other array.
8644         (typebuilder_setup_events): Ditto.
8645
8646         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8647         'assembly_by_name' and add an 'assemblies' list.
8648
8649         * assembly.h assembly.c: Add a new search hook for determining whenever
8650         an assembly is already loaded. Use this instead of searching in the
8651         loaded_assemblies list.
8652
8653         * domain.c appdomain.c: Implement the new search hook so loaded 
8654         assemblies are now scoped by appdomain. Fixes #67727.
8655
8656 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8657
8658         * threads.c (mono_thread_attach): Initialize synch_lock field so
8659         mono_thread_detach works again.
8660
8661         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8662         'lib' too. Fixes #63130.
8663
8664 2004-10-06  Jackson Harper  <jackson@ximian.com>
8665
8666         * culture-info-tables.h: regenerated.
8667
8668 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8669
8670         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8671         implemented by other interfaces in the result. Fixes #65764.
8672         
8673         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8674         Handle unloadable modules without crashing.
8675
8676         * image.c (load_modules): Revert the previous patch since modules must
8677         have a fixed index inside the array.
8678         
8679         * image.c (load_modules): Don't include native modules in the modules
8680         array.
8681
8682 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8683
8684         * reflection.h: Add param_defaults field.
8685
8686         * reflection.c: Add support for parameter defaults in dynamic methods.
8687         Fixes #64595.
8688
8689         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8690         an empty string when a type has no namespace. Fixes #64230.
8691
8692 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8693
8694         * tabledefs.h: Added "internal" security actions to support non-CAS
8695         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8696         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8697
8698 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8699
8700         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8701         constructor of abstract class. Fixes #61689.
8702
8703 2004-10-04  Martin Baulig  <martin@ximian.com>
8704
8705         * class-internals.h (MonoGenericContainer): New type.
8706         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8707         `MonoGenericContainer *generic_container'.
8708         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8709         `MonoGenericContainer *generic_container'.
8710
8711         * metadata.c (mono_metadata_load_generic_params): Return a
8712         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8713         removed the `num' argument.
8714
8715 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8716
8717         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8718         for dynamic images.
8719
8720         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8721         machine fields.
8722
8723         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8724
8725         * reflection.c: Save pe_kind and machine values into the generated
8726         image file.
8727
8728         * appdomain.c: Bump corlib version number.
8729
8730         * object-internals.h: Reorganize layout of LocalBuilder.
8731
8732         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8733         New helper function.
8734
8735         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8736         created MonoType for dynamic types. Fixes #66180.
8737
8738 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8739
8740         * threadpool.c: the ares hashtable needs a critical section around it.
8741         this prevents some nasty segfaults
8742
8743 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8744
8745         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8746         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8747         bug 67324).
8748         
8749 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8750
8751         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8752         
8753 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8754
8755         * image.c: Always canonicalize image file names, to avoid loading
8756         the same assembly twice when referenced using a relative path.
8757
8758 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8759
8760         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8761
8762         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8763
8764         * marshal.c: Fix warnings.
8765
8766 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8767
8768         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8769         attempting to marshal the delegate_trampoline as the method_addr.
8770         This patch has a static hashtable of marshalled delegates so that 
8771         we can map delegate_trampoline addresses back to delegates.  This
8772         allows a delegate passed to managed code to be passed back into native
8773         code.  Fixes #67039
8774
8775 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8776
8777         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8778
8779         * reflection.c (method_encode_code): Align method headers properly.
8780         Fixes #66025.
8781
8782 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8783
8784         * marshal.c: In the runtime invoke wrapper, reset the abort
8785         exception if it is cached. This avoids the automatic rethrowal of 
8786         the exception after the catch of the wrapper. Also check for pending
8787         interruptions before calling the managed method. This is done using
8788         the new method emit_thread_force_interrupt_checkpoint, since the
8789         normal checkpoint method is ignored when running the invoke wrapper.
8790         * object.c: If the abort exception is rethrown, set the abort_exc
8791         field of the thread, so it will be rethrown aftere every catch.
8792         * threadpool.c: Only run an interruption checkpoint if what has been
8793         requested is a stop of the thread (aborts will be ignored).
8794         * threads.c: By default, a thread will now never be interrumped while
8795         running the runtime invoke wrapper (this ensures that runtime_invoke
8796         will always return to the caller if an exception pointer is provided).
8797         There is a new special method mono_thread_force_interruption_checkpoint()
8798         to force an interruption checkpoint even if running a protected
8799         wrapper, which is used by the same runtime invoke wrapper to do a check
8800         at a safe point.
8801
8802 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8803
8804         * object.c, object-internals.h: Implemented mono_release_type_locks,
8805         which releases the cctor locks held by a thread.
8806         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8807         by a thread. Added mono_thread_exit() method to be used to safely stop
8808         a thread.
8809
8810 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8811
8812         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8813         Move null check before dereference.  Avoid indexing beyond the end
8814         of the 'modules' array.
8815
8816 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8817
8818         * metadata-internals.h (MonoImage): Add module_count field.
8819         * image.c (load_modules): Set image->module_count.
8820         (mono_image_load_file_for_image): Use image->module_count.
8821         * reflection.c (mono_image_load_module): Append to image->modules array 
8822         of dynamic assembly.
8823         (mono_module_get_object): Fix loop to actually increment index.
8824         Use image->module_count.
8825         * assembly.c (mono_assembly_load_references): Use image->module_count.
8826         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8827         Likewise.
8828
8829 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8830
8831         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8832         Avoid assert on generic types.
8833
8834 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8835
8836         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8837
8838         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8839
8840         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8841         function to convert a MarshalSpec structure to its managed counterpart.
8842
8843         * reflection.c: Fix warnings.
8844         
8845         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8846         field.
8847
8848         * icall.c (mono_create_icall_signature): Fix build.
8849
8850 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8851
8852         * icall.c: Add MakePointType icall.
8853
8854         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8855         warnings.
8856
8857 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8858
8859         * threadpool.c: reuse allocated slots in the queue.
8860
8861 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8862
8863         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8864
8865         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8866
8867         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8868         previous change.
8869
8870         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8871         ThrowOnUnmappableChar.
8872
8873         * icall.c (ves_icall_Type_GetPacking): New icall.
8874
8875 2004-09-24  Martin Baulig  <martin@ximian.com>
8876
8877         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8878
8879 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8880
8881         * appdomain.c:
8882         (mono_domain_set): allow setting a domain that is being unloaded.
8883         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8884         being unloaded.
8885
8886 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8887
8888         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8889         the GetCustomAttributes icall.
8890
8891 2004-09-23  Martin Baulig  <martin@ximian.com>
8892
8893         * object-internals.h (MonoReflectionGenericParam): Replaced
8894         'has_ctor_constraint', `has_reference_type' and `has_value_type'
8895         with `guint32 attrs'.
8896
8897 2004-09-23  Martin Baulig  <martin@ximian.com>
8898
8899         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
8900
8901 2004-09-23  Martin Baulig  <martin@ximian.com>
8902
8903         * object-internals.h (GenericParameterAttributes): New enum.
8904
8905 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8906
8907         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
8908         
8909         * class.c (init_events): Fill out event->other field.
8910
8911         * class.c: Fix warnings.
8912
8913         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
8914
8915 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
8916
8917         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
8918         walk which doesn't supply the IL offset.
8919
8920 2004-09-22  Martin Baulig  <martin@ximian.com>
8921
8922         * reflection.c (mono_reflection_setup_internal_class): If we're
8923         System.ValueType, System.Object or System.Enum, set
8924         `klass->instance_size' and create the vtable.
8925         (mono_reflection_create_internal_class): If we're an enum type,
8926         get the base class from our current corlib.
8927
8928 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
8929
8930         * reflection.h (MonoResolveTokenError): New type.
8931
8932         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
8933         icall.
8934
8935         * icall.c: Add an 'error' argument to the ResolveToken icalls.
8936
8937 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
8938
8939         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
8940         Support also calling constructors, but only for already allocated objects.
8941
8942 2004-09-17  Geoff Norton <gnorton@customerdna.com>
8943
8944         * reflection.c (type_get_qualified_name): If the klass is null
8945         return the typename to avoid a NullRefEx.
8946         (encode_cattr_value): Get the qualified name of the boxed type,
8947         not the underlying enumtype.  Fixes #62984.
8948
8949 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
8950
8951         * marshal.c: Fix problems with previous checkin.
8952
8953 2004-09-21    <vargaz@freemail.hu>
8954
8955         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
8956         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
8957
8958         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
8959
8960 2004-09-21  Geoff Norton <gnorton@customerdna.com>
8961
8962         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
8963         should only return a type for pointers, arrays, and passbyref types.
8964         Fixes bug #63841.
8965
8966 2004-09-21  Martin Baulig  <martin@ximian.com>
8967
8968         * domain.c (mono_debugger_check_runtime_version): New public
8969         function.
8970
8971         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
8972
8973 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
8974
8975         * reflection.c: Added missing sort to the declarative security 
8976         attributes table. MS implementation stops seeing the attributes if the
8977         token number regress in the table (as shown by ildasm and permview).
8978
8979 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
8980
8981         * object-internals.h (MonoReflectionModule): Add 'token' field.
8982         
8983         * reflection.c (mono_reflection_get_token): Add support for Module
8984         and Assembly.
8985         (mono_module_get_object): Set 'token' field.
8986         (mono_module_file_get_object): Set 'token' field.
8987
8988         * icall.c: Add new Assembly and Module icalls.
8989
8990         * appdomain.c: Bump corlib version.
8991
8992 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
8993
8994         * loader.h loader.c class.h class.c: Add helper functions for obtaining
8995         tokens of metadata objects.
8996
8997         * reflection.h reflection.c (mono_reflection_get_token): New function
8998         to obtain the token of a metadata object.
8999
9000         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9001
9002 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9003
9004         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9005         
9006         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9007
9008 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9009
9010         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9011         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9012         AssemblyBuilder to access the permissions set in the class lib.
9013         * reflection.c: Added security attributes encoding step in 
9014         mono_image_build_metadata.
9015         * tabledefs.h: Added new security actions defined in 2.0:
9016         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9017
9018 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9019
9020         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9021         macro parameter.
9022
9023 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9024  
9025         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9026           finalized. There where random SIGSEVs at program termination, when
9027           an object being finalized was trying to do a string comparison and
9028           the current culture was already finalized.
9029  
9030 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9031
9032         * threads.c: call thread_cleanup before finishing the thread if we get
9033         there.
9034
9035 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9036
9037         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9038         assemblies from the parent. Fixes #65665.
9039
9040 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9041
9042         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9043         modifiers.
9044
9045 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9046
9047         * reflection.h: add prototype for mono_get_dbnull_object
9048         * reflection.c: add prototypes for get_default_param_value_blobs 
9049         and mono_get_object_from_blob for fussier compilers
9050
9051 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9052  
9053         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9054         false deadlock checks in class initialization.
9055  
9056 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9057
9058         * image.c (mono_image_addref): Fix comment.
9059
9060         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9061         possible.
9062
9063 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9064
9065         * reflection.c (mono_param_get_objects): Modified to return
9066         ParameterInfo.DefaultValue object.
9067
9068         (get_default_param_value_blobs):
9069         (mono_get_object_from_blob):
9070         (mono_get_dbnull_object): New helper routines. 
9071
9072         * object.c (mono_get_constant_value_from_blob): New helper routine
9073         carved out from get_default_field_value ()
9074
9075         * object-internals.h (mono_get_constant_value_from_blob): Added
9076         function declaration.
9077
9078 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9079
9080         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9081         referenced assemblies. Fixes #62135.
9082
9083         * exception.h exception.c (mono_get_exception_file_not_found2): New
9084         helper function.
9085
9086 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9087
9088         * class.h class.c: Add mono_type_get_underlying_type ().
9089
9090 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9091
9092         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9093         Fix GetTypes() to support dynamically created assemblies.
9094
9095 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9096
9097         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9098         
9099         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9100         previous patch.
9101
9102         * reflection.h reflection.c loader.c: Allow dynamic construction of
9103         pinvoke methods. Fixes #65571.
9104         
9105         * reflection.c (mono_reflection_get_type): Revert previous change since
9106         it causes regressions.
9107
9108 2004-09-08  Martin Baulig  <martin@ximian.com>
9109
9110         * class.c (class_compute_field_layout): Don't call
9111         mono_class_layout_fields() for open generic instances.
9112
9113 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9114         * threads.c appdomain.c: fix typo in GC macro
9115
9116 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9117
9118         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9119         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9120
9121 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9122
9123         * image.c (mono_image_close): Applied patch from 
9124         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9125         assembly is loaded multiple times from data.
9126         
9127         * image.c (mono_image_open): Fix warning.
9128
9129 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9130
9131         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9132         once. Fixes #58334.
9133         
9134         * reflection.c (mono_reflection_create_runtime_class): Initialize
9135         klass->nested_classes. Fixes #61224.
9136
9137 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9138
9139         * threads.c: sched_yield() on exit, to allow threads to quit.
9140
9141 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9142
9143         * object.c (mono_unhandled_exception): Remove leftover debug code.
9144
9145 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9146
9147         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9148
9149 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9150
9151         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9152         
9153         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9154
9155 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9156
9157         * marshal.c (emit_marshal_array): Null terminate string arrays.
9158         
9159         * marshal.c (raise_auto_layout_exception): Fix warning.
9160
9161         * reflection.c (mono_param_get_objects): Initialize the default value
9162         with DBNull.Value, not null. Fixes #62123.
9163
9164 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9165
9166         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9167         throw an exception with a cute explanation.
9168
9169 2004-09-06  Dick Porter  <dick@ximian.com>
9170
9171         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9172         Close the new process's thread handle, as we don't use it.  The
9173         handle stays around forever otherwise.
9174
9175 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9176
9177         * object.c (arith_overflow): Fix warning.
9178
9179         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9180         calling conventions in method refs. Fixes #65352.
9181
9182         * reflection.c: Fix warnings.
9183
9184 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9185
9186         * icall.c: Add a new icall for Array.Clear
9187
9188 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9189
9190         * object.c: When allocating an array, we have to throw
9191         an overflow exception if any of the lengths are < 0.
9192
9193 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9194
9195         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9196         properly. Also move implementation of string array marshalling to 
9197         managed code. Fixes #42316.
9198
9199 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9200
9201         * assembly.c: provide more information when loading an assembly fails.
9202
9203 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9204
9205         * filewatcher.c: don't expect the development fam package to be
9206         installed.
9207
9208 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9209
9210         * marshal.c: Make a copy of the signature cookie since it will be
9211         freed by the caller.
9212         
9213         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9214
9215         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9216
9217         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9218         marshal specs.
9219
9220         * marshal.c: More refactoring.
9221         
9222         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9223         smaller functions.
9224
9225 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9226
9227         * object.c: In mono_message_invoke, fill the output parameter array after
9228           calling the managed method (it was done before the call). This fixes
9229           bug #59299.
9230
9231 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9232
9233         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9234         as well.
9235
9236 2004-09-02  Martin Baulig  <martin@ximian.com>
9237
9238         * class.c (mono_class_instance_size): Don't allow generic type
9239         definitions or open generic instances.
9240         (mono_class_array_element_size): If we're a value type, call
9241         mono_class_instance_size() on the original class.
9242
9243         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9244         handle generic instances.
9245
9246         * mono-debug-debugger.c (write_type): Handle generic instances
9247         like classes.
9248
9249 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9250
9251         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9252         the allocation request fails. Fixes #65089.
9253
9254         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9255         
9256         * object.c (mono_runtime_free_method): New function to free a dynamic
9257         method.
9258
9259         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9260         delegate trampoline.
9261
9262         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9263         with hasthis as dynamic,
9264
9265         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9266
9267         * domain.c (mono_jit_info_table_remove): New function to remove an
9268         entry from the jit info table.
9269
9270         * class-internals.h (MonoMethod): Add 'dynamic' field.
9271
9272         * loader.c: Fix warnings.
9273
9274 2004-09-01  Martin Baulig  <martin@ximian.com>
9275
9276         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9277         instead of mono_debugger_lock() because the latter one is a no-op
9278         unless running in the debugger.
9279
9280 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9281
9282         * class.c (class_compute_field_layout): Classes with auto-layout or
9283         reference fields are not blittable.
9284         
9285 2004-09-01  Dick Porter  <dick@ximian.com>
9286
9287         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9288         mono_image_get_filename() to get the assembly location.
9289
9290         * icall.c:
9291         * metadata.h: Fix compile warnings
9292
9293 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9294
9295         * class.c (class_compute_field_layout): System.Object is blittable.
9296
9297         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9298         as in/out. Fixes #59909.
9299
9300 2004-09-01  Martin Baulig  <martin@ximian.com>
9301
9302         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9303         mono_metadata_generic_inst_is_valuetype() if we're a generic
9304         instance to check whether our underlying type is a reference type.
9305
9306 2004-09-01  Martin Baulig  <martin@ximian.com>
9307
9308         * metadata.c (mono_type_size): If we're a generic instance, call
9309         mono_class_value_size() for value types.
9310
9311 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9312
9313         * marshal.c: Implement more custom marshalling functionality. Fixes
9314         #64915.
9315
9316 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9317
9318         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9319
9320 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9321
9322         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9323
9324         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9325
9326         * icall.c: Fix some warnings.
9327
9328         * threads.c (abort_appdomain_thread): Fix unref errors.
9329         (mono_thread_current): Fix THREAD_DEBUG define.
9330
9331 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9332
9333         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9334
9335         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9336
9337 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9338
9339         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9340         string arrays.
9341
9342 2004-08-28  Martin Baulig  <martin@ximian.com>
9343
9344         * metadata.c
9345         (mono_metadata_generic_inst_is_valuetype): New public function.
9346
9347         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9348         mono_metadata_generic_inst_is_valuetype() if we're a generic
9349         instance to check whether our underlying type is a valuetype.
9350
9351 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9352
9353         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9354         #63768.
9355
9356 2004-08-25  Martin Baulig  <martin@ximian.com>
9357
9358         * loader.c (mono_get_method_from_token): Abstract methods can also
9359         be generic and thus have type parameters.
9360
9361         * metadata-internals.h
9362         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9363
9364         * reflection.c (mono_image_get_generic_param_info): Don't create a
9365         metadata row, just add an entry to the `gen_params' array.
9366         (build_compressed_metadata): Sort the `gen_params' array and then
9367         actually create the metadata.
9368
9369 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9370
9371         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9372
9373 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9374
9375         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9376
9377 2004-08-24  Martin Baulig  <martin@ximian.com>
9378
9379         * class.cs (mono_class_is_subclass_of): Like an interface, a
9380         generic instance also derives from System.Object.
9381
9382 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9383
9384         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9385         custom modifiers to be in any order. Fixes #61990.
9386
9387 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9388
9389         * object.c: Register mono_object_new_fast icall.
9390         
9391         * object.c (mono_class_get_allocation_ftn): Return to calling
9392         mono_object_new_fast, since it seems faster to compute the object 
9393         size in unmanaged code than passing it as a parameter.
9394
9395         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9396
9397         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9398         this function with Boehm as the oom handler, so we don't have to check
9399         the result of GC_malloc.
9400
9401         * object.c: Remove checks for oom.
9402
9403         * object.h object.c (mono_class_get_allocation_ftn): New function to
9404         return the icall which can be used to allocate an instance of a given
9405         class. 
9406
9407         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9408
9409         * class-internals.h: Add 'enabled' field.
9410
9411 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9412
9413         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9414
9415 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9416         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9417         value 0x0010.
9418
9419 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9420
9421         * appdomain.c: use the Tls function for appdomain too,
9422         at Zoltan's request. Actually return in mono_context_get
9423
9424         * appdomain.c, profiler.c, threads.c: use __thread
9425
9426 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9427
9428         * appdomain.c threads.c: Call GC_CreateThread on windows.
9429
9430         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9431         multiple libraries since this don't work on windows.
9432
9433 2004-08-18  Martin Baulig  <martin@ximian.com>
9434
9435         * class-internals.h
9436         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9437         MonoMethodHeader.
9438
9439         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9440         MonoMethodNormal since we also need it for abstract and interface
9441         methods.
9442
9443         * reflection.c
9444         (build_compressed_metadata): Sort the GenericParam table.
9445         (mono_image_create_token): Added `gboolean create_methodspec'
9446         argument; this is false when generating a MethodImpl token.
9447         (reflection_methodbuilder_to_mono_method): Abstract and interface
9448         methods may also have generic parameters.
9449
9450 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9451
9452         * appdomain.c: thread local alloc
9453
9454 2004-08-17  Martin Baulig  <martin@ximian.com>
9455
9456         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9457
9458         * icall.c
9459         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9460         argument.
9461
9462         * class.c (mono_type_get_full_name): New public function.
9463         (mono_type_get_name): Don't include the type arguments.
9464
9465 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9466
9467         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9468         for inclusion into the mono executable.
9469
9470 2004-08-16  Martin Baulig  <martin@ximian.com>
9471
9472         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9473         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9474
9475 2004-08-14  Martin Baulig  <martin@ximian.com>
9476
9477         * class.c (dup_type): Also copy the `byref' field.
9478
9479 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9480
9481         * reflection.c (create_dynamic_mono_image): Revert the last change 
9482         since it breaks bootstrap.
9483
9484 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9485
9486         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9487
9488         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9489         not free them with g_free.
9490
9491 2004-08-11  Martin Baulig  <martin@ximian.com>
9492
9493         * reflection.c (mono_reflection_setup_internal_class): Also call
9494         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9495
9496 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9497
9498         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9499         called during default (first) AppDomain creation. Keep track of
9500         Evidence when loading assemblies.
9501
9502 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9503
9504         * opcodes.c, opcodes.h: reduce runtime relocations.
9505
9506 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9507
9508         * culture-info.h, locales.c: fixes and chages to sue the new
9509         optimized format of the locale data.
9510         * culture-info-tables.h: regenerated.
9511
9512 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9513         
9514         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9515
9516 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9517
9518         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9519         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9520         * domain-internals.h: icall declaration.
9521         * icall.c: icall registration.
9522         * object-internals.h: New fields in MonoAssembly for CAS.
9523
9524 2004-08-05  Duncan Mak  <duncan@ximian.com>
9525
9526         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9527         CEE_LDELEM_ANY.
9528
9529 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9530
9531         * reflection.c: fix to deal with object[] arrays in custom ctors
9532         (bug #62550).
9533
9534 2004-08-05  Martin Baulig  <martin@ximian.com>
9535
9536         * class.c (mono_class_array_element_size): Added support for
9537         generic instances and correctly handle "recursive" types.
9538
9539 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9540
9541         * assembly.c: Fix warnings.
9542
9543 2004-08-04  Martin Baulig  <martin@ximian.com>
9544
9545         * class.c
9546         (mono_type_get_name_recurse): Added `gboolean include_arity'
9547         argument specifying whether or not we should include the generic
9548         arity in the type name.
9549         (_mono_type_get_name): New static function.
9550         (mono_class_setup_vtable): If we're a generic instance, don't
9551         include the generic arity in the names of explicit method
9552         implementations.        
9553
9554 2004-08-03  Martin Baulig  <martin@ximian.com>
9555
9556         * class.c (mono_type_get_name_recurse): Enclose the generic type
9557         arguments in `<', '>'.
9558
9559 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9560
9561         * gc.c: make GC warning messages use the trace API, they are just
9562         noise to most of the users.
9563
9564 2004-08-03  Martin Baulig  <martin@ximian.com>
9565
9566         * debug-mono-symfile.c (read_string): Correctly read the string.
9567
9568 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9569
9570         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9571         
9572         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9573         icalls.
9574         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9575
9576 2004-07-30  Martin Baulig  <martin@ximian.com>
9577
9578         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9579         Reflect latest symbol writer changes.   
9580
9581 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9582
9583         * object.c: always create an object if null is passed
9584         to Invoke() where a valuetype is expected.
9585
9586 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9587
9588         * marshal.c (mono_marshal_init): make managed
9589         signatures match native ones better for 64bits.
9590
9591 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9592
9593         * appdomain.c: hack to build correctly the private bin path on windows.
9594         Fixes bug #61991.
9595
9596 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9597
9598         * assembly.c: Load mscorlib from the correct framework directory
9599           (mono/<version>/mscorlib.dll).
9600         * appdomain.h: Added prototypes for new functions.
9601         * internals.h: Added some prototypes.
9602         * domain.c: When initializing the runtime, get from the executable and
9603           the configuration files the runtime version that the app supports.
9604           Added support methods for reading app.exe.config. Added list of versions
9605           supported by the JIT. Added two new methods: mono_init_from_assembly,
9606           which initializes the runtime and determines the required version from
9607           the provided exe file, and mono_init_version, which initializes
9608           the runtime using the provided version.
9609         * icall.c: Get machine.config from version-specific directory.
9610         * reflection.c: When generating an image, embed the version number
9611           of the current runtime.
9612
9613 2004-07-28  Dick Porter  <dick@ximian.com>
9614
9615         * socket-io.c
9616         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9617         returned sockaddr size before creating the remote address object.
9618         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9619         61608.
9620
9621 2004-07-28  Dick Porter  <dick@ximian.com>
9622
9623         * locales.c (string_invariant_compare_char): Fix invariant char
9624         compares between upper and lower cases.  Fixes bug 61458.
9625
9626 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9627         
9628         * marshal.c: actually cache stelem.ref wrappers.
9629         
9630 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9631
9632         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9633         sections and remove the mono_cli_rva_map () function.
9634
9635 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9636
9637         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9638         by Geoff Norton (<gnorton@customerdna.com>).
9639
9640 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9641
9642         * class.c: fix class loads for pointer types (typeof(int) !=
9643         typeof(int*)).
9644
9645 2004-07-27  Martin Baulig  <martin@ximian.com>
9646
9647         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9648         reading the debugging information from an external ".mdb" file.
9649
9650 2004-07-24  Martin Baulig  <martin@ximian.com>
9651
9652         * reflection.c (mono_image_get_type_info): Only write a class
9653         layout entry if we actually have a size or a packing size.
9654
9655 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9656
9657         * reflection.c (type_get_fully_qualified_name): 
9658         insert cast to get type checking of ?: with non-gcc compilers
9659
9660 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9661
9662         * rand.c: use g_getenv for both lookups of
9663         MONO_EGD_SOCKET
9664
9665 2004-07-17  Martin Baulig  <martin@ximian.com>
9666
9667         * reflection.c (mono_reflection_bind_generic_method_parameters):
9668         Set `gmethod->reflection_info'.
9669
9670 2004-07-17  Martin Baulig  <martin@ximian.com>
9671
9672         * class.c (mono_class_create_from_typedef): Insert the newly
9673         created class into the hash table before computing the interfaces
9674         since we could be called recursively.
9675
9676 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9677
9678         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9679         function to implement stelem.ref in managed code
9680         * class-internals.h, debug-helpers.c: a new wrapper type
9681         for the above.
9682
9683 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9684
9685         * gc.c: allow GC handles to work even when no GC is compiled in.
9686         Fix part of bug #61134 (GetAddrOfPinnedObject).
9687
9688 2004-07-13  Peter Williams  <peter@newton.cx>
9689  
9690         * process.c (complete_path): Make sure we don't attempt to execute
9691         directories.
9692  
9693 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9694
9695         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9696           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9697           and will add/subtract the hour if needed
9698
9699 2004-07-12  Martin Baulig  <martin@ximian.com>
9700
9701         * reflection.c (mono_field_get_object): If we have
9702         `field->generic_info', take the attributes from
9703         `field->generic_info->generic_type'.    
9704
9705 2004-07-12  Martin Baulig  <martin@ximian.com>
9706
9707         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9708         This function must be called before initializing the runtime.
9709         (mono_debug_init_1): New function; call this after initializing
9710         the runtime, but before loading the assembly.  It tells the
9711         debugger to load corlib and the builtin types.
9712
9713         * mono-debug-debugger.c: Did some larger changes in the debugging
9714         code; support recursive class declarations, make sure we actually
9715         add all classes.
9716
9717 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9718
9719         * debug-helpers.c: undo my previous patch and fixed the real issue in
9720         ../mini/exceptions-x86.c
9721
9722 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9723
9724         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9725         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9726         called from other .cctors.
9727
9728 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9729
9730         * loader.c: Removed the mono_loader_wine_init hack now that we are
9731         doing a managed version of Windows.Forms.
9732
9733 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9734
9735         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9736         threadpool.c, threads.c: remove static data from rootset.
9737
9738 2004-07-09  Dick Porter  <dick@ximian.com>
9739
9740         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9741         Don't do any more processing if the matched length was 0.  It was
9742         increasing the size of the string before.  Fixes bug 61167.
9743
9744 2004-07-09  Dick Porter  <dick@ximian.com>
9745
9746         * socket-io.h:
9747         * socket-io.c
9748         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9749         Add support for SO_PEERCRED if its available.
9750
9751 2004-07-09  Peter Bartok <pbartok@novell.com>
9752         * loader.c: winelib.exe.so error message is now only displayed if
9753         MONO_DEBUG is set. To help us avoid questions when people are trying
9754         out the new Managed.Windows.Forms.
9755
9756 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9757
9758         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9759         for isinst and castclass wrappers.
9760
9761         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9762         to libmetadata from the JIT, so they could be used by the marshalling
9763         code and the interpreter.
9764
9765         * marshal.c: Register marshalling related JIT icalls here instead of
9766         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9767         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9768
9769         * metadata.h: Remove unneeded marshalling conversions.
9770
9771         * opcodes.c: Update for new opcodes.
9772         
9773 2004-07-08  Martin Baulig  <martin@ximian.com>
9774
9775         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9776         (mono_debug_get_domain_data): Make this function static.
9777
9778 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9779
9780         * gc.c, object.h: add nice GC handle API for embedders.
9781
9782 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9783
9784         * reflection.c: more changes for the new api
9785
9786         * object.c: When we reflect on a field w/ a constant value, it
9787         will not have a memory location, so we must access metadata. Also,
9788         allow easier reading of strings so that we can read them from
9789         the constant data.
9790
9791         * class.c (mono_class_layout_fields): no need for literal fields here.
9792
9793         * class-internals.h: api changes for const fields
9794
9795         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9796
9797 2004-07-06  Martin Baulig  <martin@ximian.com>
9798
9799         * mono-debug.h: Increment version number to 44.
9800
9801         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9802         now a gpointer, rewrote this whole method.
9803
9804         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9805         function.  Add information about the wrapper in a new "misc table".
9806
9807         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9808         for the new misc table.
9809
9810 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9811
9812         * metadata-internals.h image.c: Add a cache for helper signatures.
9813
9814         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9815
9816 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9817
9818         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9819         delegates from a delegate. Fixes #61033.
9820         
9821         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9822         marshalling of stringbuilder arrays. Fixes #59900.
9823
9824 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9825
9826         * icall.c: Add EnumBuilder:setup_enum_type icall.
9827
9828 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9829
9830         * icall.c: Added a new icall for the property version of
9831         OffsetOfStringData.
9832
9833 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9834
9835         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9836         it has a constant size across platforms.
9837
9838         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9839         stack trace.
9840
9841 2004-06-29  Martin Baulig  <martin@ximian.com>
9842
9843         * mono-debug.c (mono_debug_add_method): Protect the whole function
9844         in mono_debugger_lock(), not just parts of it.
9845
9846 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9847
9848         * reflection.c: make sure padding bytes in heaps are zeroed.
9849
9850 2004-06-24  David Waite  <mass@akuma.org>
9851
9852         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9853         image.c, loader.c, locales.c, marshal.c, metadata.c,
9854         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9855         string-icalls.c, threads.c: change to C90-style comments from C99 /
9856         C++ -style
9857
9858 2004-06-24  Dick Porter  <dick@ximian.com>
9859
9860         * threads.c
9861         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9862         return createdNew.  Fixes bug 60412.
9863
9864         * threads-types.h: 
9865         * icall.c: Add createdNew parameter to CreateMutex icall
9866
9867 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9868
9869         * reflection.c, object-internals.h: save default value in params.
9870
9871 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9872
9873         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9874         no need to build a new path combining that with the application base.
9875         Fixes bug #60442.
9876
9877 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9878
9879         * reflection.c: fixed minor standard compliance issues.
9880
9881 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9882
9883         * reflection.c: fixed issue with encoding some custom attributes
9884         (arrays in properties and fields, bug #60411).
9885
9886 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9887
9888         * reflection.c: fix start address when copying the public key token.
9889
9890 2004-06-23  Martin Baulig  <martin@ximian.com>
9891
9892         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
9893         the `exc' object in a static object to put it into the GC's root set.
9894
9895 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
9896
9897         * reflection.c: make mono_reflection_setup_internal_class ()
9898         callable a second time to setup a new parent class.
9899
9900 2004-06-23  Dick Porter  <dick@ximian.com>
9901
9902         * threads.c: Check for WAIT_IO_COMPLETION return values.
9903
9904 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
9905
9906         * appdomain.c: Removed the g_free on the public key token. Now copy 
9907         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
9908         * assembly.c: Added public key token string value when loading 
9909         assemblies. Fix bug #60439.
9910         * icall.c: Added missing informations (like public key) in 
9911         GetReferencedAssemblies. Fix #60519.
9912         * image.h: Changed definition for public key token from const char*
9913         public_tok_value to guchar public_key_token [17];
9914         * reflection.c: Updated for changes to public key token.
9915
9916 2004-06-22  Lluis Sanchez Gual
9917
9918         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
9919         for the field in base classes.
9920
9921 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9922
9923         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
9924         mark headers as not supported, they are installed only for use by the
9925         debugger.
9926
9927 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
9928
9929         * *.c, *.h: avoid namespace pollution in public headers.
9930
9931 2004-06-21  Martin Baulig  <martin@ximian.com>
9932
9933         * exception.c (mono_get_exception_security): It's in
9934         "System.Security", not in "System".
9935
9936         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
9937         the exception classes.
9938
9939 2004-06-21  Martin Baulig  <martin@ximian.com>
9940
9941         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
9942         Protect the exception object from being finalized.
9943
9944 2004-06-21  Martin Baulig  <martin@ximian.com>
9945
9946         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
9947         public function.
9948
9949 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
9950
9951         * reflection.c: Load the assembly in mono_reflection_type_from_name,
9952         if it was not loaded before. Fix parts of #60439.
9953
9954 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
9955
9956         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
9957         code that was broken since Ben's change: wrappers are now
9958         dependent on the method signature only again.
9959
9960 2004-06-21  Martin Baulig  <martin@ximian.com>
9961
9962         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
9963         added interface support.
9964
9965 2004-06-21  Martin Baulig  <martin@ximian.com>
9966
9967         * class.c (mono_vtable_get_static_field_data): New public method.
9968
9969 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
9970
9971         * filewatcher.c : Windows build fix to be compliant with API changes.
9972
9973 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
9974
9975         * class.h, class.c: more accessors.
9976         * metadata.h, metadata.c: prepare for hiding MonoType and
9977         MonoMethodSignature: people should use the accessors from now on
9978         outside of the tree.
9979
9980 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
9981
9982         * *.c, *.h: more API cleanups.
9983
9984 2004-06-18  Jackson Harper  <jackson@ximian.com>
9985
9986         * assembly.c: Trace loading assemblies.
9987         * loader.c: Trace loading native libraries.
9988         * mono-config.c: Trace loading config files.
9989         
9990 2004-06-18  Dick Porter  <dick@ximian.com>
9991
9992         * locales.c: Tell ICU the lengths of strings, it can cope with
9993         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
9994
9995 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
9996
9997         * image.c: swapped name/filename;
9998
9999 2004-06-18  Martin Baulig  <martin@ximian.com>
10000
10001         * mono-debug-debugger.c (write_class): Write the parent class at
10002         the end of the header.
10003
10004 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10005
10006         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10007
10008 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10009
10010         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10011         (bundle_obj): New conditional define.
10012         (BUILT_SOURCES): Remove.
10013         ($(bundle_srcs)): Make parallel-make safe.
10014         (libmonoruntime_la_LIBADD): Make unconditional.
10015         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10016         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10017
10018 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10019
10020         * culture-info-tables.h: It was inconsistent with the latest
10021           supp info files.
10022
10023 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10024
10025         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10026         be loaded.
10027
10028         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10029         with gcc 2.95.
10030
10031 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10032
10033         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10034         cleaned up public header threads.h.
10035
10036 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10037
10038         * Makefile.am, *.c, *.h: more API cleanups.
10039
10040 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10041
10042         * Makefile.am: removed monosn from compilation.
10043         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10044         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10045         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10046         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10047         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10048         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10049
10050 2004-06-15  Jackson Harper  <jackson@ximian.com>
10051
10052         * assembly.c: Make locales lower case when searching the GAC for
10053         assemblies. gacutil will always make locales lowercase when
10054         installing so this effectively makes them case insensitive.
10055         
10056 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10057
10058         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10059         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10060           parameter which allows to choose whether the wait can be interrupted or 
10061           not. Also added the method mono_monitor_enter(), which locks the monitor
10062           using an infinite wait and without allowing interruption.
10063           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10064           interrupted.
10065         * object.h: Added new fields in MonoThread. suspend_event holds the event
10066           used to susped/resume the thread. synch_lock is the lock object to use for
10067           modifying the thread state.
10068         * threads.c: Use the new synch_lock object for locking, instead of "this",
10069           which can generate deadlocks.
10070           Moved thread state change in Thread.Sleep and Thread.Join from managed
10071           to unmanaged code. This avoids a deadlock when the thread was suspended
10072           just after acquiring the thread lock.
10073           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10074           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10075           which is not fully implemented in the io-layer.
10076         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10077
10078 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10079
10080         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10081         threads-types.h: more API cleanups.
10082
10083 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10084
10085         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10086         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10087         threadpool.c, threads.c: first pass at the exported API cleanup.
10088
10089 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10090
10091         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10092
10093 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10094
10095         * icall.c: added internalGetHome.
10096
10097 2004-06-14  Dick Porter  <dick@ximian.com>
10098
10099         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10100         possible to return successfully when '.' or '..' were the only
10101         entries in a directory, but were skipped.  The MonoIOStat was not
10102         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10103         Fixes bug 59574.
10104
10105 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10106
10107         * reflection.c: make binaries run on .Net 1.1 by default.
10108
10109 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10110
10111         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10112
10113 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10114
10115         * marshal.c: keep track of struct size with explicit layout
10116         (bug #59979).
10117
10118 2004-06-12  Martin Baulig  <martin@ximian.com>
10119
10120         * mono-debug-debugger.c: Comment out a debugging g_message().
10121
10122 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10123
10124         * reflection.c, reflection.h: do not free custom attrs that are cached.
10125         * icall.c: use braces to make code clearer.
10126
10127 2004-06-11  Martin Baulig  <martin@ximian.com>
10128
10129         * class.h (MonoInflatedField): New type.
10130         (MonoClassField): Replaced `MonoType *generic_type' with
10131         `MonoInflatedField *generic_info'.
10132
10133         * icall.c
10134         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10135
10136 2004-06-11  Martin Baulig  <martin@ximian.com>
10137
10138         * reflection.c (mono_image_create_method_token): Correctly encode
10139         varargs methods.
10140
10141 2004-06-11  Martin Baulig  <martin@ximian.com>
10142
10143         * metadata.c (mono_metadata_parse_method_signature): When parsing
10144         a MethodDef which has VarArgs, also set sentinelpos if we don't
10145         have any parameters.
10146
10147 2004-06-11  Martin Baulig  <martin@ximian.com>
10148
10149         * verify.c (mono_method_verify): In CEE_CALL, use
10150         mono_method_get_signature() to get the method's signature, unless
10151         we're a PInvoke method.
10152
10153 2004-06-10  Jackson Harper  <jackson@ximian.com>
10154
10155         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10156         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10157         logical name as the supplied path is just a prefix to the gac not
10158         the direct path to it.
10159         
10160 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10161
10162         * reflection.c: make the token for a created method match
10163         the token of the MethodBuilder it was created from
10164         (IKVM requires this behaviour now).
10165
10166 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10167
10168         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10169         reflection.c, socket-io.c: leak fixes.
10170
10171 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10172
10173         * icall.c: handle sentinel pos in vararg methods in position different
10174         from 0.
10175
10176 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10177
10178         * culture-info-tables.h: freshly generated.
10179
10180 2004-06-09  Martin Baulig  <martin@ximian.com>
10181
10182         * loader.c (mono_get_method_constrained): Call `mono_class_init
10183         (constrained_class)'.   
10184
10185 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10186
10187         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10188         any methods. Fixes #59629.
10189
10190 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10191
10192         * culture-info-tables.h: reflecting locale-builder updates.
10193
10194 2004-06-08  Dick Porter  <dick@ximian.com>
10195
10196         * object.h:
10197         * locales.c: Fixed compile warnings, including a real bug in
10198         CompareInfo_internal_compare.
10199         
10200 2004-06-08  Dick Porter  <dick@ximian.com>
10201
10202         * locales.c
10203         (ves_icall_System_Globalization_CompareInfo_internal_index):
10204         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10205         Double-check the resuls of usearches, because ICU currently
10206         ignores most of the collator settings here.  Fixes bug 59720.
10207         
10208 2004-06-08  Dick Porter  <dick@ximian.com>
10209
10210         * locales.c
10211         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10212         Fix memory leak and segfault-causing typo.  No idea how this one
10213         lasted so long without being noticed.
10214
10215 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10216
10217         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10218         any methods. Fixes #59629.
10219
10220 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10221
10222         * assembly.c:
10223         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10224         own the critical section before). Removed dead code (that's done
10225         in the preload hook).
10226
10227         (mono_assembly_load_with_partial_name): call the preload hook.
10228
10229 2004-06-08  Martin Baulig  <martin@ximian.com>
10230
10231         * metadata.c (mono_metadata_signature_alloc): Default
10232         `sentinelpos' to -1.
10233
10234         * reflection.c (mono_image_get_array_token): Likewise.
10235
10236 2004-06-08  Martin Baulig  <martin@ximian.com>
10237
10238         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10239
10240         * metadata.c (mono_metadata_parse_method_signature): When parsing
10241         a MethodDef which has VarArgs, set sentinelpos.
10242
10243         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10244         `gint16' since we're using -1 for non-varargs methods.
10245
10246         * reflection.c
10247         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10248         (method_encode_signature): Added varargs support.
10249         (method_builder_encode_signature): Likewise.
10250         (mono_image_get_varargs_method_token): New static method.
10251         (mono_image_create_method_token): New public method; this is
10252         called via an icall instead of mono_image_create_token() when
10253         calling a varargs method.       
10254
10255 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10256
10257         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10258
10259 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10260
10261         * culture-info-tables.h : Reflecting the latest locale-builder that
10262           fixed empty array representation ({} to {0}).
10263
10264 2004-06-07  Jackson Harper  <jackson@ximian.com>
10265
10266         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10267         looking up extra gac paths. This allows MONO_GAC_PATH to act
10268         exactly like a prefix.
10269         
10270 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10271
10272         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10273         type name before modifying it. Fixes #59405.
10274
10275 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10276
10277         * culture-info.h: added fields for "all datetime patterns".
10278         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10279           _construct_datetime_format ()): fill xxx_patterns fields.
10280         * object.h: added fields for "all datetime patterns" to
10281           MonoDateTimeFormatInfo.
10282         * culture-info-tables.h: reflecting locale-builder updates.
10283
10284 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10285
10286         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10287         the event has no add and remove methods. Fixes #59629.
10288
10289 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10290
10291         * object.c: Fixed possible integer overflow when allocating large
10292         strings.
10293
10294 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10295
10296         * culture-info-tables.h: reflecting locale-builder updates.
10297
10298 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10299
10300         * culture-info-tables.h: reflecting locale-builder updates.
10301
10302 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10303
10304         * culture-info-tables.h: reflecting locale-builder updates.
10305
10306 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10307
10308         * threads.c: Made Thread.Sleep abortable.
10309
10310 2004-06-02  Martin Baulig  <martin@ximian.com>
10311
10312         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10313
10314         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10315
10316 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10317
10318         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10319
10320 2004-05-30  Jackson Harper  <jackson@ximian.com>
10321
10322         * reflection.c: Do not hardcode assembly versions or public key
10323         tokens anymore. All of this except the corlib section was dead
10324         code anyways.
10325         
10326 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10327
10328         * object.c (mono_runtime_invoke_array): Automatically create boxed
10329         objects for byref valuetypes if needed. Fixes #59300.
10330         
10331         * object.c (mono_method_return_message_restore): Handle 
10332         MONO_TYPE_OBJECT as well.
10333
10334 2004-05-28  Jackson Harper  <jackson@ximian.com>
10335
10336         * reflection.c: The modified type encoding was causing build
10337         problems. Reverted for now.
10338         
10339 2004-05-28  Jackson Harper  <jackson@ximian.com>
10340
10341         * reflection.c/h: Take an assembly ref so that we dont create
10342         fully qualified names when encoding types in the same assembly as
10343         the custom attribute being emitted.
10344         * appdomain.c: Increment version number.
10345         
10346 2004-05-26  Duncan Mak  <duncan@ximian.com>
10347
10348         * icall.c
10349         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10350         Set the full version number (major, minor, build, revision).
10351
10352 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10353
10354         * marshal.c (emit_struct_conv): increment src/dst after blit
10355         (mono_marshal_get_managed_wrapper,
10356         mono_marshal_get_native_wrapper): make sure we have marshalling
10357         info before marshalling params (info computation affects
10358         blittable)
10359
10360         * class.c (class_compute_field_layout): correctly deal with
10361         blittable
10362         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10363         value types (as per what windows dows by default)
10364         (mono_class_setup_mono_type): System.ValueType is blittable
10365         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10366         blittable
10367
10368         * marshal.c (mono_marshal_load_type_info): flag types  as
10369         non-blittable if the native layout doesn't match the managed
10370         layout
10371
10372 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10373
10374         * appdomain.c: don't add stuff in the private search path that is
10375         above the application base. If application base is not set, there's
10376         no private search path.
10377
10378 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10379
10380         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10381         byref struct arguments in native->managed marshalling.
10382
10383 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10384
10385         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10386         cache methods using signature (special case for methods
10387         that are value type or string class)
10388         
10389         * image.c (mono_image_close): clean up allocated GSList's
10390         in runtime_invoke_cache.
10391
10392 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10393
10394         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10395         there's no MONO_CFG_DIR environment variable defined.
10396
10397 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10398
10399         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10400
10401 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10402
10403         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10404           is interrumped.
10405         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10406           before waiting for it, and call CloseHandle after the wait to unref it.
10407           This will make sure that handles are not disposed too early.
10408
10409 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10410
10411         * appdomain.c:
10412         * appdomain.h:
10413         * icall.c: removed
10414         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10415         needed now.
10416
10417         * object.c: se the application_base only for the domain that runs
10418         Main. Fixes bug #59216,
10419
10420 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10421
10422         * appdomain.c:
10423         * object.c: only the domain in which Main is run have
10424         SetupInformation.ConfigurationFile set, so moved a few lines from
10425         appdomain.c to object.c.
10426
10427 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10428
10429         * appdomain.c: we tried to load [name].(dll|exe), but according
10430         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10431         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10432         There's a test case attached to bug #58922.
10433
10434 2004-05-27  Dick Porter  <dick@ximian.com>
10435
10436         * icall.c:
10437         * file-io.c: Implemented icalls for locking and unlocking regions
10438         in a file.
10439         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10440         FALSE on error (fixes both compiler warning and real bug.)
10441
10442 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10443
10444         * culture-info-tables.h: reflecting locale-builder updates.
10445
10446           (Added missing ChangeLog entry for 05/26)
10447
10448 2004-05-27  Jackson Harper  <jackson@ximian.com>
10449
10450         * locales.c: Fix some cut and paste errors.
10451         
10452 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10453
10454         * mono-config.c: set the correct path for config. directory on windows.
10455
10456 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10457
10458         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10459           on win32.
10460
10461 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10462
10463         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10464         from pinvoke functions.
10465         
10466         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10467
10468 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10469
10470         * culture-info-tables.h: reflecting locale-builder updates.
10471
10472 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10473
10474         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10475         #59086.
10476
10477 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10478
10479         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10480         * icall.c: Modified icalls for RNG.
10481         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10482         Windows (CryptoAPI).
10483
10484 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10485
10486         * locales.c: Fix build.
10487
10488 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10489
10490         * culture-info-tables.h: reflecting locale-builder updates.
10491
10492 2004-05-25  Jackson Harper  <jackson@ximian.com>
10493
10494         * locales.c: When creating the current culture use the $LANGs
10495         specific culture. So DateTimeFormat and NumberFormat entries are created.
10496         
10497 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10498
10499         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10500         a char array as parameter.
10501
10502 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10503
10504         * image.c: In mono_image_open(), always use an absolute path name to
10505           look for already loaded images.
10506
10507 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10508
10509         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10510         missing in the windows build (like older cygwin include files).
10511
10512 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10513
10514         * icall.c: Fixed check for possible integer overflow in Buffer_
10515         BlockCopy icall. Replaced comments style // by /* */.
10516
10517 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10518
10519         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10520         
10521         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10522         check after MONO_VTADDR. Fixes pinvoke2.exe.
10523
10524         * marshal.h marshal.c metadata.h: Add beginnings of support for
10525         ftnptr -> delegate marshalling.
10526
10527 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10528
10529         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10530         * threads.c: Fix warnings.
10531
10532 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10533
10534         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10535         * icall.c: Registered icalls for Suspend and Resume.
10536         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10537           Thread.Abort.
10538         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10539         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10540         * process.c: Use WaitForSingleObjectEx.
10541         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10542           checkpoints.
10543         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10544           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10545           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10546           background threads. Added basic support for Abort in Windows.
10547           Start new threads using a managed delegate invoke wrapper. This wrapper
10548           has an interruption checkpoint that is needed since an interruption
10549           can be requested before the thread leaves the unmanaged code that starts 
10550           the thread.
10551         * marshal.c: Added interruption checkpoint after every native call, and
10552           also before managed calls for wrappers called from unmanaged code to
10553           go into managed code.
10554         * object.h: Added new field in MonoThread to keep track of interruption
10555           requests.
10556
10557 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10558
10559         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10560         calls.
10561
10562 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10563
10564         * appdomain.c:
10565         * assembly.c:
10566         * gc.c:
10567         * locales.c:
10568         * mono-config.c:
10569         * rand.c: getenv -> g_getenv (windows!)
10570
10571         * process.c: complete_path is also used on non-windows platforms.
10572
10573 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10574
10575         * icall.c: new signature for Process_Start.
10576
10577         * process.[ch]: new signature for Process_Start. If we're on windows
10578         and UseShellExecute is false, we have to search for the program by
10579         ourselves if we don't get a full path.
10580
10581 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10582
10583         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10584         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10585
10586 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10587
10588         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10589         Fixes bug #58373.
10590
10591 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10592
10593         * process.c: use double quotes to quote program name and arguments on
10594         windows. Fixes bug #58575.
10595
10596 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10597
10598         * file-io.c: don't return "." and ".." when using windows Find*File.
10599
10600 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10601
10602         * marshal.c: Don't pass wrappers to message init because method 
10603         addressed used to lookup metadata. part of remoting[2|3] fix.
10604
10605 2004-05-15  Jackson Harper  <jackson@ximian.com>
10606
10607         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10608         path is essentially the same as MONO_PATH except that it points to
10609         GACs instead of lib directories.
10610         * loader.h: The user gac is gone so we dont need function to
10611         enable/disable it.
10612         * mono-config.c: user gac option is now gone.
10613         
10614 2004-05-15  Jackson Harper  <jackson@ximian.com>
10615
10616         * culture-info.h: Make defines more consistent, add calendar data
10617         to the culture info table.
10618         * culture-info-tables.h: Add basic calendar data. Basically
10619         everyone gets default gregorian until all the data is
10620         updated.
10621         * locales.c: Use the new consistent defines. Set calendar data for
10622         culture info objects.
10623         * object.h: add a field for calendar data to CultureInfo
10624         
10625 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10626
10627         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10628         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10629         a signature.
10630         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10631         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10632         an extra param that is the pointer of the method to invoke. The IL for
10633         the invoke method is no longer specific to the method, but to the
10634         signature of the method. Thus, we can share the same code for multiple
10635         methods. This reduces the number of methods that have to be compiled.
10636
10637 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10638
10639         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10640
10641         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10642
10643         * icall.c: Optimize Buffer.BlockCopy.
10644
10645 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10646
10647         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10648         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10649         quote). Changed them to "MMMM yyyy".
10650
10651 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10652
10653         * rand.c
10654         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10655
10656 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10657
10658         * reflection.h: Updated after changes to managed structures.
10659
10660         * appdomain.c: Bump corlib version.
10661
10662 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10663
10664         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10665         windows.
10666
10667 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10668
10669         * Makefile.am: link to ../os/libmonoos.la on windows.
10670
10671         * assembly.c:
10672                 -If MONO_DEBUG, warn about non-existing directories in
10673                 MONO_PATH.
10674                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10675                 compile time variable.
10676                 -Removed init_default_path and call mono_set_rootdir from
10677                 libmonoos.a instead (windows only).
10678
10679         * assembly.h: declare mono_assembly_getrootdir().
10680
10681         * domain.c:
10682         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10683
10684         * loader.c: s/getenv/g_getenv/
10685
10686 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10687
10688         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10689
10690         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10691
10692         * metadata.h: Add new marshalling conversions.
10693
10694         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10695         function.
10696
10697         * reflection.c (mono_reflection_get_type): Lookup the type in all
10698         modules of a multi-module assembly. Fixes #58291.
10699
10700 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10701
10702         * threads.c: Before aborting a background, set the StopRequested
10703         state.  This avoids throwing the Abort exception.
10704         In mono_thread_manage, don't continue with the shutdown until all
10705         aborted threads have actually stopped.
10706
10707 2004-05-10  Jackson Harper  <jackson@ximian.com>
10708
10709         * locales.c: Remove the modifier from culture names.
10710         
10711 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10712
10713         * Makefile.am: monosn is not installed any more. It has been deprecated
10714         in favor of sn.
10715
10716 2004-05-07  Jackson Harper  <jackson@ximian.com>
10717
10718         * locales.c
10719         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10720         Fix array construction, add bailout if the length is 0.
10721
10722 2004-05-07  Dick Porter  <dick@ximian.com>
10723
10724         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10725         machine doesn't have a DNS entry.  Patch by Urs Muff
10726         (umuff@quark.com), fixes bug 57928.
10727
10728 2004-05-06  Jackson Harper  <jackson@ximian.com>
10729
10730         * reflection.c: Handle null PublicTokens properly. alloc mem for
10731         assembly names culture so we dont crash when freeing it.
10732         
10733 2004-05-06  Jackson Harper  <jackson@ximian.com>
10734
10735         * assembly.c: Check the usergac when loading with partial names.
10736         
10737 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10738
10739         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10740         does nothing for now (not required for Linux/Windows) but the class
10741         library can call it (and a newer or modified runtime could need it).
10742         * icall.c: Registred icall.
10743
10744 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10745
10746         * loader.c: prints a message on module loading error we set MONO_DEBUG
10747         environment variable.
10748
10749 2004-05-05  Jackson Harper  <jackson@ximian.com>
10750
10751         * appdomain.c: Handle PublicKeyToken=null properly.
10752         
10753 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10754
10755         * environment.c|h: Added icall ves_icall_System_Environment_
10756         GetOSVersionString to get the current OS version as a string.
10757         * icall.c: Registred icall.
10758
10759 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10760
10761         * object.c: in mono_object_get_virtual_method(), take into account that
10762         non-virtual methods don't have a slot in the vtable. Check needed when
10763         the object is a proxy.
10764
10765 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10766
10767         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10768         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10769
10770         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10771
10772         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10773         passed when a valuetype is expected.
10774
10775         * object.c (mono_unhandled_exception): Only set the exit code if the
10776         exception happens in the main thread. Fixes thread5.exe.
10777
10778         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10779         invalid names. Fixes #58047.
10780
10781 2004-05-03  Jackson Harper  <jackson@ximian.com>
10782
10783         * assembly.c: This line was committed accidently and is unneeded.
10784         
10785 2004-05-03  Jackson Harper  <jackson@ximian.com>
10786
10787         * icall.c: Add new icall for Assembly::LoadWithPartialName
10788         * assembly.c/.h: new function that probes the GAC to load partial
10789         assembly names by Paolo Molaro.
10790         
10791 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10792
10793         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10794         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10795         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10796         full type name.
10797
10798 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10799
10800         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10801         * reflection.c: fix bug when parsing a full type name and Version is not
10802         the last thing in the string.
10803
10804 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10805
10806         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10807         crashes when it is freed.
10808
10809 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10810
10811         * assembly.c: print the compat warning to stderr.
10812
10813 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10814
10815         * assembly.c (mono_assembly_load_references): Add a compatibility
10816         hack to run old applications that might be still referencing the
10817         3300-based assemblies, only do this for System.xxx.
10818
10819 2004-05-01  Jackson Harper  <jackson@ximian.com>
10820
10821         * appdomain.c: If the culture is neutral we set it to "".
10822         
10823 2004-04-29  Jackson Harper  <jackson@ximian.com>
10824
10825         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10826
10827 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10828  
10829         * string-icalls.c: added low overhead function for copying chars
10830         * icall.c: added needed icall for the above function
10831  
10832 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10833
10834         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10835         Environment.GetLogicalDrives.
10836
10837 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10838
10839         * rand.c: try and talk to egd or prngd
10840         for random bytes if opening devices fail.
10841
10842 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10843
10844         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10845         alignment for the type using the native alignment of its members 
10846         instead of using klass->min_align.
10847
10848         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10849
10850 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10851
10852         * file-io.c:
10853         * socket-io.c: added check for sys/aio.h.
10854
10855 2004-04-28  Dick Porter  <dick@ximian.com>
10856
10857         * threads.c: Don't abort a thread thats already aborting, when
10858         terminating everything.
10859
10860 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10861
10862         * icall.c: added 2 new async calls for Socket.
10863
10864         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10865         IO on *nix systems.
10866
10867         * threadpool.c: removed unused variable.
10868
10869 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10870
10871         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10872
10873 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10874
10875         * locales.c: put back string_invariant_tolower () and
10876         string_invariant_toupper ().
10877
10878 2004-04-26 David Waite <mass@akuma.org>
10879
10880         * file-io.h:
10881         * socket-io.h:
10882         * threads.h:
10883         * unicode.h: remove comma from end of enumeration declarations
10884
10885 2004-04-26 David Waite <mass@akuma.org>
10886
10887         * debug-mono-symfile.h:
10888         * decimal.c:
10889         * mono_debug.h:
10890         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
10891
10892
10893 2004-04-26  Jackson Harper  <jackson@ximian.com>
10894
10895         * appdomain.c: Increment version number.
10896         
10897 2004-04-26  Jackson Harper  <jackson@ximian.com>
10898
10899         * appdomain.c: Set assembly references public token value when
10900         PublicKeyToken is specified, not the hash_value. Free public token
10901         values when free assembly name data. Previously the public key
10902         token was hex decoded, however we are using hex encoded public key
10903         tokens, so this is not neccasary.
10904         * assembly.c: Lookup assemblies in the gac if their public token
10905         value is set. Add function to allow enabling user gac
10906         lookups. Specify whether or not the assembly was loaded from the
10907         GAC. Compare full assembly names when checking the cache for
10908         assemblies (Temporarily disabled see comment in code). Remove
10909         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
10910         specifies trace-loader they get extra info to stdout on the
10911         loading of assemblies.
10912         * image.h: Add a field for an assembly references public token
10913         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
10914         whether an assembly has been loaded from the GAC.
10915         * image.c: Remove a corlib -> mscorlib name mapping.
10916         * loader.h: Add function to enable/disable the user gac.
10917         * mono-config.c: Check if the usergac is enabled in the config
10918         file.
10919         * icall.c: New icall to determine whether or not an assembly has
10920         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
10921         * tabldefs.h: Add constant for assemblyref flag that specifies a
10922         full public key is used instead of a public token.
10923         * reflection.c: Remove mscorlib -> corlib mappings. Set
10924         PublicTokenValue instead of hash value. This value is a hex
10925         string so it does not need to be expanded.
10926
10927 2004-04-26  Martin Baulig  <martin@ximian.com>
10928
10929         * mono-debug-debugger.c (mono_debugger_initialize): Set
10930         `mono_debugger_initialized' before calling mono_debug_lock().
10931
10932 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
10933
10934         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
10935           InternalToUpper/InternalToLower.
10936         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
10937           removed invariant culture shortcut.  This is now done in managed code.
10938         * locales.c: (string_invariant_toupper/tolower) removed.
10939
10940 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10941
10942         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
10943         Added Poll internal call.
10944
10945         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
10946         call for Poll. Select was too heavy for polling a single socket.
10947
10948         * threadpool.[ch]: added mono_threadpool_cleanup.
10949         * threads.c: use it. Don't use Thread_Abort on windows.
10950
10951 2004-04-23  Martin Baulig  <martin@ximian.com>
10952
10953         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
10954
10955 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
10956
10957         * icall.c: Registred new icalls for key pair protection and added an
10958         icall for Environment.GetFolderPath on Windows.
10959         * security.c|h: Added new icalls for key pair protection.
10960
10961 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10962
10963         * socket-io.c: don't display the non-supported family warning for known
10964         families. Now this is not displayed on windows when checking support
10965         for IPv4/IPv6.
10966
10967 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10968
10969         * class.c: don't display the layout warning for static fields.
10970
10971 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
10972
10973         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
10974         * locales.c, locales.h: Added new icalls for culture-specific
10975         Char.ToLower and Char.ToUpper.
10976
10977 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10978
10979         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
10980         by David Waite.
10981
10982 2004-04-20  Martin Baulig  <martin@ximian.com>
10983
10984         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
10985         of the type name before passing it to mono_reflection_type_from_name().
10986
10987 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
10988
10989         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
10990         encodings here. Fixes #56965.
10991
10992 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
10993
10994         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10995         fix test on strstr result not that I can see anything that
10996         relies on the result.
10997
10998 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
10999
11000         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11001         Fixes #57081.
11002
11003         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11004
11005         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11006         function to determine which marshalling to use for strings. Fixes
11007         #56965.
11008
11009         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11010
11011         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11012
11013 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11014
11015         * icall.c: #include mono-config.h
11016
11017 2004-04-15  Jackson Harper  <jackson@ximian.com>
11018
11019         * culture-info-tables.h: Fix date formats for en-US culture.
11020         
11021 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11022
11023         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11024         ThreadPool.SetMinThreads.
11025         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11026         ThreadPool.SetMinThreads.
11027
11028 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11029
11030         * mono-config.c: also load the .config file in the directory
11031         where the assembly was found.
11032
11033 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11034
11035         * assembly.c: load per-assembly config files.
11036         * icall.c: decrapified code to get the config dir and moved to
11037         mono-config.c.
11038         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11039         per-assembly config files. When doing a dll map lookup give precedence
11040         to the per-assembly data.
11041
11042 2004-04-14  Martin Baulig  <martin@ximian.com>
11043
11044         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11045         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11046         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11047
11048         * mono-debugger-debugger.c: While the debugger is locked, remember
11049         whether the symbol tables have changes and send one single
11050         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11051
11052 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11053
11054         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11055
11056         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11057         function.
11058
11059         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11060         account when marshalling string arrays. Fixes #56965.
11061
11062 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11063
11064         * icall.c: Add new icalls mapping for security.
11065         * security.c|h: Add internal calls for WindowsIdentity,
11066         WindowsImpersonationContext and WindowsPrincipal.
11067
11068 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11069
11070         * class.c: Added comment to ensure the System.MonoDummy class
11071         is removed when no longer necessary
11072
11073 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11074
11075         * appdomain.c: Pass arguments to the bootstraping exceptions to
11076         minimize JITed methods at boot
11077
11078         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11079         second string to be null.
11080
11081         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11082         Change the protocol to minimize the JIT methods at startup.  Now
11083         it Returns the internal codepage, if the value of "int_code_page"
11084         is 1 at entry, and we can not compute a suitable code page
11085         number, returns the code page as a string.
11086
11087 2004-04-13  Jackson Harper  <jackson@ximian.com>
11088
11089         * culture-info-tables.h: Fix number of decimal digits for all
11090         english locales.
11091
11092 2004-04-13  Jackson Harper  <jackson@ximian.com>
11093
11094         * icall.c: Clairfy out of sync error message. It is not always
11095         your corlib that is out of sync.
11096
11097 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11098
11099         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11100         properties when only the set accessor is overriden. Fixes #55874.
11101
11102 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11103
11104         * assembly.c (mono_assembly_load_references): Make this thread safe.
11105         Fixes #56327.
11106
11107 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11108
11109         * monosn.c: Add missing initialization calls.
11110
11111 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11112
11113         * locales.c:
11114         ves_icall_System_Globalization_CultureInfo_construct_number_format
11115         Fix g_assert so it compiles on fussier compilers re int/ptr
11116         mismatch
11117
11118 2004-04-08  Dick Porter  <dick@ximian.com>
11119
11120         * socket-io.h:
11121         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11122         53992.  Also rearrange the code so that the internal calls return
11123         an error value and exceptions are thrown from managed code.
11124
11125         * icall.c: Add type info to the socket icalls.
11126
11127 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11128
11129         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11130         owes me a beer.
11131
11132 2004-04-07  Martin Baulig  <martin@ximian.com>
11133
11134         * class.c (mono_class_from_generic_parameter): Don't default
11135         `klass->parent' to `mono_defaults.object_type'.
11136
11137 2004-04-07  Martin Baulig  <martin@ximian.com>
11138
11139         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11140         `param->pklass->reflection_info'.       
11141
11142 2004-04-07  Jackson Harper  <jackson@ximian.com>
11143
11144         * culture-info-tables.h: Fix date separator symbol.
11145         
11146 2004-04-07  Martin Baulig  <martin@ximian.com>
11147
11148         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11149         from System.Type to System.MonoType.
11150
11151 2004-04-07  Martin Baulig  <martin@ximian.com>
11152
11153         * reflection.h
11154         (MonoReflectionGenericParam): Added `has_reference_type' and
11155         `has_value_type' fields.
11156
11157         * reflection.c (mono_image_get_generic_param_info): Encode the
11158         correct flags if we have the `class' or `struct' constraint.
11159
11160 2004-04-07  Martin Baulig  <martin@ximian.com>
11161
11162         * reflection.h
11163         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11164
11165 2004-04-07  Jackson Harper  <jackson@ximian.com>
11166
11167         * appdomain.c: Revert extra patches, just wanted to bump the
11168         version number.
11169         
11170 2004-04-07  Jackson Harper  <jackson@ximian.com>
11171
11172         * Makefile.am: Add culture-info private headers.
11173         * icall.c: Add new icalls for contructing locales.
11174         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11175         * locales.h: Declare new culture info construction methods.
11176         * object.h: Add new fields used to avoid the CultureMap to
11177         MonoCultureInfo.
11178         * culture-info.h: Definition of structs used in the culture info
11179         tables.
11180         * culture-info-tables.h: Autogenerated tables that contain culture
11181         info data. This file was generated with the locale-builder tool.
11182         * appdomain.c: Incement corlib version number.
11183         
11184 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11185
11186         * appdomain.c: (mono_runtime_init) move mono_thread_init
11187         to before mono_object_new calls so critical sections
11188         are initialized before use.
11189
11190 2004-04-07  Martin Baulig  <martin@ximian.com>
11191
11192         * icall.c
11193         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11194         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11195         (ves_icall_MonoGenericParam_initialize): Removed.
11196         (monogenericparam_icalls): Removed.
11197         (generictypeparambuilder_icalls): Added new table for
11198         System.Reflection.Emit.GenericTypeParameterBuilder.
11199
11200         * reflection.c
11201         (mono_reflection_define_generic_parameter): Removed.
11202         (mono_reflection_initialize_generic_parameter): This is now called
11203         from GenericTypeParameterBuilder's .ctor.
11204
11205 2004-04-06  Martin Baulig  <martin@ximian.com>
11206
11207         * class.c (mono_class_init): Don't inflate nested classes in a
11208         generic instance.
11209         (mono_type_get_name_recurse): Include the generic arguments for
11210         generic instances and generic type declarations.
11211         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11212         (_mono_class_get_instantiation_name): Removed.
11213         (mono_class_create_generic): Always use `gklass->name' as our name.
11214
11215         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11216
11217         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11218         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11219         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11220         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11221         closed generic methods here.
11222
11223         * reflection.c
11224         (mono_reflection_generic_inst_get_nested_types): Removed.
11225         (inflate_mono_method): Copy the generic parameters from the
11226         MonoMethodHeader into out MonoGenericMethod.
11227
11228 2004-04-06  Martin Baulig  <martin@ximian.com>
11229
11230         * row-indexes.h
11231         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11232
11233         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11234
11235         * reflection.c (build_compressed_metadata): If we have any entries
11236         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11237         set the header version to 1.1.
11238
11239 2004-04-06  Martin Baulig  <martin@ximian.com>
11240
11241         * class.c (mono_class_init): If we're a generic instance,
11242         initialize our nested classes, too.
11243         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11244         suffix. 
11245
11246 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11247
11248         * process.c: quote the argument passed to the shell on windows.
11249
11250 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11251
11252         * threads.c (mono_alloc_special_static_data): Allow this to be
11253         called during startup.
11254
11255 2004-04-02  Martin Baulig  <martin@ximian.com>
11256
11257         * icall.c
11258         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11259
11260 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11261
11262         * icall.c: Fix build.
11263
11264 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11265
11266         * Makefile.am: Added security.c|h.
11267         * icall.c: Added icall for get_UserName;
11268         * security.c: New file for security related icalls. Added function
11269         get_UserName for System.Environment (fix #56144).
11270         * security.h: New. Header file for security.c
11271
11272 2004-04-02  Dick Porter  <dick@ximian.com>
11273
11274         * icall.c: Deleted the icalls that were obsoleted some time ago
11275         by the ICU string code, and which were mixed into the icall
11276         rearranging.  Fixes bug 55969.
11277
11278         * string-icalls.h: 
11279         * string-icalls.c: Deleted the code that those icalls reference.
11280
11281 2004-04-01  Martin Baulig  <martin@ximian.com>
11282
11283         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11284
11285         * class.c (mono_class_from_generic_parameter): Don't set 
11286         TYPE_ATTRIBUTE_INTERFACE.
11287         (my_mono_class_from_generic_parameter): Likewise.
11288
11289 2004-04-01  Martin Baulig  <martin@ximian.com>
11290
11291         * loader.c (find_method): Added an optional `MonoClass *ic'
11292         argument to search in a specific interface.
11293         (mono_get_method_constrained): New public function.
11294
11295 2004-04-01  Martin Baulig  <martin@ximian.com>
11296
11297         * reflection.c (mono_image_get_generic_field_token): Use the
11298         `handleref' cache here.
11299
11300 2004-04-01  Martin Baulig  <martin@ximian.com>
11301
11302         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11303
11304         * reflection.c (create_generic_typespec): Use the `typespec' hash
11305         here, not the `typeref' one.    
11306
11307 2004-04-01  Martin Baulig  <martin@ximian.com>
11308
11309         * class.c (mono_class_inflate_generic_type): Moved the
11310         functionality into a new static inflate_generic_type() which
11311         returns NULL if it didn't do anything.  Only increment the
11312         `mono_stats.inflated_type_count' if we actually inflated
11313         something.
11314         (mono_class_get_full): Check the classes type to see whether we
11315         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11316
11317 2004-04-01  Jackson Harper  <jackson@ximian.com>
11318
11319         * reflection.c: Set culture for assembly references.
11320         
11321 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11322
11323         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11324
11325 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11326
11327         * assembly.c:
11328         (do_mono_assembly_open): the critical section also covers
11329         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11330
11331 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11332
11333         * threads.c:
11334         (mono_manage_threads): abort the background threads when finishing.
11335         Fixes bug #47232.
11336
11337 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11338
11339         * gc.c: only close the done_event handle if there was no timeout.
11340         C-ified comments.
11341
11342 2004-03-30  Martin Baulig  <martin@ximian.com>
11343
11344         * icall.c (icall_entries): It's called "System.Activator", not
11345         "System.Activation".    
11346
11347 2004-03-30  Martin Baulig  <martin@ximian.com>
11348
11349         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11350         (mono_class_create_from_typespec): Likewise.
11351
11352 2004-03-30  Martin Baulig  <martin@ximian.com>
11353
11354         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11355         `has_ctor_constraint' and `initialized'.
11356
11357 2004-03-30  Martin Baulig  <martin@ximian.com>
11358
11359         * reflection.c (encode_new_constraint): New static function to add
11360         the constructor constraint attribute to a type parameter.
11361         (encode_constraints): Call encode_new_constraint() if necessary.
11362
11363         * reflection.h
11364         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11365
11366         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11367         
11368 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11369
11370         * reflection.c, icall.c: add support for pinning variables. 
11371
11372 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11373
11374         * marshal.c (mono_marshal_get_managed_wrapper):
11375         init bool local with zero rather than null.
11376
11377 2004-03-29  Martin Baulig  <martin@ximian.com>
11378
11379         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11380         the "official" behavior here.
11381         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11382
11383 2004-03-29  Martin Baulig  <martin@ximian.com>
11384
11385         * icall.c: Reflect latest API changes.
11386
11387 2004-03-29  Martin Baulig  <martin@ximian.com>
11388
11389         * loader.c (mono_get_method_from_token): Also call
11390         mono_metadata_load_generic_params () for abstract and interface
11391         methods; replace the type arguments in the method signature with
11392         the ones which are loaded from the metadata.
11393
11394 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11395
11396         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11397         of the lock is not the current thread. MS.NET don't do it, in spite of
11398         what the documentation says. See bug #56157.
11399
11400 2004-03-28  Martin Baulig  <martin@ximian.com>
11401
11402         * class.c (mono_class_init): Don't call init_properties() and
11403         init_events() for generic instances; set `prop->parent' when
11404         inflating properties.
11405
11406         * reflection.c (mono_generic_inst_get_object): Call
11407         `mono_class_init (ginst->klass)'.
11408         (mono_type_get_object): Only create a MonoGenericInst if your
11409         generic type is a TypeBuilder.
11410         (do_mono_reflection_bind_generic_parameters): Only set
11411         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11412
11413 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11414
11415         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11416         Fixes #56091.
11417
11418 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11419
11420         * icall.c: added Kill_internal icall.
11421         * process.[ch]: added Kill_internal icall.
11422
11423 2004-03-25  Martin Baulig  <martin@ximian.com>
11424
11425         * class.h (MonoStats): Added `generic_instance_count',
11426         `inflated_method_count', `inflated_type_count' and
11427         `generics_metadata_size'.       
11428
11429 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11430
11431         * reflection.c: no warnings now.
11432
11433 2004-03-25  Martin Baulig  <martin@ximian.com>
11434
11435         * class.c (mono_class_get_full): New public function; does a
11436         mono_class_get(), but also takes a `MonoGenericContext *'.
11437
11438         * loader.c (mono_field_from_memberref): Renamed to
11439         `field_from_memberref', made static and added `MonoGenericContext *'
11440         argument.
11441         (mono_field_from_token): Added `MonoGenericInst *' argument.
11442         (method_from_memberef): Likewise.
11443         (mono_get_method_from_token): Likewise.
11444         (mono_get_method_full): New public function; does a
11445         mono_get_method(), but also takes a `MonoGenericContext *'.
11446
11447         * verify.c (mono_method_verify): Get the method's generic context
11448         and pass it to mono_field_from_token(), mono_get_method_full() and
11449         mono_class_get_full().
11450
11451 2004-03-25  Martin Baulig  <martin@ximian.com>
11452
11453         * class.c (mono_class_inflate_generic_type): Take a
11454         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11455         `MonoGenericMethod *'.
11456
11457 2004-03-25  Martin Baulig  <martin@ximian.com>
11458
11459         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11460         instead of the MonoGenericMethod here.
11461
11462 2004-03-25  Martin Baulig  <martin@ximian.com>
11463
11464         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11465         each time we create a new MonoGenericInst, we also create a new
11466         context which points back to us.
11467
11468         * class.c (inflate_method): Use `ginst->context' instead of
11469         creating a new context.
11470
11471         * loader.c (method_from_memberref): Use
11472         `klass->generic_inst->context' instead of creating a new context.
11473
11474 2004-03-25  Martin Baulig  <martin@ximian.com>
11475
11476         * class.h (MonoGenericContext): New struct.
11477         (MonoGenericMethod): Removed `generic_inst'.
11478
11479         * class.c (mono_class_inflate_generic_method): Take a
11480         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11481
11482 2004-03-25  Martin Baulig  <martin@ximian.com>
11483
11484         * loader.h (MonoMethodInflated): New typedef.
11485
11486         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11487         `generic_param_count' consume just 30 bits, added `is_inflated'
11488         and `has_type_parameters' flags (one bit each).
11489
11490         * class.c (mono_class_inflate_generic_method): Create a
11491         MonoMethodInflated instead of a MonoMethodNormal and set
11492         `is_inflated' in the method signature.
11493
11494         * class.h (MonoGenericMethod): Removed `generic_method'.
11495
11496 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11497
11498         * image.c: Make sure the name of a MonoImage is always an absolute path.
11499           This fixes bug #54415.
11500
11501 2004-03-24  Martin Baulig  <martin@ximian.com>
11502
11503         * class.c (mono_class_setup_vtable): If we're a generic instance,
11504         use our generic type's vtable size.
11505
11506 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11507
11508         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11509         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11510         problems.
11511
11512 2004-03-23  Martin Baulig  <martin@ximian.com>
11513
11514         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11515         `MonoEvent *events'.
11516
11517         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11518         (typebuilder_icalls): Added "get_event_info"; calls
11519         mono_reflection_event_builder_get_event_info(). 
11520
11521         * reflection.c (mono_reflection_generic_inst_initialize): Added
11522         `MonoArray *events'.
11523         (mono_reflection_event_builder_get_event_info): New function.
11524
11525 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11526
11527         * object.h: add mono_type_initialization_init
11528
11529         * object.c (mono_runtime_class_init): 
11530         implement class constructor synchronization rules
11531         to cope with threading issues.  
11532         add mono_type_initialization_init
11533
11534         * appdomain.c (mono_runtime_init): call 
11535         mono_type_initialization_init
11536
11537         * class.h: removing initializing field from MonoVTable
11538
11539 2004-03-23  Martin Baulig  <martin@ximian.com>
11540
11541         * class.c (my_mono_class_from_generic_parameter): Use
11542         `param->name' if it's not NULL. 
11543
11544 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11545
11546         * class.c: do not insert non-virtual methods in the vtable.
11547         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11548         that means the method is non-virtual. This never would have
11549         happened before.
11550
11551 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11552
11553         * profiler.c: Added lock for accessing coverage_hash.
11554
11555 2004-03-22  Martin Baulig  <martin@ximian.com>
11556
11557         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11558         `method->method->signature->generic_param_count != 0' to make it
11559         work for interface methods.
11560
11561 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11562
11563         * process.c: quote the string passed to the shell using g_shell_quote.
11564
11565 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11566
11567         * threads.c:
11568         (mono_threads_manage): don't remove the finalizer thread and self
11569         from the threads hash table so that mono_thread_manage can be called
11570         more than once.
11571
11572 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11573
11574         * process.c: quote the arguments when UseShellExecute is true. Fixes
11575         bug #55790.
11576
11577 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11578
11579         * threads.c: set mono_thread_detach as a cleanup routine for every
11580         thread. This way it's always executed upon thread termination, either
11581         aborted or finished normally. No more xsp hangs!
11582
11583 2004-03-17  Martin Baulig  <martin@ximian.com>
11584
11585         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11586         `int count_nested' and a `MonoType **nested'.
11587
11588         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11589         most of the functionality into a new static
11590         do_mono_reflection_bind_generic_parameters() and don't take a
11591         `MonoType *nested_in' argument any more.  Don't compute nested
11592         types here.
11593         (mono_reflection_generic_inst_get_nested_types): New public method
11594         to get nested types.
11595
11596         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11597         we're a nested class.
11598
11599         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11600         mono_reflection_generic_inst_get_nested_types() to compute the
11601         nested types.
11602
11603 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11604
11605         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11606         descriptive error message under windows.
11607         
11608 2004-03-17  Martin Baulig  <martin@ximian.com>
11609
11610         * class.c (dup_type): Added `const MonoType *original' argument;
11611         copy the attrs from the original type.
11612
11613 2004-03-17  Martin Baulig  <martin@ximian.com>
11614
11615         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11616         `m->generic_inst_cache' here.
11617
11618 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11619
11620         * exception.h exception.c: Add stack_overflow_exception.
11621
11622 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11623
11624         * threadpool.c:
11625         (overlapped_callback): call SetEvent *after* invoking the callback.
11626         No need to call CloseHandle.
11627
11628 2004-03-16  Martin Baulig  <martin@ximian.com>
11629
11630         * reflection.c (mono_image_get_fieldref_token): Take a
11631         `MonoReflectionField *' instead of a `MonoClassField *' and a
11632         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11633
11634 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11635
11636         * appdomain.c: don't add the culture to the filename we're looking for
11637         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11638
11639 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11640
11641         * locales.c: don't ignore symbols when doing case insensitive compares.
11642         Thanks Dick! Fixes bug #54046.
11643
11644         * threads.c: surround 'threads' usage with enter/leave in
11645         mono_thread_manage.
11646
11647 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11648
11649         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11650         implicitly marshalled as [Out]. Fixes #55450.
11651
11652         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11653         an exception.
11654
11655 2004-03-16  Martin Baulig  <martin@ximian.com>
11656
11657         * class.c (mono_class_from_generic_parameter): Use the actual
11658         parameter name. 
11659
11660 2004-03-16  Martin Baulig  <martin@ximian.com>
11661
11662         * reflection.c (type_get_signature_size): New static function.
11663         Compues the size of the type in a method signature.
11664         (method_get_signature_size): New static function; calls
11665         type_get_signature_size() to compute the actual size of the
11666         method's signature.
11667         (method_encode_signature): Use method_get_signature_size() to get
11668         the signature's size rather than using `nparams * 10'.
11669
11670 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11671
11672         * file-io.h: define here WapiOverlapped on windows. I don't want the
11673         regular OVERLAPPED one.
11674
11675         * file-io.c:
11676         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11677         Disabling AIO on windows.
11678
11679 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11680
11681         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11682         bug #55385.
11683
11684 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11685
11686         * appdomain.c: upgraded corlib version.
11687
11688         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11689         and BeginWrite. Allow opening files for asynchrnous operations.
11690
11691         * file-io.h: new struct that maps FileStreamAsyncResult.
11692         * icall.c: added new icalls.
11693         * process.[ch]: support setting child process environment variables
11694         and use the SHELL or COMSPEC when UseShellExecute is true.
11695
11696         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11697         callback for async. IO is here and also BindHandle.
11698
11699         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11700         from here.
11701
11702 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11703
11704         * reflection.c (create_custom_attr): Allow len == 0.
11705
11706         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11707         computation on big-endian machines.
11708
11709 2004-03-13  Martin Baulig  <martin@ximian.com>
11710
11711         * class.h (MonoGenericInst): Added `int count_ifaces'.
11712
11713         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11714         `ginst->count_ifaces' instead `klass->interface_count' since we
11715         may get called before the vtable is created.
11716
11717         * loader.c (mono_method_get_param_names): If we're a generic
11718         instance, return and don't initialize the class.
11719
11720         * reflection.c (mono_reflection_setup_generic_class): Don't call
11721         ensure_runtime_vtable().
11722         (mono_reflection_bind_generic_parameters): Set
11723         `ginst->count_ifaces'.
11724
11725 2004-03-11  Jackson Harper <jackson@ximian.com>
11726
11727         * icall.c:
11728         * unicode.c:
11729         * unicode.h: Remove unused System.Char icalls.
11730         
11731 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11732
11733         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11734         code when we P/Invoke the first library in Windows.Forms, instead
11735         of when we first open the assembly.
11736
11737         * assembly.c: Drop the lookup from here.
11738
11739 2004-03-10  Martin Baulig  <martin@ximian.com>
11740
11741         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11742         class for properties, fields and events.  Finally fixes #54945.
11743
11744 2004-03-10  Martin Baulig  <martin@ximian.com>
11745
11746         * metadata.c (mono_metadata_class_equal): New static function;
11747         checks whether two generic instances or two generic parameters are
11748         equal.
11749         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11750         compare classes.        
11751
11752 2004-03-10  Martin Baulig  <martin@ximian.com>
11753
11754         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11755
11756         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11757         argument and write it into the `reflection_info' field.
11758
11759         * icall.c
11760         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11761         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11762
11763 2004-03-09  Jackson Harper  <jackson@ximian.com>
11764
11765         * char-conversions.h: use 8 bits for numeric data its all we need
11766         * icall.c: numeric data is only 8 bits now.
11767
11768 2004-03-09  Martin Baulig  <martin@ximian.com>
11769
11770         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11771
11772         * class.c (init_properties, init_events): Initialize the new
11773         `parent' field.
11774
11775         * reflection.c (typebuilder_setup_properties): Likewise.
11776         (typebuilder_setup_events): Likewise.
11777
11778         * reflection.h (MonoEventInfo): Replaced `parent with
11779         `declaring_type' and `reflected_type'.
11780
11781         * icall.c (ves_icall_get_property_info): Distinguish between
11782         declaring and reflected type.
11783         (ves_icall_get_event_info): Likewise.
11784
11785 2004-03-09  Martin Baulig  <martin@ximian.com>
11786
11787         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11788         (ves_icall_Type_GetField): Correctly set field->klass.
11789
11790 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11791
11792         * loader.h: Fix warning.
11793
11794 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11795
11796         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11797         library routine if present.  Notice that it will still continue
11798         executing even if its missing, for those working on the Gtk#
11799         edition of Windows.Forms.
11800
11801         * assembly.c (do_mono_assembly_open): If loading the
11802         System.Windows.Forms call mono_loader_wini_init.
11803
11804 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11805
11806         * class.h: Added MonoRemoteClass struct.
11807         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11808         function for MonoStrings.
11809         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11810         Added internal call for getting the proxy type.
11811         * marshal.c: Get the type of transparent proxies from its remote_class.
11812         Added methods that generate the IL for type checks and casts:
11813         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11814         mono_marshal_get_proxy_cancast.
11815         * marshal.h: Declaration of the previous new methods.
11816         * object.c: Added new moethods for creating and updating MonoRemoteClass
11817         instances: mono_remote_class, mono_upgrade_remote_class, 
11818         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11819         * verify.c: FIx transparent_proxy_fields layout.
11820         * appdomain.c: Bump corlib version.
11821
11822 2004-03-04  Jackson Harper  <jackson@ximian.com>
11823
11824         * icall.c: Add icall to access char conversion tables.
11825         * char-conversions.h: Character conversion tables.
11826         * Makefile.am: Add char-conversions.h private header file.
11827         
11828 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11829
11830         * appdomain.c (unload_thread_main): Increase unloading timeout to
11831         10 sec as a temporary workaround for Nant problems.
11832
11833 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11834
11835         * gc.c: Add checks for GC_enable and GC_disable.
11836
11837         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11838         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11839         (bug #54988).
11840         
11841 2004-02-27  Martin Baulig  <martin@ximian.com>
11842
11843         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11844         `MonoReflectionType *' instead of a `MonoType *'.
11845
11846 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11847
11848         * gc.c (run_finalize): Avoid finalizing the object representing the
11849         finalizer thread.
11850         (finalizer_thread): Fix warning.
11851
11852 2004-02-25  Martin Baulig  <martin@ximian.com>
11853
11854         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11855         argument for nested types.
11856         (mono_class_create_generic): Added support for nested generictypes.
11857
11858         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11859         `GList *nested'.
11860
11861         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11862
11863         * reflection.c (method_encode_signature): Increase the minimum
11864         value of `size' from 10 to 11.
11865         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11866         and `MonoType **types' arguments instead of the `MonoArray
11867         *types'; added `MonoType *nested_in'.  Recursively instantiate
11868         nested classes. 
11869
11870 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11871
11872         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11873         stack_overflow_ex members which are used by exception handling.
11874
11875         * appdomain.c (mono_runtime_init): Initialize the new members.
11876
11877         * gc.c (mono_gc_enable): New helper function.
11878         * gc.c (mono_gc_disable): New helper function.
11879
11880 2004-02-23  Martin Baulig  <martin@ximian.com>
11881
11882         * icall.c: I must have been really stupid - make it actually work
11883         this time ;-)
11884
11885 2004-02-23  Martin Baulig  <martin@ximian.com>
11886
11887         * loader.c (method_from_memberref): Only inflate the method if
11888         it's in another klass.
11889
11890 2004-02-23  Martin Baulig  <martin@ximian.com>
11891
11892         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
11893         (mono_class_init): If we're a generic instance and an interface,
11894         compute `class->interface_id'; also create `class->interfaces'
11895         here and inflate them.
11896
11897         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
11898         `ginst->is_open'.
11899         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
11900
11901         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
11902
11903 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
11904
11905         * reflection.c (method_encode_code): Improved the error message
11906         generated by the exception.
11907
11908 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11909
11910         * icall.c: Martin did not do what he said in the ChangeLog for
11911         2004-02-18, but put back the changes for properties and events.
11912         Commenting those changes out again and adding comment to bug #54518.
11913         
11914         * process.c: removed warning.
11915
11916 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
11917
11918         * marshal.c (emit_struct_conv): Print an error message instead of
11919         asserting when a type does not have the StructLayout attribute.
11920
11921 2004-02-20  Martin Baulig  <martin@ximian.com>
11922
11923         * reflection.c (mono_type_get_object): Also use the cache for
11924         generic instances.
11925         (mono_reflection_bind_generic_parameters): Always compute
11926         `ginst->ifaces'.        
11927
11928 2004-02-20  Martin Baulig  <martin@ximian.com>
11929
11930         * class.h (MonoGenericMethod): Removed `klass'.
11931
11932         * class.c (mono_class_inflate_generic_method): Added `MonoClass
11933         *klass' argument.
11934
11935 2004-02-20  Martin Baulig  <martin@ximian.com>
11936
11937         * reflection.c (method_encode_methodspec): Actually use the
11938         uninflated signature for the memberref.
11939
11940 2004-02-20  Martin Baulig  <martin@ximian.com>
11941
11942         * class.h (MonoGenericMethod): Removed `declaring'.
11943
11944         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
11945         is NULL, compute it here.
11946
11947 2004-02-20  Martin Baulig  <martin@ximian.com>
11948
11949         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
11950
11951         * metadata.c (mono_metadata_generic_inst_hash): New method.
11952         (mono_metadata_generic_inst_equal): New method.
11953
11954         * reflection.c (mono_reflection_bind_generic_parameters): Use the
11955         `klass->image->generic_inst_cache' cache to avoid creating
11956         duplicate MonoGenericInst's.
11957
11958         * class.c (mono_class_inflate_generic_type): Use the cache.
11959
11960 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11961
11962         * object.c: fixed gc descriptor calculation for embedded valuetypes.
11963
11964 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11965
11966         * icall.c: added Socket.WSAIoctl icall.
11967
11968         * socket-io.[ch]: implemented
11969         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
11970
11971 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
11972
11973         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
11974
11975 2004-02-18  Urs C Muff  <umuff@quark.com>
11976
11977         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
11978         this work on PPC and other big-endian architectures.
11979
11980         * debug-mono-symfile.h: Prepended the names of all the `guint32'
11981         fields with an underscore to make sure they're only accessed by
11982         the read32() macro.
11983
11984 2004-02-18  Martin Baulig  <martin@ximian.com>
11985
11986         * icall.c: Put the klass->refclass changes back for methods and
11987         fields, but not for properties and events.  We're currently not
11988         distinguishing between DeclaringType and ReflectedType for
11989         properties and events, that's what caused the regressions.
11990
11991 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11992
11993         * object.c:
11994         (mono_async_result_new): the handle can be NULL.
11995
11996         * threadpool.c: Use an event instead of a semaphore, don't initialize
11997         it until needed. This saves quite a few semaphores from being created
11998         when using the threadpool.
11999
12000 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12001
12002         * object.c (mono_string_is_interned_lookup): Fix interning of long
12003         strings. Fixes #54473.
12004
12005         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12006
12007         * icall.c: Revert the klass->refclass changes since they introduce
12008         regressions (bug #54518).
12009
12010 2004-02-18  Martin Baulig  <martin@ximian.com>
12011
12012         * class.c (mono_class_init): If we're a generic instance and don't
12013         come from a TypeBuilder, inflate our members here.
12014         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12015         (mono_class_create_generic): New public method.
12016         (mono_class_initialize_generic): Removed.
12017         (get_instantiation_name): Renamed to
12018         _mono_class_get_instantiation_name() and made it public.
12019
12020 2004-02-18  Martin Baulig  <martin@ximian.com>
12021
12022         * class.c (mono_class_inflate_generic_type): Clear the new
12023         instance's `nginst->klass' when inflating a generic instance.
12024         (mono_class_is_subclass_of): Added (basic) support for generic
12025         instances.
12026
12027 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12028
12029         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12030         MonoMempool to hold compiled native code.
12031
12032 2004-02-17  Martin Baulig  <martin@ximian.com>
12033
12034         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12035         `properties'.
12036
12037         * reflection.c (mono_reflection_generic_inst_initialize): Added
12038         `MonoArray *properties' argument.
12039
12040         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12041
12042 2004-02-17  Martin Baulig  <martin@ximian.com>
12043
12044         * icall.c (ves_icall_Type_GetFields): Renamed to
12045         ves_icall_Type_GetFields_internal() and added a
12046         `MonoReflectionType *rtype' argument; pass it to
12047         mono_field_get_object() to set the field's "reflected" type.
12048         (ves_icall_Type_GetConstructors): Likewise.
12049         (ves_icall_Type_GetEvents): Likewise.
12050         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12051         argument; pass it to mono_method_get_object() to set the method's
12052         "reflected" type.       
12053
12054 2004-02-17  Martin Baulig  <martin@ximian.com>
12055
12056         * class.h (MonoDynamicGenericInst): New type.
12057         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12058
12059         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12060         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12061         (ves_icall_MonoGenericInst_GetFields): New interncall.
12062
12063         * class.c (mono_class_from_generic): Don't call
12064         mono_class_initialize_generic() if this is a dynamic instance;
12065         ie. it's being created from a TypeBuilder.
12066         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12067         `class->byval_arg.type'.
12068
12069         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12070         to `inflate_method' and made static.
12071         (mono_reflection_inflate_field): Removed.
12072         (mono_reflection_generic_inst_initialize): New public method.
12073
12074         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12075         `ctors' and `fields'; added `initialized'.
12076
12077 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12078
12079         * debug-helpers.c (mono_method_full_name): Fix output for empty
12080         namespaces.
12081
12082 2004-02-12  Martin Baulig  <martin@ximian.com>
12083
12084         * class.h (MonoClassField): Added `MonoType *generic_type'.
12085
12086         * reflection.c (mono_image_get_fieldref_token): Added support for
12087         instantiated generic types.
12088         (field_encode_inflated_field): Removed.
12089         (mono_image_get_inflated_field_token): Removed.
12090         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12091
12092         * reflection.h (MonoReflectionInflatedField): Removed.
12093
12094 2004-02-12  Martin Baulig  <martin@ximian.com>
12095
12096         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12097         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12098
12099         * reflection.c (mono_image_get_methodspec_token): Take a
12100         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12101         (mono_image_create_token): Check whether we have a
12102         `method->signature->gen_method' and call
12103         mono_image_get_methodspec_token() if appropriate.
12104         (inflated_method_get_object): Removed.
12105         (mono_reflection_bind_generic_method_parameters): Return a
12106         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12107         (mono_reflection_inflate_method_or_ctor): Likewise.
12108
12109         * reflection.h (MonoReflectionInflatedMethod): Removed.
12110
12111 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12112
12113         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12114         for custom valuetype marshalling.
12115
12116         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12117
12118 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12119
12120         * icall.c: fixed WSAGetLastError_internal name.
12121
12122 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12123
12124         * threads.c (mono_thread_attach): Allow this to be called multiple
12125         times for a thread.
12126         
12127         * threads.c (build_wait_tids): Do not wait for ourselves.
12128
12129         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12130         appdomain list is empty.
12131
12132         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12133         memory returned by mono_string_builder_to_utf16, since it points into
12134         managed memory. Thanks to Bernie Solomon for noticing this.
12135
12136         * icall.c: Add AppDomainSetup icalls.
12137
12138         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12139
12140         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12141         types.
12142
12143         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12144         custom attributes to the method_aux struct. Also fix array indexes etc.
12145
12146         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12147         
12148 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12149
12150         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12151         (both static and runtime) and reduce startup time.
12152
12153 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12154
12155         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12156         AsAny marshalling conversion instead of crashing.
12157
12158         * marshal.c: Fix warnings.
12159
12160 2004-02-09  Martin Baulig  <martin@ximian.com>
12161
12162         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12163
12164         * reflection.h (MonoReflectionInflatedMethod): Removed the
12165         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12166
12167         * reflection.c (method_encode_methodspec): Removed the `method'
12168         argument; we get it from `gmethod->declaring'.
12169         (inflated_method_get_object): Removed the `declaring' argument.
12170
12171 2004-02-09  Martin Baulig  <martin@ximian.com>
12172
12173         * class.h (MonoGenericMethod): New type.
12174         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12175         `generic_method'.
12176
12177         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12178         a `MonoGenericMethod *gen_method' one.
12179
12180         * class.c (mono_class_inflate_generic_type): Take an additional
12181         `MonoGenericMethod * argument.  This is only non-NULL if we're
12182         inflating types for a generic method.   
12183         (mono_class_inflate_generic_signature): Renamed to
12184         inflate_generic_signature() and made static; take a
12185         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12186         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12187         instead of a `MonoGenericInst *' one.
12188         (mono_class_inflate_generic_method): Likewise.
12189
12190         * reflection.c (encode_generic_method_sig): Take a
12191         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12192         (method_encode_methodspec): Likewise.
12193         (inflated_method_get_object): Likewise. 
12194
12195         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12196         field with a `MonoGenericMethod *gmethod' one.  
12197
12198 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12199
12200         * class.h (mono_class_has_parent): add parens to expansion
12201         so you can ! this.
12202
12203 2004-02-08  Martin Baulig  <martin@ximian.com>
12204
12205         * image.h (MonoImage): Removed `generics_cache'.
12206
12207         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12208         instead of a `MonoType *' argument; removed the `inflate_methods'
12209         argument.  Don't inflate methods here.
12210
12211         * loader.c (find_method): If it's a generic instance, call
12212         mono_class_init() on the `sclass->generic_inst->generic_type'.
12213
12214         * metadata.c (mono_type_size): Make this work on uninitialized
12215         generic instances; call it on the `ginst->generic_type's class.
12216
12217         * reflection.c (mono_reflection_bind_generic_parameters): Call
12218         mono_class_from_generic() to create the `ginst->klass'.
12219
12220 2004-02-08  Martin Baulig  <martin@ximian.com>
12221
12222         * class.h (MonoClass): Changed type of `generic_inst' from
12223         `MonoType *' to `MonoGenericInst *'.
12224
12225 2004-02-08  Martin Baulig  <martin@ximian.com>
12226
12227         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12228         mono_type_get_object(), this is now creating a `MonoGenericInst'
12229         for MONO_TYPE_GENERICINST.
12230         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12231         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12232
12233         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12234         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12235         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12236         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12237         and reflected type.
12238
12239         * reflection.h (MonoReflectionInflatedMethod): Removed
12240         `declaring_type' and `reflected_type'.
12241
12242 2004-02-08  Martin Baulig  <martin@ximian.com>
12243
12244         * class.h (MonoGenericInst): Added `MonoType *parent' and
12245         `MonoType **ifaces'.
12246
12247         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12248         `parent' and `interfaces'.
12249
12250         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12251         `MonoType *' argument and return a `MonoType *'.
12252
12253         * icall.c
12254         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12255         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12256
12257 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12258
12259         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12260         valuetype marshalling.
12261
12262 2004-02-06  Martin Baulig  <martin@ximian.com>
12263
12264         * class.c
12265         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12266         (my_mono_class_from_generic_parameter): Likewise.
12267
12268 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12269
12270         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12271         contents of the symbol files lazily.
12272
12273         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12274
12275         * threads.h threads.c icall.c: New icalls for getting and setting the
12276         threads name.
12277
12278 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12279
12280         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12281         Raise an exception when the domain is not found.
12282
12283 2004-02-03  Martin Baulig  <martin@ximian.com>
12284
12285         * reflection.c (mono_image_get_methodspec_token): Use the
12286         uninflated signature; fixes gen-33.
12287
12288 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12289
12290         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12291         the finalizer code can use thread functionality.
12292
12293         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12294         the finalizer thread.
12295
12296         * threads.c: Make some functions more robust.
12297
12298         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12299
12300         * metadata.h: Add new marshalling conventions.
12301
12302         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12303         stringbuilder marshalling. Fixes #53700.
12304
12305         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12306
12307         * reflection.c (mono_image_get_type_info): Save declarative security
12308         info.
12309
12310         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12311         unmanaged fields as well.
12312
12313         * appdomain.c: Bump corlib version.
12314
12315 2004-02-01  Martin Baulig  <martin@ximian.com>
12316
12317         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12318         method type arguments.  
12319
12320 2004-01-30  Duncan Mak  <duncan@ximian.com>
12321
12322         * marshal.h: Add prototype for
12323         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12324         and
12325         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12326         fix the build.
12327
12328 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12329
12330         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12331         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12332
12333 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12334
12335         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12336         custom marshalling of valuetypes.
12337
12338         * marshal.c: Fix some warnings.
12339
12340 2004-01-29  Martin Baulig  <martin@ximian.com>
12341
12342         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12343         for generic method parameters.
12344
12345         * reflection.c (method_encode_methodspec): Write the uninflated
12346         signature into the methodspec table.
12347         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12348         is always the uninflated method.
12349         (reflection_methodbuilder_to_mono_method): Copy the generic
12350         parameters from the MethodBuilder into `header->gen_params'.
12351
12352 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12353
12354         * class.c (mono_class_from_generic_parameter): Fix warning.
12355
12356 2004-01-27  Martin Baulig  <martin@ximian.com>
12357
12358         * class.c (mono_class_from_generic_parameter): Don't create
12359         `klass->methods' here.  
12360
12361 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12362
12363         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12364         extension since it does not work with libraries named lib<FOO>.dll.so.
12365
12366 2004-01-25  Martin Baulig  <martin@ximian.com>
12367
12368         * class.c (mono_class_inflate_generic_type): Added support for
12369         MONO_TYPE_GENERICINST.
12370
12371         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12372         inflate methods on open constructed types.      
12373
12374 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12375
12376         * object.c: fire ProcessExit event in the root AppDomain after running
12377         Main. Fixes bug #53299.
12378
12379 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12380
12381         * socket-io.c: include the new socket-wrappers.h header.
12382         Use the wrappers instead of the unix socket functions to make the code
12383         more clear.
12384
12385 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12386
12387         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12388
12389         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12390         Fixes #22532.
12391
12392 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12393
12394         * reflection.c (mono_image_create_pefile): Handle the case when the
12395         entry point is not a MethodBuilder.
12396
12397         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12398         field to ReflectionMethod since it is not allways a builder.
12399
12400         * reflection.c (type_get_fully_qualified_name): New helper function to
12401         return the fully qualified name of a type.
12402
12403         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12404         type name for custom marshallers.
12405
12406         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12407
12408         * class.c (mono_class_setup_vtable): If a parent class already 
12409         implements an interface, use the implementing methods from that class.
12410         Fixes #53148.
12411
12412 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12413
12414         * threadpool.c: just return instead of ExitThread to allow for thread
12415         clean up earlier.
12416
12417 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12418
12419         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12420         when closing resource modules.
12421
12422         * reflection.c (mono_image_create_pefile): Handle the case when the
12423         entry point is not a MethodBuilder.
12424
12425         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12426         field to ReflectionMethod since it is not allways a builder.
12427
12428 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12429
12430         * marshal.c (mono_marshal_get_managed_wrapper): 
12431         mono_marshal_alloc takes native int so CONV_I
12432         the arg for 64bits.
12433
12434 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12435
12436         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12437         tokens in the cattr table. Fixes #53108.
12438
12439 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12440
12441         * loader.c: don't trim ".dll" before looking up in the config file.
12442         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12443
12444 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12445
12446         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12447         Return the module which contains the resource as well.
12448         (ves_icall_System_Reflection_Module_Close): New icall.
12449
12450         * appdomain.c: Bump corlib version number.
12451
12452         * image.c (mono_image_addref): New public function.
12453
12454         * assembly.c: Call mono_image_addref.
12455
12456         * reflection.c (mono_module_get_object): Increase reference count of 
12457         the image.
12458
12459         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12460         Fixes #22532.
12461
12462         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12463         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12464         proper exceptions on DllImport problems.
12465
12466 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12467
12468         * class.c, metadata.c: eliminate CSIZE macro.
12469
12470 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12471
12472         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12473         * object.h: Added async_callback field in MonoAsyncResult.
12474         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12475         * verify.c: Added async_callback in MonoAsyncResult layout.
12476
12477 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12478
12479         * reflection.c (mono_reflection_get_custom_attrs): Add support
12480         for Modules.
12481
12482 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12483
12484         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12485         marshalling.
12486         (mono_marshal_method_from_wrapper): Add null pointer check.
12487
12488 2004-01-16  Martin Baulig  <martin@ximian.com>
12489
12490         * debug-mono-symfile.h: Set version number to 36 and reflect
12491         latest symbol writer changes.
12492
12493 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12494
12495         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12496         multi-dimensional arrays.
12497         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12498         (mono_class_from_mono_type): Use bounded_array_class_get.
12499         
12500         * class.c (mono_bounded_array_class_get): New function which takes
12501         a 'bounded' bool argument to distinguish vectors from one dimensional
12502         arrays.
12503
12504         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12505         bounded_array_class_get if the array has bounds.
12506
12507         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12508         Search modules loaded using AssemblyBuilder:AddModule as well.
12509
12510 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12511
12512         * appdomain.c: increased corlib version.
12513         * filewatcher.c: removed g_print.
12514         * icall.c:
12515         (get_property_info): only allocate what is actually requested.
12516         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12517
12518 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12519
12520         * Makefile.am: added filewatcher.[ch]
12521         * filewatcher.[ch]: FileSystemWatcher runtime support.
12522         * icall.c: added new FSW icalls.
12523
12524 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12525
12526         * string-icalls.c: fix stringbuilder regression as suggested by
12527         Iain McCoy <iain@mccoy.id.au>.
12528
12529 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12530
12531         * process.c (process_read_stringtable_block): Recognize '007f' as
12532         a language neutral stringtable block.
12533
12534 2004-01-12  Patrik Torstensson
12535
12536         * object.h (MonoStringBuilder) : Changed layout to support our
12537         new stringbuilder class.
12538         * marshal.c: Change marshalling to support the new layout of 
12539         string builder.
12540         * appdomain.c: increased version number because new layout of
12541         string builder.
12542
12543 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12544
12545         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12546         assembly name as an string instead of an AssemblyName, since it is
12547         easier to extract info from it.
12548
12549         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12550         the culture subdirectories too. Fixes #52231.
12551
12552 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12553
12554         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12555         It takes 2 new parameters with an optional name for the method to look
12556         for and case ignoring info.
12557
12558         * threadpool.c: removed unused variable.
12559
12560 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12561
12562         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12563         It takes 2 new parameters with an optional name for the property to look
12564         for and case ignoring info.
12565         Fixes bug #52753.
12566
12567 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12568
12569         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12570         Fix #52451.
12571
12572 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12573
12574         * appdomain.c:
12575         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12576         Fixes bug #52630.
12577
12578 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12579
12580         * reflection.c: Add support for more than one unmanaged resource.
12581
12582         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12583         in field->def_value, as done in all other cases.
12584
12585         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12586         TypeBuilders.
12587
12588         * reflection.c (mono_reflection_create_runtime_class): Remove 
12589         errorneous assignment to klass->element_class, since it is already
12590         done in mono_reflection_setup_internal_class.
12591
12592 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12593
12594         * gc.c: added missing LeaveCriticalSection.
12595         * icall.c: indented a couple of lines.
12596         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12597         if we call EndInvoke inside a callback. Fixes bug #52601.
12598
12599 2004-01-07  Martin Baulig  <martin@ximian.com>
12600
12601         * mono-debug-debugger.h
12602         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12603
12604 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12605
12606         * appdomain.c: Use messages in NotImplementedException.
12607
12608         * exception.c (mono_get_exception_not_implemented): Now this takes
12609         a message argument.
12610
12611         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12612         exception instead of g_asserting an aborting when something is not
12613         implemented.
12614
12615         Add some inline docs.
12616
12617 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12618
12619         * reflection.h: Update after changes to object layout.
12620
12621         * reflection.c: Implement saving of unmanaged aka win32 resources.
12622
12623         * appdomain.c: Bump version number.
12624
12625         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12626         Handle missing domains gracefully.
12627
12628 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12629
12630         * file-io.c : On Windows, there are much more invalid_path_chars.
12631
12632 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12633
12634         * class.h, object.c: prepare for GetType () speedup.
12635
12636 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12637
12638         * profiler.c: workaround for --profile null reference exception on
12639           cygwin. Patch by Patrik Torstensson.
12640
12641 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12642
12643         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12644         make work for unaligned access.
12645
12646 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12647
12648         * class.c: small cleanup (class->fields [i] -> field).
12649         * image.c: check address of metadata is valid.
12650
12651 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12652
12653         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12654         search the list of loaded assemblies.
12655
12656         * reflection.c (mono_reflection_type_from_name): Use 
12657         mono_assembly_loaded instead of mono_image_loaded.
12658
12659         * reflection.c: Fix warnings.
12660
12661 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12662
12663         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12664         is dynamic. This is needed since an assembly can contain both dynamic and
12665         non-dynamic images.
12666
12667         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12668         assembly->dynamic.
12669
12670         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12671
12672         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12673         to store modules loaded using AddModule.
12674
12675         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12676         on Modules.
12677
12678         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12679
12680         * reflection.c (mono_image_fill_export_table_from_module): New function to
12681         fill out the EXPORTEDTYPES table from a module.
12682
12683         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12684         into a separate function. Also handle loaded non-dynamic modules.
12685
12686         * reflection.c (mono_image_basic_init): Fix memory allocation.
12687
12688         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12689
12690         * assembly.c (mono_assembly_load_references): Make this public.
12691
12692 2003-12-19  Martin Baulig  <martin@ximian.com>
12693
12694         * class.c (mono_class_initialize_generic): Made this static, take
12695         a `MonoGenericInst *' instead of a `MonoClass *'.
12696         (mono_class_from_generic): Call mono_class_initialize_generic()
12697         unless we're already initialized or being called from
12698         do_mono_metadata_parse_generic_inst().
12699
12700         * class.h (MonoGenericInst): Added `initialized' and
12701         `init_pending' flags.
12702
12703         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12704         `mono_class_init (gklass)' or mono_class_initialize_generic()
12705         here; set `generic_inst->init_pending' while parsing the
12706         `type_argv'.
12707
12708 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12709
12710         * locales.c: include string.h for memxxx prototypes
12711
12712 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12713
12714         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12715         constructor when accessing literal fields.
12716
12717 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12718
12719         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12720
12721         * reflection.c (assembly_add_resource_manifest): New function to fill
12722         the MANIFESTRESOURCE table.
12723
12724         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12725
12726         * reflection.h: Update to changes in class layout.
12727
12728         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12729         Reenable call to mono_runtime_is_shutting_down ().
12730
12731         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12732         determine if the runtime is shutting down.
12733
12734 2003-12-16  Jackson Harper <jackson@ximian.com>
12735
12736         * icall.c: comment out call to mono_runtime_is_shutting_down to
12737         fix build.
12738         
12739 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12740
12741         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12742         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12743
12744 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12745
12746         * reflection.c: move definition of swap_with_size
12747         to before its first call
12748
12749 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12750
12751         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12752
12753         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12754         icall.
12755
12756         * object.c: Fix warnings.
12757
12758         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12759         members if FlattenHierarchy is set.
12760
12761         * reflection.c (mono_image_add_decl_security): New function to emit
12762         declarative security.
12763
12764         * reflection.h reflection.c: Add support for declarative security.
12765
12766         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12767         
12768 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12769
12770         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12771         
12772         * appdomain.c verify.c: Moved corlib version checking into its own
12773         function in appdomain.c since it needs to create vtables etc.
12774
12775 2003-12-13  Patrik Torstensson <p@rxc.se>
12776
12777         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12778         instead of unwrapped server.
12779
12780 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12781
12782         * verify.c (check_corlib): Fix field index.
12783
12784 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12785
12786         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12787         GetGacPath icall.
12788
12789 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12790
12791         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12792         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12793         cope with sizeof(size_t) != sizeof(guint32).
12794
12795 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12796
12797         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12798         in case of failure.
12799
12800 2003-12-10  Mark Crichton <crichton@gimp.org>
12801
12802         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12803         in managed code.
12804
12805         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12806
12807 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12808
12809         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12810         marked as deleted.
12811
12812 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12813
12814         * verify.c (check_corlib): Handle the case when the version field is 
12815         initialized by a static constructor.
12816
12817 2003-12-08  Patrik Torstensson  <p@rxc.se>
12818
12819     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12820
12821 2003-12-08  Martin Baulig  <martin@ximian.com>
12822
12823         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12824         a MonoReflectionGenericParameter, also take the parameter index
12825         and name as arguments.
12826         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12827         (ves_icall_MonoGenericParam_initialize): New interncall.
12828         (ves_icall_Type_make_byref_type): New interncall.
12829
12830         * reflection.h (MonoReflectionGenericParam): Derive from
12831         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12832         `index' fields.
12833
12834         * reflection.c (mono_reflection_define_generic_parameter): Create
12835         and return a new MonoReflectionGenericParam; don't initialize the
12836         constraints here.
12837         (mono_reflection_initialize_generic_parameter): New public method;
12838         initializes the constraints and creates the `param->pklass'.
12839
12840 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12841
12842         * reflection.h reflection.c: Use the new fields 'num_types', 
12843         'num_fields' and 'num_methods' to track the number of types etc.
12844
12845         * verify.c (check_corlib): Check corlib version number.
12846
12847 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12848
12849         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12850         function works on all methods.
12851
12852 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12853
12854         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12855         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12856         the custom_type_info flag of the transparent proxy.
12857         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12858         objects that supports IRemotingTypeInfo.
12859         * object.h: Added custom_type_info field in transparent proxy.
12860
12861 2003-12-06  Martin Baulig  <martin@ximian.com>
12862
12863         * class.c (mono_class_create_from_generic): Removed.
12864         (mono_class_from_generic): Check `ginst->klass' before doing
12865         anything else.  This is important to fully support "recursive"
12866         generic types.
12867
12868         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12869         empty `generic_inst->klass' before doing anything else.
12870
12871 2003-12-06  Dick Porter  <dick@ximian.com>
12872
12873         * verify.c: 
12874         * object.h:
12875         * icall.c:
12876         * locales.c: Use C structs to access class fields.  Don't do a
12877         conversion between MonoString and UChar because both are
12878         platform-endian UTF-16.  Compare now takes startindex and count
12879         parameters.  Add a char overload for IndexOf.  Speed up the
12880         invariant string IndexOf.
12881
12882 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12883
12884         * Makefile.am (monosn_LDADD): Fix parallel build.
12885
12886 2003-12-04  Martin Baulig  <martin@ximian.com>
12887
12888         * icall.c
12889         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12890         (ves_icall_Type_make_array_type): New interncall.       
12891
12892 2003-12-04  Martin Baulig  <martin@ximian.com>
12893
12894         * locales.c: also change it in the !HAVE_ICU case.
12895
12896 2003-12-04  Dick Porter  <dick@ximian.com>
12897
12898         * icall.c:
12899         * locales.c: construct_compareinfo is now in CompareInfo, not
12900         CultureInfo.
12901
12902 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
12903
12904         * image.c (mono_image_load_file_for_image): Cache loaded images in the
12905         image->files array.
12906
12907         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
12908         table as well.
12909
12910         * assembly.c (mono_assembly_load_references): Only load references
12911         once.
12912
12913         * class.c (mono_class_from_name): Avoid linear search of the 
12914         EXPORTEDTYPE table.
12915
12916         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
12917
12918 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
12919
12920         * image.h (MonoImage): Add 'field_cache' field.
12921
12922         * loader.c (mono_field_from_token): Cache field lookups.
12923         
12924         * reflection.c (mono_module_get_object): Fix name property.
12925
12926         * icall.c (ves_icall_get_enum_info): Update after changes to 
12927         mono_metadata_get_constant_index ().
12928
12929         * icall.c: Get rid of get_type_info icall, use a separate icall for
12930         each type property to avoid needless memory allocations. Fixes #51514.
12931
12932         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
12933         to avoid needless binary searches.
12934
12935         * class.c (class_compute_field_layout): Move the initialization of
12936         field->def_value to mono_class_vtable ().
12937
12938         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
12939         non-corlib types.
12940
12941         * object.c (mono_object_allocate): Make it inline.
12942
12943         * object.c (mono_object_allocate_spec): Make it inline.
12944         
12945 2003-12-02  Dick Porter  <dick@ximian.com>
12946
12947         * locales.c (create_NumberFormat): NumberFormatInfo construction.
12948         Patch by Mohammad DAMT (mdamt@cdl2000.com).
12949
12950 2003-12-01  Dick Porter  <dick@ximian.com>
12951
12952         * threads.c: Fix signature and call in CreateMutex and
12953         CreateEvent.
12954
12955 2003-12-01  Dick Porter  <dick@ximian.com>
12956
12957         * icall.c: 
12958         * locales.c: Implement string compares and searching
12959
12960         * object.h: Add extra Thread field
12961
12962 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
12963
12964         * reflection.c (fixup_method): Add support for MonoCMethod.
12965
12966 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
12967
12968         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
12969
12970         * reflection.c (assembly_name_to_aname): Allow extra characters in
12971         assembly names. Fixes #51468.
12972
12973 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
12974
12975         * exception.c (mono_exception_from_name_domain): New helper function.
12976
12977         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
12978         exception object in the correct domain.
12979
12980         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
12981         formatting + make a copy a the input data.
12982
12983         * loader.c (mono_get_method_from_token): Methods which contain
12984         native code do not have entries in the ImplMap.
12985
12986         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
12987         Thanks to Gonzalo for spotting this.
12988         
12989         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
12990         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
12991
12992         * assembly.h (mono_assembly_load_from): Split the second part of 
12993         assembly loading into a new public function.
12994
12995         * exception.h (mono_get_exception_bad_image_format): New function.
12996
12997 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
12998
12999         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13000         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13001         
13002         * icall.c: Add new icall for creating dynamic methods.
13003
13004         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13005
13006         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13007
13008         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13009         create a dynamic method.
13010
13011         * reflection.c (resolve_object): New helper function.
13012
13013         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13014         which manipulate it so they can also work on dynamic methods.
13015
13016         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13017         creating the MonoReflectionMethodAux structure if it is not needed.
13018         
13019         * reflection.h verify.c: Update after changes to object layout.
13020
13021         * reflection.c (method_builder_encode_signature): Fix compilation on
13022         gcc 2.95.x.
13023
13024 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13025
13026         * appdomain.h: Added support for context static fields. Added static_data
13027           field to MonoAppContext and renamed thread_static_fields to a more
13028           generic special_static_fields in MonoAppDomain, since it can now contain
13029           context static fields.
13030         * domain.c: Updated hashtable name.
13031         * object.c: Replaced field_is_thread_static() for a more generic
13032           field_is_special_static() which also checks for context static attribute.
13033           In mono_class_vtable(), added support for static context fields.
13034         * threads.c: Changed methods that manage thread static fields to more
13035           generic methods so they can be reused both for thread and context static
13036           data.
13037         * threads.h: Declared some new methods.
13038
13039 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13040
13041         * reflection.h: Update after changes to the managed types.
13042
13043         * reflection.c (encode_custom_modifiers): New helper function.
13044
13045         * reflection.c (method_encode_signature): Emit custom modifiers.
13046
13047         * reflection.c (field_encode_signature): Emit custom modifiers.
13048
13049 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13050
13051         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13052
13053         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13054         implementation.
13055
13056         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13057         icall.
13058
13059         * object.c (mono_field_get_value_object): New function.
13060
13061         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13062         specific.
13063
13064 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13065
13066         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13067         return a preallocated out-of-memory exception instance.
13068
13069         * object.c (out_of_memory): Use the new function.
13070
13071         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13072         flag is before the custom modifiers. Fixes #49802.
13073
13074 2003-11-16  Martin Baulig  <martin@ximian.com>
13075
13076         * class.c (mono_class_is_open_constructed_type): Implemented the
13077         MONO_TYPE_GENERICINST case.
13078
13079 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13080
13081         * assembly.c (mono_assembly_fill_assembly_name): New function to
13082         fill out the MonoAssemblyName structure.
13083         (mono_assembly_open): Use the new function.
13084
13085         * icall.c (fill_reflection_assembly_name): New helper function.
13086
13087         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13088         new function.
13089
13090         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13091
13092 2003-11-15  Martin Baulig  <martin@ximian.com>
13093
13094         * class.c (mono_class_is_open_constructed_type): New public
13095         function; checks whether a type is an open constructed type,
13096         ie. whether it still contains type parameters.
13097         (mono_class_inflate_generic_type): If we're a type parameter and
13098         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13099         type.
13100
13101         * class.h (MonoGenericInst): Added `guint32 is_open'.
13102
13103         * loader.c (method_from_methodspec): Check whether we're an open
13104         or closed constructed type and set `ginst->is_open'.
13105
13106         * reflection.c (mono_reflection_bind_generic_parameters): Check
13107         whether we're an open or closed constructed type and set
13108         `ginst->is_open'.
13109         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13110         from open constructed types.
13111
13112 2003-11-15  Martin Baulig  <martin@ximian.com>
13113
13114         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13115         a generic instance (instead of a generic type declaration) with
13116         unbound generic parameters, bind them to our actual types.
13117
13118 2003-11-14  Martin Baulig  <martin@ximian.com>
13119
13120         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13121
13122         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13123         an interface type, populate `res->interfaces' with instantiated
13124         versions of all the interfaces we inherit.
13125
13126 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13127
13128         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13129         when MONO_PATH is set but doesn't contain the install dir.
13130
13131 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13132
13133         * icall.c:
13134         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13135         it's also implemented in base classes. Fixes bug #50927.
13136
13137 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13138
13139         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13140         if this method is called from a finalizer. Fixes #50913.
13141
13142 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13143
13144         * threads.c: Implement VolatileRead/VolatileWrite
13145
13146         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13147
13148 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13149
13150         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13151         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13152         2.95.3.
13153
13154         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13155         from Peter Ross (pro@missioncriticalit.com).
13156         
13157 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13158
13159         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13160
13161 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13162
13163         * assembly.c (mono_assembly_load_references): Disable check because it
13164         triggers on older corlibs which lots of people have.
13165
13166 2003-11-12  Jackson Harper  <jackson@ximian.com>
13167
13168         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13169         load corlib.dll if mscorlib.dll is not found.
13170         * assembly.h: Remove corlib name define.
13171         * class.c:
13172         * domain.c:
13173         * image.c: Change corlib name to mscorlib.
13174         
13175 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13176
13177         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13178
13179 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13180
13181         * appdomain.h: Added loader_optimization here to sync with the C#
13182         code, and add disallow_binding_redirects field.
13183
13184 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13185
13186         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13187
13188         * reflection.c (mono_image_build_metadata): Fix crash on modules
13189         with no types.
13190
13191         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13192
13193         * icall.c (ves_icall_get_method_info): Return callingConvention as
13194         well.
13195
13196         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13197         namespaces from the EXPORTEDTYPE table as well.
13198
13199         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13200         from all modules inside the assembly.
13201         
13202 2003-11-11  Martin Baulig  <martin@ximian.com>
13203
13204         * reflection.c (mono_reflection_bind_generic_parameters): Make
13205         this work for interfaces.
13206
13207 2003-11-11  Martin Baulig  <martin@ximian.com>
13208
13209         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13210
13211 2003-11-11  Martin Baulig  <martin@ximian.com>
13212
13213         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13214         "MonoInflatedMethod" and "MonoInflatedCtor".
13215
13216 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13217
13218         * reflection.c (resolution_scope_from_image): Use the assembly table
13219         from the manifest module, since other modules don't have it.
13220
13221         * debug-helpers.c (mono_type_full_name): New helper function.
13222
13223         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13224
13225         * image.c (mono_image_load_file_for_image): New public function which
13226         is a replacement for the load_file_for_image in class.c.
13227
13228         * assembly.c (mono_assembly_load_module): A wrapper for the function
13229         above which does assembly association and reference loading too.
13230
13231         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13232
13233 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13234
13235         * appdomain.c: not all of the attributes for the full assembly name
13236         are required and the order doesn't matter. Fixes bug #50787.
13237
13238 2003-11-10  Dick Porter  <dick@ximian.com>
13239
13240         * locales.c: Use platform-endian UTF16
13241
13242 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13243
13244         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13245         
13246 2003-11-10  Martin Baulig  <martin@ximian.com>
13247
13248         * metadata.c
13249         (mono_metadata_load_generic_params): Make this actually work.
13250
13251         * reflection.c (mono_reflection_bind_generic_parameters): If our
13252         parent is a generic instance, pass all the `types' to it, no
13253         matter whether it has the same number of type parameters or not.
13254
13255 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13256
13257         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13258
13259         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13260         assignment code to this function so it gets called recursively for all
13261         modules.
13262
13263         * image.c (load_modules): Remove the assembly assignment since it is
13264         now done by mono_assembly_load_references.
13265         
13266         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13267         Add 'module' argument.
13268         (mono_module_get_types): New helper function.
13269         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13270
13271 2003-11-08  Martin Baulig  <martin@ximian.com>
13272
13273         * class.c (mono_class_inflate_generic_method): Interface method
13274         don't have a header.
13275
13276         * reflection.c (mono_image_get_methodspec_token): Take an
13277         additional `MonoGenericInst *' argument instead of reading it from
13278         the header; this is necessary to support interfaces.
13279         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13280         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13281         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13282         argument.
13283
13284         * reflection.h (MonoReflectionInflatedMethod): Added
13285         `MonoGenericInst *ginst'.
13286
13287 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13288
13289         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13290
13291 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13292
13293         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13294
13295 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13296
13297         * reflection.c 
13298         (reflection_methodbuilder_from_method_builder):
13299         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13300         initialize a ReflectionMethodBuilder structure.
13301         (mono_image_get_methodbuilder_token):
13302         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13303         tokens which point to types in another module inside the same assembly.
13304
13305         * reflection.c: Use the new helper functions.
13306         
13307         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13308
13309         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13310         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13311
13312         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13313         neccesary.
13314
13315         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13316         current module. Emit the manifest only for the main module.
13317
13318         * reflection.c (mono_image_create_token): Add assertion when a 
13319         memberref needs to be created.
13320
13321         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13322
13323         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13324         larger buffer for the custom attribute blob. Fixes #50637.
13325         
13326 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13327
13328         * threadpool.c: notify listener on async processing handles after
13329         invoking the async callback. Thanks to Zoltan.
13330
13331 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13332
13333         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13334         avoid code duplication.
13335
13336         * reflection.h (MonoDynamicImage): New type which is currently unused,
13337         but will be used through the ref.emit code in place of 
13338         MonoDynamicAssembly.
13339
13340         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13341         object layout.
13342
13343         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13344         a MonoDynamicImage instead of just a MonoImage.
13345         
13346         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13347         icalls to ModuleBuilder but keep their semantics, so they will work
13348         with moduleb->assemblyb. This will change later.
13349         
13350 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13351
13352         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13353         object layout.
13354
13355         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13356         main module, since it is now done by the managed code.
13357
13358 2003-11-03  Martin Baulig  <martin@ximian.com>
13359
13360         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13361         `ginst->klass' here.
13362         (method_encode_methodspec): Don't use the `ginst->generic_method's
13363         klass if it's a generic instance, use `ginst->klass' in this case.
13364
13365 2003-11-03  Martin Baulig  <martin@ximian.com>
13366
13367         * reflection.c (mono_image_get_generic_method_param_info):
13368         Removed, use mono_image_get_generic_param_info() instead.
13369         (mono_image_get_type_info): Write the GenericParam table before
13370         the Method table.  This is neccessary because in the GenericParam
13371         table, type parameters of the class (ie. '!0' etc.) must come
13372         before the ones from its generic methods (ie. '!!0' etc).
13373
13374 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13375
13376         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13377
13378 2003-11-02  Martin Baulig  <martin@ximian.com>
13379
13380         * reflection.c (create_generic_typespec): Take a
13381         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13382         the generic parameters from it.
13383
13384 2003-11-02  Martin Baulig  <martin@ximian.com>
13385
13386         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13387         instead of a `MonoClassField *' since we just need the type.
13388         (create_generic_typespec): New static function.  Creates a
13389         TypeSpec token for a generic type declaration.
13390         (mono_image_get_generic_field_token): New static function.
13391         (mono_image_create_token): If we're a FieldBuilder in a generic
13392         type declaration, call mono_image_get_generic_field_token() to get
13393         the token.
13394
13395 2003-11-02  Martin Baulig  <martin@ximian.com>
13396
13397         * reflection.h
13398         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13399         `MonoReflectionGenericInst *declaring_type' and
13400         `MonoReflectionGenericInst *reflected_type' fields.
13401
13402         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13403         `MonoReflectionGenericInst *declaring_type' and a
13404         `MonoReflectionGenericInst *reflected_type' argument instead of a
13405         single `MonoReflectionGenericInst *type' one.  Set
13406         `res->declaring_type' and `res->reflected_type' from them.
13407         (mono_reflection_inflate_field): Likewise.      
13408
13409 2003-11-02  Martin Baulig  <martin@ximian.com>
13410
13411         * class.c (mono_class_setup_vtable): Don't store generic methods
13412         in the vtable.  
13413
13414 2003-11-02  Martin Baulig  <martin@ximian.com>
13415
13416         * reflection.h (MonoReflectionGenericInst): Added
13417         `MonoReflectionType *declaring_type'.
13418
13419         * reflection.c (mono_reflection_bind_generic_parameters): Use
13420         `if (tb->parent)' instead of `klass->parent'.
13421
13422 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13423
13424         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13425         with an empty ASSEMBLY table.
13426
13427         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13428         variable in the inner and outer loops.
13429
13430 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13431
13432         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13433         argument.
13434
13435         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13436         
13437         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13438         icalls. Instead, do everything in managed code. This is needed since
13439         it is hard to restore the original domain etc. in unmanaged code in the
13440         presence of undeniable exceptions.
13441
13442         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13443         New icalls to push and pop appdomain refs.
13444
13445 2003-10-31  Martin Baulig  <martin@ximian.com>
13446
13447         * class.c (inflate_generic_type): Renamed to
13448         mono_class_inflate_generic_type() and made it public.
13449
13450         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13451         New interncall.
13452
13453         * loader.c (mono_field_from_memberref): Also set the retklass for
13454         typespecs.
13455
13456         * fielder.c (mono_image_get_inflated_field_token): New static
13457         method; creates a metadata token for an inflated field.
13458         (mono_image_create_token, fixup_method): Added support for
13459         "MonoInflatedField".
13460         (fieldbuilder_to_mono_class_field): New static function.
13461         (mono_reflection_inflate_field): New public function.
13462
13463         * reflection.h
13464         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13465         (MonoReflectionInflatedField): New typedef.     
13466
13467 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13468
13469         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13470         for Solaris and other platforms without s6_addr16
13471
13472 2003-10-30  Martin Baulig  <martin@ximian.com>
13473
13474         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13475         argument instead of two.
13476         (mono_class_inflate_generic_signature): Likewise.
13477         (inflate_generic_header): Likewise.
13478         (mono_class_inflate_generic_method): Likewise.  In addition, if
13479         `ginst->klass' is set, it becomes the new `method->klass'.
13480
13481         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13482         field.
13483
13484         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13485         first byte. [FIXME]
13486         (method_encode_methodspec): If we have generic parameters, create
13487         a MethodSpec instead of a MethodRef.
13488         (fixup_method): Added support for "MonoInflatedMethod" and
13489         "MonoInflatedCtor".
13490         (mono_image_create_token): Added support for "MonoInflatedMethod"
13491         and "MonoInflatedCtor".
13492         (inflated_method_get_object): New static function; returns a
13493         managed "System.Reflection.MonoInflatedMethod" object.
13494         (mono_reflection_bind_generic_method_parameters): Return a
13495         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13496         (mono_reflection_inflate_method_or_ctor): Likewise.
13497         (mono_image_get_generic_method_param_info): Initialize unused
13498         fields to zero.
13499         (mono_image_get_generic_param_info): Likewise.
13500
13501         * reflection.h (MonoReflectionInflatedMethod): New public
13502         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13503         "S.R.MonoInflatedCtor" classes.
13504
13505         * loader.c (method_from_memberref): If we're a TypeSpec and it
13506         resolves to a generic instance, inflate the method.
13507
13508 2003-10-28  Dick Porter  <dick@ximian.com>
13509
13510         * object.c (mono_runtime_run_main): Convert command-line arguments
13511         into utf8, falling back to the user's locale encoding to do so.
13512
13513 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13514
13515         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13516         at this time.
13517
13518         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13519
13520         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13521         up icalls at method definition time. Partially fixes #33569.
13522
13523 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13524
13525         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13526         marshalling of arrays. Fixes #50116.
13527
13528         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13529
13530         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13531         points to a vtable in the dying appdomain.
13532
13533         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13534         listeners into unmanaged code inside the lock.
13535
13536         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13537         domains and add some comments.
13538
13539 2003-10-25  Martin Baulig  <martin@ximian.com>
13540
13541         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13542
13543         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13544
13545         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13546         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13547         currently parsing.  Create the generic class and store it in
13548         `generic_inst->klass' before parsing the type arguments.  This is
13549         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13550         for an example.
13551         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13552         to support recursive typespec entries.
13553
13554         * class.c (mono_class_setup_parent): If our parent is a generic
13555         instance, we may get called before it has its name set.
13556         (mono_class_from_generic): Splitted into
13557         mono_class_create_from_generic() and mono_class_initialize_generic().
13558
13559 2003-10-25  Martin Baulig  <martin@ximian.com>
13560
13561         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13562         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13563         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13564         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13565
13566         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13567         (create_typespec): Likewise.
13568         (mono_reflection_bind_generic_parameters): Return a
13569         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13570         (mono_reflection_inflate_method_or_ctor): New public function.
13571
13572         * reflection.h (MonoReflectionGenericInst): New typedef.        
13573
13574 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13575
13576         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13577         inside the domain lock. Fixes #49993.
13578         
13579         * object.c (mono_class_vtable): When typed allocation is used, 
13580         allocate vtables in the GC heap instead of in the mempool, since the
13581         vtables contain GC descriptors which are used by the collector even
13582         after the domain owning the mempool is unloaded.
13583
13584         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13585
13586         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13587         reflect what it does. Also invalidate mempools instead of freeing
13588         them if a define is set.
13589
13590         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13591         of the appdomain.
13592         
13593         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13594         hold the finalizable objects in this domain.
13595
13596         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13597         appdomain.
13598
13599         * appdomain.c (mono_domain_set): New function to set the current
13600         appdomain, but only if it is not being unloaded.
13601
13602         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13603         appdomain which is being unloaded.
13604         
13605         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13606         unloading of the root appdomain.
13607
13608         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13609         icall to execute a method in another appdomain. Intended as a 
13610         replacement for InternalSetDomain, which can confuse the code 
13611         generation in the JIT.
13612
13613         * appdomain.c (mono_domain_is_unloading): New function to determine
13614         whenever an appdomain is unloading.
13615
13616         * appdomain.c (mono_domain_unload): New function to correctly unload
13617         an appdomain.
13618
13619         * assembly.c (mono_assembly_load_references): Check that an assembly
13620         does not references itself.
13621
13622         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13623         domain manually, it asks the finalizer thread to do it, then waits for
13624         the result. Also added a timeout.
13625
13626         * icall.c: Register the new icalls.
13627
13628         * threads.h threads.c: Export the mono_gc_stop_world and 
13629         mono_gc_start_world functions.
13630         
13631         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13632         function to fill out the mempool with 0x2a.
13633
13634 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13635
13636         * reflection.h (MonoReflectionMethodAux): New structure to store
13637         information which is rarely used, thus is not in the MonoMethod
13638         structure.
13639
13640         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13641         store the aux info.
13642
13643         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13644         and marshalling info into the aux structure.
13645
13646         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13647         from the aux structure.
13648
13649         * loader.c (mono_method_get_param_names): Retrieve the param names from
13650         the aux structure.
13651         
13652 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13653
13654         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13655         warning.
13656
13657 2003-10-21  Dick Porter  <dick@ximian.com>
13658
13659         * socket-io.c
13660         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13661         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13662
13663 2003-10-21  Martin Baulig  <martin@ximian.com>
13664
13665         * reflection.c (mono_reflection_bind_generic_parameters):
13666         `klass->parent' is NULL for interfaces.
13667
13668 2003-10-21  Martin Baulig  <martin@ximian.com>
13669
13670         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13671
13672 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13673
13674         * exception.c (mono_exception_from_name_msg): New helper function for
13675         creating exceptions and initializing their message field.
13676
13677         * exception.c: Simplify functions using the new helper.
13678
13679         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13680         New function.
13681
13682         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13683         mono_raise_exception, since otherwise gcc doesn't generate the function
13684         epilog for raise_exception, confusing the stack unwinding in the JIT.
13685         Fixes #45043.
13686
13687         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13688         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13689         Fixes #49499.
13690
13691 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13692
13693         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13694         utf8.
13695
13696 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13697
13698         * icall.c: Removed GetUninitializedObject method because
13699           AllocateUninitializedClassInstance does the same.
13700
13701 2003-10-18  Martin Baulig  <martin@ximian.com>
13702
13703         * class.c (inflate_generic_signature): Renamed to
13704         mono_class_inflate_generic_signature() and made it public.
13705         (my_mono_class_from_generic_parameter): New static function; if we
13706         don't already have the generic parameter's MonoClass, create a
13707         very simple one which is just used internally in the runtime and
13708         not passed back to managed code.
13709
13710         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13711
13712         * metadata.h (MonoMethodSignature): Moved the
13713         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13714         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13715
13716         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13717         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13718         interncall on the MonoMethod class, not on MethodInfo.
13719         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13720         calling mono_reflection_bind_generic_method_parameters() directly.
13721
13722         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13723         return the already computed `method->signature'.
13724         (method_from_methodspec): New static function to load a method
13725         from a MethodSpec entry.
13726         (mono_get_method_from_token): Call the new method_from_methodspec()
13727         for MethodSpec tokens.  
13728         (mono_get_method_from_token): If we're a generic method, load the
13729         type parameters.
13730
13731         * reflection.c (mono_image_get_memberref_token): Allow
13732         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13733         table.
13734         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13735         (mono_image_create_token): First check whether it's a generic
13736         method (so we'd need to create a MethodSpec), then do the other
13737         two alternatives.
13738         (mono_reflection_bind_generic_method_parameters): Return a
13739         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13740         called directly from the interncall.
13741
13742 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13743
13744         * reflection.c (load_public_key): Move loading of the public key
13745         into managed code.
13746
13747         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13748
13749         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13750         fields.
13751
13752         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13753         culture, hash_alg and public_key. Fixes #49555.
13754
13755 2003-10-17  Martin Baulig  <martin@ximian.com>
13756
13757         * class.h (MonoGenericInst): Moved this declaration here and added
13758         `MonoMethod *generic_method'.
13759
13760         * icall.c
13761         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13762         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13763
13764         * metadata.c (mono_metadata_type_equal): Two types of
13765         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13766         index; ie. don't compare the address of the `MonoGenericParam'
13767         structure.
13768         (mono_metadata_load_generic_params): Removed the `MonoMethod
13769         *method' argument.
13770
13771         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13772         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13773
13774         * reflection.c (method_encode_signature): Encode the number of
13775         generic parameters.
13776         (encode_generic_method_sig): New static function.
13777         (method_encode_methodspec): New static function; creates an entry
13778         in the MethodSpec table for a generic method.
13779         (mono_image_get_methodspec_token): New static function.
13780         (mono_image_create_token): Call mono_image_get_methodspec_token()
13781         for generic methods.
13782         (mono_reflection_bind_generic_method_parameters): New public
13783         function.  Instantiates a generic method.
13784
13785 2003-10-16  Martin Baulig  <martin@ximian.com>
13786
13787         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13788         *gen_params' here from MonoMethodHeader.
13789
13790         * metadata.c (mono_metadata_parse_method_signature): If we have
13791         generic parameters, initialize `method->gen_params' and then set
13792         the correct `type->data.generic_param' in all the parameters.
13793
13794 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13795
13796         * threads.c (mono_threads_get_default_stacksize): New function to 
13797         return the default stacksize.
13798
13799         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13800         termination of the finalizer thread, since the previous method had
13801         race conditions. Fixes #49628.
13802
13803         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13804         as for the other managed threads.
13805
13806 2003-10-16  Martin Baulig  <martin@ximian.com>
13807
13808         * class.c (inflate_generic_signature): Copy `generic_param_count'
13809         and `gen_params'.
13810
13811         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13812         New interncall.
13813
13814         * metadata.c (mono_metadata_parse_method_signature): Actually set
13815         the `method->generic_param_count' here.
13816         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13817
13818 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13819
13820         * object.h: Add a new field to TypedRef to simplify the implementation
13821         of the REFANY opcodes in the JIT.
13822
13823         * icall.c: Make use of the new field.
13824
13825         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13826         dynamically.
13827
13828 2003-10-15  Martin Baulig  <martin@ximian.com>
13829
13830         * class.c (mono_class_from_gen_param): Renamed to
13831         mono_class_from_generic_parameter() and moved most of the
13832         functionality from mono_reflection_define_generic_parameter()
13833         here; ie. we create a "real" class here.
13834         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13835         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13836         previously been called.
13837
13838         * class.h (MonoGenericParam): Moved the declaration of this struct
13839         here from metadata.h and added `MonoMethod *method'.
13840
13841         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13842         interncall.
13843
13844         * loader.c (mono_get_method_from_token): If we have any generic
13845         parameters, call mono_metadata_load_generic_params() to read them
13846         from the MONO_TABLE_GENERICPAR.
13847
13848         * metadata.c (mono_metadata_load_generic_params): Added
13849         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13850
13851         * metadata.h (MonoMethodSignature): Replaced
13852         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13853         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13854
13855         * reflection.c (mono_reflection_define_generic_parameter): Moved
13856         most of the functionality into the new
13857         mono_class_from_generic_parameter(); set the `method' field if
13858         we're a method parameter.       
13859
13860 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13861
13862         * marshal.c (emit_struct_conv): if native size is 0
13863         emit no code.
13864
13865 2003-10-14  Martin Baulig  <martin@ximian.com>
13866
13867         * icall.c: The generics API has changed in the spec since it was
13868         added to System.Type; these modifications make it match the spec
13869         again.
13870         (ves_icall_Type_GetGenericParameters): Renamed to
13871         `ves_icall_Type_GetGenericArguments'.
13872         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13873         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13874         `ves_icall_MonoType_get_HasGenericArguments'.
13875         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13876         `ves_icall_MonoType_get_IsGenericParameter'.
13877         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13878         this is no interncall anymore.
13879         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13880         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13881
13882 2003-10-14  Martin Baulig  <martin@ximian.com>
13883
13884         * reflection.c (mono_reflection_bind_generic_parameters): Also
13885         inflate generic methods if we're reading the class from IL.
13886
13887 2003-10-13  Martin Baulig  <martin@ximian.com>
13888
13889         * reflection.c (mono_reflection_define_generic_parameter): This
13890         method isn't called directly from the icall anymore; take a
13891         `MonoReflectionAssemblyBuilder *' so we can use this for type and
13892         method generic parameters.
13893         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
13894         (method_builder_encode_signature): Encode generic parameters.
13895         (mono_image_get_method_info): Write generic params to the
13896         MONO_TABLE_GENERICPARAM table.
13897
13898         * reflection.h (MonoReflectionMethodBuilder): Added
13899         `MonoArray *generic_params'.
13900
13901         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
13902
13903         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
13904         wrapper for mono_reflection_define_generic_parameter().
13905         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
13906
13907 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
13908
13909         * marshal.h: Add missing function to fix build.
13910
13911         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
13912         the SetLastError pinvoke attribute.
13913
13914         * marshal.c (mono_marshal_set_last_error): New helper function called
13915         by the generated code.
13916         
13917         * marshal.c (mono_mb_emit_branch): New helper function.
13918
13919         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
13920
13921         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13922         classes as parameters and return values of delegates. Fixes #29256. 
13923
13924 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
13925
13926         * locales.c: use gint32 in non HAVE_ICU case
13927
13928 2003-10-11  Martin Baulig  <martin@ximian.com>
13929
13930         * mono-debug.c (mono_debug_add_method): Added a workaround for
13931         bug #48591.
13932
13933 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
13934
13935         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
13936         delegates passed to native code must use the STDCALL calling 
13937         convention. Fixes #35987.
13938
13939 2003-10-10  Martin Baulig  <martin@ximian.com>
13940
13941         * class.c (inflate_generic_type): If we're inflating for a generic
13942         type instance (and not for a generic method), return
13943         MONO_TYPE_MVAR unchanged.
13944
13945 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13946
13947         * string-icalls.c: Join ignores null strings in the source array.
13948         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
13949         * threads.c: GetAvailableTheads is slightly more accurate.
13950
13951 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
13952
13953         * threads.h threads.c : add mono_threads_set_default_stacksize
13954         and pass default to CreateThread calls.
13955
13956 2003-10-09  Dick Porter  <dick@ximian.com>
13957
13958         * icall.c:
13959         * locales.h:
13960         * locales.c: Internal calls for constructing CultureInfo and
13961         related objects from libicu (if its available.)
13962
13963 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
13964
13965         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
13966
13967 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13968
13969         * threadpool.c: added an argument to async_invoke_thread that is the
13970         item to process, pass the MonoAsyncResult to the thread start function
13971         when creating a new thread. This way we don't need to acquire any lock
13972         when we're creating a new thread. Readded a semaphore for faster
13973         response times (instead of that Sleep i added).
13974
13975 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
13976
13977         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
13978         get daylight change dates better on Windows, fix handling
13979         of platforms without tm_gmtoff.
13980
13981 2003-10-06  Martin Baulig  <martin@ximian.com>
13982
13983         * class.c (inflate_generic_method): Renamed to
13984         mono_class_inflate_generic_method() and made public.
13985         (mono_class_init): Don't inflate the generic methods here.
13986         (mono_class_from_generic): Added `gboolean inflate_methods'
13987         argument.  Inflate the methods here.
13988
13989         * loader.c (mono_method_get_param_names): Ignore instances of
13990         generic types for the moment.
13991
13992         * reflection.c (fixup_method): Added support for inflated methods.
13993         (mono_image_create_token): Use mono_image_get_methodref_token()
13994         for inflated methods.
13995         (mono_custom_attrs_from_param): Ignore instances of generic types
13996         for the moment.
13997         (mono_reflection_bind_generic_parameters): New public function.
13998         Moved all the functionality from
13999         ves_icall_Type_BindGenericParameters() here and added support for
14000         dynamic types.
14001         (mono_reflection_define_generic_parameter): Initialize
14002         `klass->methods' here.
14003
14004         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14005         functionality into mono_reflection_define_generic_parameter().
14006         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14007         TypeBuilder, return that TypeBuilder.
14008
14009 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14010
14011         * appdomain.c: removed mono_delegate_semaphore.
14012
14013         * threadpool.c:
14014         (mono_thread_pool_add): moved hash table creation inside and the thread 
14015         creation outside of the critical region.
14016         (mono_thread_pool_finish): removed obsolete code.
14017         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14018         continue or exit the thread depending on the queue.
14019
14020 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14021
14022         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14023         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14024         handle more bool marshalling options
14025
14026 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14027
14028         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14029         arrays of structs. Also add a more descriptive error message when
14030         a structure member is marshalled as LPArray.
14031
14032 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14033
14034         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14035         marshalling arrays of complex types. Fixes #29098. Also remove an
14036         usused and incomplete function.
14037
14038 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14039
14040         * gc.c: report heap_size - free_bytes as total memory allocated
14041         (bug#49362).
14042
14043 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14044
14045         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14046         fix timezone handling problems on Windows.
14047         
14048         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14049         asserts when the year is outside the range handled by ms the functions.
14050
14051         * class.c (setup_interface_offsets): If the class is an interface,
14052         fill out its interface_offsets slot.
14053
14054 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14055
14056         * threadpool.c: mark threadpool threads as background.
14057
14058 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14059
14060         * decimal.c - define DECINLINE to nothing if not using GCC
14061
14062 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14063
14064         * assembly.c: More refcount fixes.
14065
14066 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14067
14068         * string-icalls.c: if we're not trimming, return the same string.
14069         When not splitting, don't create a new string.
14070
14071 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14072
14073         * image.c:
14074         (mono_image_open): increment the ref_count inside the critical section.
14075
14076 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14077
14078         * image.c (mono_image_open): Fix reference counting bug.
14079
14080 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14081
14082         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14083         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14084         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14085         mono_lookup_pinvoke_call throws.        
14086
14087 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14088
14089         * reflection.c (mono_reflection_parse_type): Fix #49114.
14090
14091         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14092         temporary workaround for cygwin header problem.
14093
14094         * object.c (mono_object_isinst): Synchronize this with the code
14095         generated by the JIT for casts.
14096
14097 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14098
14099         * reflection.c (encode_type): Fix #38332.
14100
14101 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14102
14103         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14104         the original method from the wrapper method.
14105
14106 2003-09-25  Martin Baulig  <martin@ximian.com>
14107
14108         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14109         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14110         (ves_icall_Type_get_IsGenericInstance): New interncall.
14111
14112 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14113
14114         * object.c: fix cast warning in big endian code.
14115
14116 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14117
14118         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14119         
14120 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14121
14122         * assembly.c: don't call check_env from mono_assembly_load. It's
14123         already done once in mono_assemblies_init and may cause headaches when
14124         multiple threads are loading assemblies.
14125
14126 2003-09-19  Martin Baulig  <martin@ximian.com>
14127
14128         * reflection.c (mono_reflection_define_generic_parameter): Don't
14129         allocate `klass->methods', set `klass->flags' to
14130         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14131
14132 2003-09-18  Martin Baulig  <martin@ximian.com>
14133
14134         * class.c (mono_class_init): Don't create `class->methods' if it's
14135         already initialized.
14136
14137         * metadata.c (mono_metadata_load_generic_params): Make this
14138         actually work.
14139
14140         * reflection.c (mono_reflection_define_generic_parameter): Set
14141         parent class and interfaces from the constraints.
14142
14143         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14144         to keep this struct in sync with the declaration in TypeBuilder.cs.
14145
14146 2003-09-17  Martin Baulig  <martin@ximian.com>
14147
14148         * metadata.h (MonoType): Replaced the data's `int type_param'
14149         field with `MonoGenericParam *generic_param'.
14150         (MonoGenericParam): Added `MonoClass *klass'.
14151
14152         * class.c (mono_class_from_gen_param): Removed the
14153         `MonoImage *image' and `int type_num' arguments.
14154
14155         * metadata.c (mono_metadata_parse_generic_param): New static
14156         method; creates a MonoGenericParam which just contains the index.
14157         (do_mono_metadata_parse_type): Call
14158         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14159         MONO_TYPE_MVAR.
14160
14161         * reflection.c (mono_image_typedef_or_ref): Generic type
14162         parameters may be in the same assembly, but never use a typedef
14163         for them.
14164         (mono_reflection_define_generic_parameter): We're now creating a
14165         "real" class for the type parameter; it's now safe to call
14166         mono_class_from_mono_type() on the class'es type, it'll do the
14167         right thing.
14168
14169 2003-09-16  Martin Baulig  <martin@ximian.com>
14170
14171         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14172         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14173         the `symfile' data structure must be fully initialized before it
14174         gets added to the table.
14175
14176 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14177
14178         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14179
14180         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14181         class init trampolines.
14182
14183 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14184
14185         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14186         to the built-in profiler to turn off time and allocation profiling
14187         respectively.
14188
14189 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14190
14191         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14192         g_direct_equal.
14193
14194         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14195         in human readable form.
14196
14197 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14198
14199         * reflection.c icall.c: Fixed warnings.
14200
14201         * image.c (load_class_names): Use a temporary hash table to hold the
14202         namespaces in order to avoid doing many string comparisons.
14203
14204         * image.h: Fix typo.
14205
14206         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14207         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14208         since the NULL case is short-circuited inside g_hash_table_lookup, 
14209         leading to better performance.  
14210
14211         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14212         obtain the first custom attribute for a given index. Depends on the
14213         CustomAttribute table being sorted by the parent field.
14214
14215         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14216         for better performance.
14217
14218 2003-09-07  Martin Baulig  <martin@ximian.com>
14219
14220         * class.c (mono_class_init): If we're a generic instance, inflate
14221         all our methods instead of loading them from the image.
14222         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14223
14224 2003-09-07  Martin Baulig  <martin@ximian.com>
14225
14226         * mono-debug-debugger.c: Added support for constructors.
14227
14228 2003-09-06  Martin Baulig  <martin@ximian.com>
14229
14230         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14231         New interncall.
14232
14233         * reflection.c (mono_reflection_setup_generic_class): Call
14234         ensure_runtime_vtable() to create the vtable.
14235
14236 2003-09-05  Martin Baulig  <martin@ximian.com>
14237
14238         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14239         MONO_TYPE_MVAR.
14240
14241 2003-09-04  Martin Baulig  <martin@ximian.com>
14242
14243         * reflection.c (mono_reflection_define_generic_parameter): Generic
14244         parameters start with zero.
14245
14246 2003-09-04  Martin Baulig  <martin@ximian.com>
14247
14248         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14249
14250         * reflection.h (MonoReflectionGenericParam): New typedef.
14251         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14252         the generic parameters from the managed TypeBuilder.
14253
14254         * reflection.c (mono_reflection_define_generic_parameter): New function.
14255         (mono_reflection_create_runtime_class): Encode generic parameters.
14256         (mono_reflection_setup_generic_class): New function; this is
14257         called after adding adding all generic params to the TypeBuilder.
14258         (encode_type): Added MONO_TYPE_VAR.
14259
14260 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14261
14262         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14263         here from the JIT.
14264
14265         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14266         load hook.
14267
14268 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14269
14270         * reflection.h reflection.c class.h class.c: Delete duplicate 
14271         definition of mono_type_get_name () from reflection.c and export the
14272         one in class.c.
14273
14274         * class.c: Class loading fixes from Bernie Solomon 
14275         (bernard@ugsolutions.com).
14276
14277         * reflection.c: Endianness fixes from Bernie Solomon 
14278         (bernard@ugsolutions.com).
14279         
14280 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14281
14282         * assembly.h assembly.c: Define a file format version for AOT
14283         libraries.
14284         
14285         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14286
14287         * appdomain.h (MonoJitInfo): New field to determine whenever the
14288         code is domain neutral.
14289         
14290 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14291
14292         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14293
14294 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14295
14296         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14297         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14298         Avoid caching the result since strings must be domain specific. Fixes
14299         #48050.
14300
14301 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14302
14303         * marshal.c (mono_marshal_init): Make this callable multiple times
14304         since it is hard to find a correct place to call it.
14305
14306         * object.c (mono_runtime_class_init): Execute static constructors in
14307         the correct appdomain.
14308
14309         * image.c (build_guid_table): Handle the case when multiple images have
14310         the same GUID.
14311
14312 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14313
14314         * icall.c: added a couple of icalls for System.Web.
14315
14316 2003-08-28  Martin Baulig  <martin@ximian.com>
14317
14318         * icall.c (ves_icall_Type_BindGenericParameters): Use
14319         `klass->generic_inst' instead of `&klass->byval_arg' in the
14320         mono_type_get_object() call.  The returned type must be
14321         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14322
14323 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14324
14325         * NOTES: New file.
14326
14327         * object.c (mono_class_proxy_vtable): Make it thread safe.
14328
14329         * pedump.c: Fix warning.
14330
14331         * object.c appdomain.h: Get rid of metadata_section. 
14332         It is no longer needed and it was causing deadlocks with domain->lock.
14333
14334         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14335
14336 2003-08-26  Martin Baulig  <martin@ximian.com>
14337
14338         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14339
14340 2003-08-26  Martin Baulig  <martin@ximian.com>
14341
14342         * pedump.c (main): Call mono_metadata_init(),
14343         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14344         and mono_loader_init().
14345
14346 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14347
14348         * loader.h: Add missing include to fix build.
14349
14350         * image.h: mono_image_load_references is no more.
14351
14352         * assembly.c: Reworked assembly loading to make it really thread safe.
14353         After these changes, the assembly returned by mono_assembly_open is
14354         fully initialized, i.e. all its references assemblies are loaded.
14355
14356         * assembly.c (mono_image_load_references): Renamed to 
14357         mono_assembly_load_references, and made private, since clients no
14358         longer need to call it.
14359
14360         * class.c: Removed calls to mono_assembly_load_references, since it was
14361         a source of deadlocks.
14362
14363         * loader.h loader.c class.h class.c: Protect data structures using a 
14364         new lock, the loader lock.
14365
14366         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14367         GPtrArrays only when needed.
14368
14369         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14370         into empty structures by mcs. Fixes pinvoke7.cs.
14371         
14372         * domain.c (mono_init): Call a new initialization function.
14373
14374         * appdomain.c (mono_runtime_init): Call the new initializer function
14375         of the marshal module.
14376
14377         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14378         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14379
14380         * marshal.h marshal.c: Added locks around the wrapper caches to make
14381         this module thread safe.
14382
14383         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14384         this argument. Fixes pinvoke1.exe.
14385
14386 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14387
14388         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14389         enumeration of values. Removed fields to store remote call output values in
14390         MonoAsyncResult. Not needed any more.
14391         * object.c: Initialize call_type and async_result fields in mono_message_init.
14392         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14393         dispatching the message.
14394         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14395         async call to finish. To do it use a message with EndInvoke call type.
14396
14397 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14398
14399         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14400         determines whenever a method has marshalling info.
14401
14402 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14403
14404         * assembly.c: fix the build on windows.
14405
14406 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14407
14408         * object.cs: Fixed bug #47785.
14409
14410 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14411
14412         * string-icalls.c (StringReplace): If their are no occurances of
14413         the old string found return a reference to the supplied
14414         string. This saves some memory and matches MS behavoir.
14415         
14416 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14417
14418         * socket-io.c: fixed compilation for systems that define AF_INET6
14419         and don't define SOL_IP/SOL_IPV6.
14420
14421 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14422
14423         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14424         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14425
14426         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14427
14428         * domain.c: Make this module thread safe.
14429
14430         * domain.c (mono_init): Call new initialization function.
14431
14432         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14433         reference types too. Fixes #38812.
14434
14435         * image.c (mono_image_init): Fixed warnings.
14436
14437         * class.c (mono_class_from_typeref): Handle assembly load failure
14438         correctly.
14439
14440         * appdomain.c (add_assemblies_to_domain): Handle the case when
14441         the references of an assembly are not yet loaded.
14442
14443         * metadata.c image.c assembly.c: Moved initialization of global
14444         variables to a separate function called at startup since lazy 
14445         initialization of these variables is not thread safe.
14446         
14447         * image.c assembly.c: Made this module thread safe by adding locks in 
14448         the appropriate places.
14449
14450         * domain.c (mono_init): Call the new initialization functions of the
14451         three modules.
14452
14453 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14454
14455         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14456           make a direct call. It is proxy's work to make the call asynchronous.
14457           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14458           the return values.
14459         * object.cs: mono_method_call_message_new(): read AsyncResult and
14460           state object from parameters list, if this info is requested.
14461         * object.h: Added fields to store remote call output values in
14462           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14463
14464 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14465
14466         * object.h: add needed fields to MonoThread.
14467         * threads.c, threads.h: allow registering a function to cleanup data
14468         allocated per thread by the JIT.
14469
14470 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14471
14472         * loader.h: portability fix by Bernie Solomon
14473         * <bernard@ugsolutions.com>.
14474
14475 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14476
14477         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14478         return a MonoArray. This simplifies the code and also ensures that
14479         the cache allways contains an object reference as a value.
14480
14481         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14482         function.
14483
14484 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14485
14486         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14487         fixes a problem with byte ordering when getting the address family for
14488         a socket.
14489
14490 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14491
14492         * .cvsignore: Added monosn.
14493
14494         * reflection.h reflection.c loader.c: Added support for parameter
14495         marshalling to dynamically created types. Fixes #47295.
14496
14497 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14498
14499         * rand.c: remove useless warnings.
14500
14501 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14502
14503         * class.c: implemented ldtoken for methods and fieldrefs.
14504
14505 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14506
14507         * threadpool.c: when mono_async_invoke was called, no one took care of
14508         monitoring the queue. So if the method invoked took some time and we
14509         got new async invoke requests after 500 ms (the thread created waited
14510         that long in WaitForSingleObject), the new async invoke was not called
14511         until the previous one finished.
14512
14513         This is fixed now. Thanks to Totte for helping with it.
14514
14515 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14516
14517         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14518
14519 2003-08-11  Martin Baulig  <martin@ximian.com>
14520
14521         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14522
14523 2003-08-06  Martin Baulig  <martin@ximian.com>
14524
14525         * mono-debug-debugger.c: Added support for static fields,
14526         properties and methods.
14527
14528 2003-08-06  Martin Baulig  <martin@ximian.com>
14529
14530         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14531         make this work for applications with multiple application domains.
14532
14533 2003-08-04  Martin Baulig  <martin@ximian.com>
14534
14535         * mono-debug-debugger.c: Completely reworked the type support; the
14536         most important thing is that we're now just using one single
14537         `MonoType' instance per type.
14538
14539 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14540
14541         * mono-endian.h, mono-endian.c, icall.c: Added icall
14542         ves_icall_System_Double_AssertEndianity to assert double word endianity
14543         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14544
14545 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14546
14547         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14548         support, icalls and fixes.
14549
14550 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14551
14552         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14553         classes that are a punctuation character in .NET is not the same a
14554         g_unichar_ispunct.
14555
14556 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14557
14558         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14559
14560 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14561
14562         * icall.c: Add new MemCopy internalcall.
14563         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14564         Simplified code; It is not necessary to handle all the cases here,
14565         as the C# code takes care of it.  Only handle the case of the name
14566         resource embedded into the assembly.
14567
14568         Changed signature to return the data pointer and the size of the
14569         data. 
14570
14571 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14572
14573         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14574         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14575
14576 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14577
14578         * socket-io.c: ignore EINTR error in select.
14579
14580 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14581
14582         * class.h, class.c: removed unused subclasses field in MonoClass.
14583
14584 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14585
14586         * icall.c: improve fix of get_base_definition(). If the parent class
14587           doesn't have the mehod, look at the parent of the parent.
14588         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14589           to check if a parameter is an in or out parameter
14590           (PARAM_ATTRIBUTE_IN is not set by default).
14591           mono_method_return_message_restore(): Use mono_class_value_size to
14592           get the size of a value type. mono_type_stack_size (parameterType)
14593           does not return the correct value if parameterType is byRef.
14594           mono_load_remote_field(), mono_load_remote_field_new(),
14595           mono_store_remote_field(), mono_store_remote_field_new():
14596           raise exception if the remote call returns an exception.
14597
14598 2003-07-28  Martin Baulig  <martin@ximian.com>
14599
14600         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14601         method.  This is a wrapper around mono_runtime_invoke() which
14602         boxes the instance object if neccessary.
14603
14604 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14605
14606         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14607         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14608
14609 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14610
14611         * icall.c: disable mcs bug workaround.
14612
14613 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14614
14615         * object.c (mono_runtime_class_init): Take the metadata_section
14616         mutex before obtaining the domain mutex.
14617
14618         * appdomain.h: Added definition of metadata_section mutex here. 
14619
14620         * object.c: define metadata_mutex here.
14621
14622 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14623
14624         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14625         fixed.
14626
14627 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14628
14629         * reflection.c: Fix bug #46669
14630
14631 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14632
14633         * exception.c:
14634         * exception.h:
14635         * icall.c:
14636         * object.h: fill in the type name for TypeLoadException.
14637
14638 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14639
14640         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14641         relationship between TypeBuilders while compiling corlib) and bug
14642         45993 (Array types returned from the runtime while compiling
14643         corlib were from the loaded corlib).
14644
14645 2003-07-22  Martin Baulig  <martin@ximian.com>
14646
14647         * mono-debug-debugger.c: Reworked the type support a bit more;
14648         distinguish between types and classes.
14649
14650 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14651
14652         * icall.c: add IsArrayImpl icall.
14653
14654 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14655
14656         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14657         initializing real_size only once. Also fix bug #46602.
14658
14659 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14660
14661         * object.c: Renamed mono_metadata_section to metadata_section.
14662
14663 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14664
14665         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14666           empty array if the type is an array. Fixed.
14667           ves_icall_MonoMethod_get_base_definition: if the base method
14668           is abstract, get the MethodInfo from the list of methods of
14669           the class.
14670         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14671           and it was 1-based. Fixed in mono_param_get_objects.
14672
14673 2003-07-20  Martin Baulig  <martin@ximian.com>
14674
14675         * mono-debug.h: Set version number to 31.
14676         (mono_debug_init): Added `MonoDomain *' argument.
14677
14678         * mono-debug-debugger.c: Reworked the type support; explicitly
14679         tell the debugger about builtin types; pass the `klass' address to
14680         the debugger.
14681
14682 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14683
14684         * image.c: Allow new metadata tables to be loaded without a
14685         warning. Also update the warning message to give the new constant value.
14686                 
14687 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14688
14689         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14690         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14691         array type representation changes.
14692
14693 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14694
14695         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14696         on Environment.Exit () call.
14697
14698 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14699
14700         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14701         requires a matching corlib.
14702
14703 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14704
14705         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14706           Committed again without the CRs.
14707         
14708 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14709
14710         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14711           getting it from the "this" socket instance. Did not work
14712           if the socket is a subclass of Socket.
14713           Also fixed bug #35371.
14714
14715 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14716
14717         * metadata.c: fixed size for TypedByRef.
14718         * loader.c: when searching for a method, consider the vararg amrker.
14719         * unicode.c, decimal.c: constify some arrays.
14720
14721 2003-07-15  Dick Porter  <dick@ximian.com>
14722
14723         * socket-io.c: Fixed compilation for gcc < 3.2.
14724
14725         Fixed compilation for machines that don't have AF_INET6 (thanks to
14726         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14727
14728         Fixed compile warnings.
14729         
14730         Fixed formatting and line endings.
14731
14732 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14733
14734         * socket-io.h:
14735         * socket-io.c: Added IPv6 support.
14736
14737 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14738
14739         * class.c (mono_class_is_assignable_from): New function to implement
14740         the is_assignable_from logic. Used by mono_object_isinst, 
14741         Type::IsAssignableFrom () and the interpreter.
14742
14743         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14744         Object, even interfaces.
14745         
14746         * object.c (mono_object_isinst): Implement in terms of 
14747         is_assignable_from.
14748
14749         * icall.c (ves_icall_type_is_assignable_from): New icall.
14750
14751 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14752
14753         * domain.c (foreach_domain): fix compiler warning.
14754
14755 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14756
14757         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14758         not available on all plattforms
14759
14760 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14761
14762         * image.h image.c: Store the metadata version string in MonoImage.
14763         * icall.c: New icall to retrieve the image version.
14764         * reflection.c (create_dynamic_image): Fill in the image version field
14765         * reflection.c (build_compressed_metadata): Use the image version
14766         from the image structure.
14767
14768 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14769
14770         * appdomain.c: modified comment.
14771         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14772         That will be its last iteration when mono_gc_cleanup is called from
14773         mono_runtime_cleanup and before the domain is unloaded.
14774
14775         Fixes bug #45962.
14776
14777 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14778
14779         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14780         attributes.
14781
14782 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14783
14784         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14785         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14786         Bernie Solomon <bernard@ugsolutions.com>.
14787
14788 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14789
14790         * object.c, object.h: provide mono_object_new_fast() for faster
14791         allocation in some special cases.
14792
14793 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14794
14795         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14796         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14797
14798 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14799
14800         * threadpool.c: fix leaks.
14801
14802 2003-07-01  Dick Porter  <dick@ximian.com>
14803
14804         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14805         using MonoGHashTables.  Fixes threadpool bug posted to list.
14806
14807 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14808
14809         * image.h, image.c: added support to load an assembly from a byte array.
14810         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14811         assembly bundle support.
14812
14813 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14814
14815         * threadpool.c (mono_thread_pool_add): keep a reference to the
14816         AsyncResult to prevent GC
14817
14818 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14819
14820         * class.c: leak fix.
14821
14822 2003-06-25  Dick Porter  <dick@ximian.com>
14823
14824         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14825         for the async object, the WaitHandle object will close the handle.
14826         Fixes bug 45321.
14827
14828 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14829
14830         * class.c: in mono_array_class_get (), lookup from the hash with the
14831         same type we insert: this works around a bug in
14832         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14833         lluis. The real fix will have to wait for after the release.
14834
14835 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14836
14837         * icall.c: fix memory leak when getting type members.
14838
14839 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14840
14841         * reflection.c: added more pubtoken special cases.
14842
14843 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14844
14845         * class.c: handle field offset correctly when class size
14846         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14847
14848 2003-06-20  Martin Baulig  <martin@ximian.com>
14849
14850         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14851         *image' field.
14852
14853 2003-06-20  Martin Baulig  <martin@ximian.com>
14854
14855         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14856
14857 2003-06-20  Martin Baulig  <martin@ximian.com>
14858
14859         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14860         just distinguish between variables in registers and variables at
14861         an offset relative to a register.
14862
14863 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14864
14865         * icall.c: #ifdef out latest changes until mcs is fixed.
14866
14867 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14868
14869         * icall.c: return members in metadata order.
14870
14871 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14872
14873         * icall.c: avoid infinite loop in GetTimeZoneData.
14874
14875 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14876
14877         * icall.c: added Marshal.Prelink/All icalls.
14878
14879 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14880
14881         * object.c, object.h: fix warnings and do some overflow checking
14882         when creating arrays.
14883
14884 2003-06-17  Dick Porter  <dick@ximian.com>
14885
14886         * file-io.h:
14887         * file-io.c: File attributes need to be tweaked slightly when
14888         passed from the managed to the w32 world.
14889
14890 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14891         * profiler.h profiler-private.h profiler.c: Rework last patch
14892         based on suggestion by Paolo.
14893         
14894 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14895
14896         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
14897         instruction level coverage data collection.
14898         * profiler.h profiler.c (: Added new callback function which can be
14899         used by the profiler to limit which functions should have coverage
14900         instrumentation.
14901         * profiler.c (mono_profiler_load): Call g_module_build_path to
14902         generate the file name of the profiler library.
14903
14904 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14905
14906         * profiler.c, profiler.h, profiler-private.h: added basic block 
14907         coverage profiling API.
14908
14909 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
14910
14911         * reflection.c (mono_reflection_create_runtime_class): Add support
14912         for events in dynamically generated code.
14913
14914         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
14915         not allocated.
14916
14917 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14918
14919         * icall.c: when getting timezone info, return reasonable values if we
14920         can't get the actual data.
14921
14922 2003-06-14  Dick Porter  <dick@ximian.com>
14923
14924         * threads.c (start_wrapper): Remove the reference to the thread
14925         object in the TLS data, so the thread object can be finalized.
14926         This won't be reached if the thread threw an uncaught exception,
14927         so those thread handles will stay referenced :-( (This is due to
14928         missing support for scanning thread-specific data in the Boehm GC
14929         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
14930
14931 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
14932
14933         * reflection.c: ensure streams and tables are first allocated with
14934         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
14935
14936 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14937
14938         * icall.c: fixed GetElementType for byrefs (bug# 44792).
14939
14940 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
14941
14942         * reflection.c (mono_reflection_create_runtime_class): Add support for
14943         properties to dynamically created classes.
14944         * reflection.c: Fix a few places where non-MonoObjects were inserted
14945         into the tokens hashtable.
14946
14947 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14948
14949         * object.c: some support to handle out of memory exceptions.
14950
14951 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
14952
14953         * marshal.c (mono_marshal_get_native_wrapper): support reference
14954         return types
14955
14956 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14957
14958         * object.h, object.c: more portability stuff from Bernie Solomon.
14959         Unexport mono_object_allocate(). Added mono_object_unbox ().
14960         Set exitcode when an unhandled exception is thrown.
14961
14962 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
14963
14964         * marshal.c (mono_marshal_get_native_wrapper): use custom
14965         marshaler for return types.
14966
14967 2003-06-10  Dick Porter  <dick@ximian.com>
14968
14969         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
14970         ip_mreq is available
14971
14972 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
14973
14974         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
14975         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
14976         by Bernie Solomon <bernard@ugsolutions.com>.
14977
14978 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
14979
14980         * gc.c (mono_gc_init): Avoid error message on shutdown when
14981         GC_DONT_GC=1 is used.
14982
14983         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
14984         New icall to return the GUID of a module.
14985
14986 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14987
14988         * class.c: ensure instance size always includes the parent's size
14989         even whem class size is set explicitly (fixes bug#44294).
14990
14991 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14992
14993         * profiler.h, profiler.c: made the simple profiler thread-safe,
14994         get more accurate timing info. Allow the loading of an
14995         externally-developed profiler module.
14996
14997 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
14998
14999         * marshal.c (mono_marshal_get_native_wrapper): improved
15000         class/byref arguments.
15001         (mono_marshal_get_native_wrapper): better string marshaling support.
15002
15003 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15004
15005         * class.c: ensure .pack and .size are handled correctly and
15006         simplified layout of static fields.
15007
15008 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15009
15010         * appdomain.c
15011         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15012
15013         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15014         current directory (fix bug 44008)
15015
15016 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15017
15018         * marshal.c (mono_marshal_get_native_wrapper): started support for
15019         custom marshalers.
15020         (mono_delegate_to_ftnptr): consider marshalling specifications
15021
15022 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15023
15024         * reflection.c, reflection.h: emit custom marshal info.
15025
15026 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15027
15028         * object.c: free the GError.
15029         * icall.c: added CloseEvent_internal.
15030         * threads.[ch]:
15031         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15032         call.
15033
15034 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15035
15036         * loader.c (mono_method_get_signature): Add support for dynamic
15037         assemblies.
15038
15039 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15040
15041         * reflection.c: fixed bug #43905.
15042
15043 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15044
15045         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15046         handling TypedReference and ArgIterator.
15047         * loader.c, loader.h: added function to get signature at call site.
15048
15049 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15050
15051         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15052         data readonly. Buglets and warning fixes. Some MethodSpec support.
15053
15054 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15055
15056         * class.h, class.c, object.c: remove relative numbering support.
15057
15058 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15059
15060         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15061         free the string, until we get a chance to fix Gtk#
15062
15063 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15064
15065         * marshal.c: revert last patch.
15066
15067 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15068
15069         * icall.c: updates for new mono_class_vtable() not calling
15070         the type constructor anymore.
15071
15072 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15073
15074         * object.h, object.c: separate vtable creation from type
15075         initialization. Make running the .cctor thread safe.
15076
15077 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15078
15079         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15080
15081 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15082
15083         * loader.c (mono_get_method): consider calling convention
15084
15085 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15086
15087         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15088         to return the invisible global type for a module.
15089
15090         * reflection.c (mono_image_build_metadata): Emit global fields too.
15091
15092 2003-05-20  Peter Williams  <peterw@ximian.com>
15093
15094         * loader.c (mono_lookup_internal_call): Add a few newlines.
15095
15096 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15097
15098         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15099         literal strings.
15100
15101         * appdomain.c (set_domain_search_path): Recalculate search path when
15102         AppDomainSetup.PrivateBinPath changes.
15103
15104         * object.c (mono_class_compute_gc_descriptor): It turns out some
15105         parts of the class libs (like System.Thread) holds pointers to
15106         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15107         to treat native int a pointer type here.
15108         
15109 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15110
15111         * appdomain.h, domain.c: add hashtable for jump target resolution.
15112
15113 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15114
15115         * reflection.h reflection.c icall.c: Added new icalls 
15116         GetManifestResourceInfoInternal, GetModulesInternal and support
15117         infrastructure.
15118
15119 2003-05-16  Dick Porter  <dick@ximian.com>
15120
15121         * icall.c:
15122         * file-io.h:
15123         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15124
15125 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15126
15127         * object.c: mono_store_remote_field: little fix to previous patch.
15128
15129 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15130
15131         * class.c: add constructors to array classes.
15132         * icall.c: special case array construction for InternalInvoke (),
15133
15134 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15135
15136         * class.h class.c reflection.c object.c: Added support for field
15137         defaults in dynamically generated classes.
15138
15139 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15140
15141         * reflection.c: properly encode charset for ddlimport.
15142
15143 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15144
15145         * threads.c: allow compiling without GC.
15146
15147 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15148
15149         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15150         handling of thread static data.
15151
15152 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15153
15154         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15155
15156 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15157
15158         * class.c (mono_array_class_get): always set the serializable flags
15159         (mono_array_class_get): always set the SEALED attribute for array types
15160
15161 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15162
15163         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15164         attributes (fix for bug 42021).
15165
15166 2003-05-12  Dick Porter  <dick@ximian.com>
15167
15168         * gc.c: Don't run finalizers when the finalizer thread is
15169         finishing up, because the default domain has already been
15170         destroyed.
15171
15172 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15173
15174         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15175         value is null, we should throw an exception.   This is slightly
15176         different than the other conventions used for the constructor.
15177
15178 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15179
15180         * socket-io.c: fixed windows build.
15181
15182 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15183
15184         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15185
15186 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15187
15188         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15189         compilers.
15190
15191 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15192
15193         * class.c (mono_class_layout_fields): Add experimental GC aware
15194         auto layout facility. Requires class library changes to work correctly.
15195
15196         (mono_class_setup_vtable): Avoid overriding explicit interface
15197         method implementations. Fixes iface3.exe test.
15198
15199         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15200         object reference.
15201         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15202         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15203
15204         * metadata.h: Add new type classification macro which determines
15205         whenever the type holds an object reference.
15206
15207 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15208
15209         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15210
15211 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15212
15213         * gc.c (finalizer_thread): Work around a GC bug.
15214
15215 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15216
15217         * marshal.c (emit_struct_conv): allow unions
15218
15219         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15220
15221 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15222
15223         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15224
15225 2003-05-06  Martin Baulig  <martin@ximian.com>
15226
15227         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15228
15229 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15230
15231         * socket-io.c:
15232         (Select_internal): allow NULLs, don't create arrays if not needed.
15233         Coupled with Socket.cs changes.
15234
15235         * threadpool.c:
15236         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15237         register a finalizer for it that will close the semaphore handle. This
15238         fixes the leak and make Lupus' test run with > 4080 loops.
15239
15240 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15241
15242         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15243         Jerome Laban (bug #42287)
15244
15245 2003-05-02  Martin Baulig  <martin@ximian.com>
15246
15247         * debug-mono-symfile.h
15248         (MonoSymbolFile): Moved declaration into mono-debug.h.
15249         (MonoDebugMethodJitInfo): Likewise.
15250         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15251         argument.
15252         (_mono_debug_address_from_il_offset): Take a
15253         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15254
15255         * mono-debug.h
15256         (MonoDebugDomainData): New struct.
15257         (mono_debug_get_domain_data): New function.
15258         (mono_debug_add_method): Take an additional `MonoDomain *'
15259         argument.
15260         (mono_debug_source_location_from_address): Likewise.
15261         (mono_debug_il_offset_from_address): Likewise.
15262         (mono_debug_address_from_il_offset): Likewise.
15263
15264 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15265
15266         * reflection.c: one more check for null type in custom attrs.
15267
15268 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15269
15270         * reflection.c: avoid warning (comparison is always false due to limited
15271         range of data type).
15272
15273 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15274
15275         * icall.c: throw an exception in Type.GetField if the argument 'name'
15276         is NULL.
15277
15278 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15279
15280         * reflection.c: fixed handling of enums in named arguments to custom
15281         attributes (bug #42123).
15282
15283 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15284
15285         * reflection.c: use the right array element type and handle
15286         a null for a Type argument, too.
15287
15288 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15289
15290         * reflection.c: handle arrays as arguments to custom attributes.
15291
15292 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15293
15294         * reflection.c: handle a string value in a custom attr
15295         ctor that takes an object.
15296
15297 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15298
15299         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15300         (fix bug #42063)
15301
15302 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15303
15304         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15305
15306 2003-04-27  Martin Baulig  <martin@ximian.com>
15307
15308         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15309         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15310         MONO_DEBUGGER_EVENT_BREAKPOINT.
15311         (mono_breakpoint_trampoline_code): Removed.
15312         (mono_debugger_event_handler): The last argument is now a
15313         `guint32'.
15314         (mono_debugger_insert_breakpoint_full): Removed the
15315         `use_trampoline' argument.
15316         (mono_debugger_method_has_breakpoint): Likewise.
15317         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15318         mono_debugger_breakpoint_callback(); take the method and
15319         breakpoint number as arguments.
15320
15321 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15322
15323         * metadata.c: fix off by one when loading parameters attributes.
15324
15325 2003-04-24  Martin Baulig  <martin@ximian.com>
15326
15327         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15328
15329 2003-04-24  Martin Baulig  <martin@ximian.com>
15330
15331         * mono-debug-debugger.c: Moved all code which interacts with the
15332         Mono Debugger here.
15333
15334         * debug-mono-symfile.c: This code now just deals with the symbol
15335         file itself, the debugger code is now in mono-debug-debugger.c.
15336
15337 2003-04-23  Martin Baulig  <martin@ximian.com>
15338
15339         * mono-debug.c (mono_debug_source_location_from_il_offset):
15340         New method; like mono_debug_source_location_from_address(), but
15341         takes an IL offset instead of a machine address.
15342
15343 2003-04-23  Martin Baulig  <martin@ximian.com>
15344
15345         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15346         `line' field; this is now computed by the debugger.
15347
15348 2003-04-23  Martin Baulig  <martin@ximian.com>
15349
15350         * mono-debug.[ch]: New files.  This is the new debugging interface.
15351
15352         * mono-debug-debugger.[ch]: New files.  Moved all code which
15353         interacts with the Mono Debugger here.
15354
15355 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15356
15357         * domain.c (mono_init): initialize mono_defaults.monitor_class
15358
15359 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15360
15361         * reflection.c (method_encode_code): Add a spicy exception to help
15362         future compiler authors.
15363
15364 2003-04-21  Martin Baulig  <martin@ximian.com>
15365
15366         * icall.c
15367         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15368         Make this work with relative pathnames; g_filename_to_uri() needs
15369         an absolute filename.
15370
15371 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15372
15373         * icall.c: Track name changes in Object and ValueType.
15374
15375 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15376
15377         * metadata.c (mono_type_stack_size): size should be a multiple of
15378         sizeof (gpointer)
15379
15380 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15381
15382         * gc.c:
15383         (internal_domain_finalize): moved into mono_domain_finalize. No need
15384         to create another thread because the finalizers will be run in the
15385         finalizer thread.
15386         
15387         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15388         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15389         to be run (MS does this too).
15390
15391 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15392
15393         * object.c (mono_class_compute_gc_descriptor): Update comment.
15394
15395         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15396
15397         * image.h: Add synchronized wrapper cache.
15398
15399         * image.c (do_mono_image_open): Initialize cache.
15400
15401         * reflection.c (create_dynamic_mono_image): Initialize cache.
15402
15403 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15404
15405         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15406         ves_icall_System_Buffer_ByteLengthInternal.
15407
15408 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15409
15410         * reflection.c: setup klass->nested_in earlier. Allow
15411         a dash in the assembly name.
15412
15413 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15414
15415         * metadata.c (mono_type_to_unmanaged): dont access
15416         type->data.klass for MONO_TYPE_OBJECT
15417         (mono_type_to_unmanaged): consider System.Delegate class
15418
15419 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15420
15421         * class.c: just setup supertypes in the proper place instead of
15422         initializing the full element class for arrays.
15423
15424 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15425
15426         * class.c: ensure the element class of arrays is initialized.
15427         Setup the supertype info for array classes, too.
15428
15429 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15430
15431         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15432
15433 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15434
15435         * Makefile.am: re-added -m option when running cygpath. This way,
15436         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15437         separator.
15438         * mono-config.c: same codepath for locating mono config file for WIN32
15439         and the rest.
15440         * assembly.c: if mono_assembly_setrootdir is called, don't override
15441         the value set.
15442
15443 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15444
15445         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15446         MONO_ASSEMBLIES variable.
15447
15448 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15449
15450         * icall.c: added Assembly::GetNamespaces() icall.
15451
15452 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15453
15454         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15455
15456 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15457
15458         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15459         * object.c: fixed bug in the construction of vtable for proxies
15460
15461 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15462
15463         * object.c (mono_array_new): Mark mono_array_new as an icall.
15464
15465 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15466
15467         * class.c: fixed test for public method when overriding interfaces.
15468         Closes bug #40970.
15469
15470 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15471
15472         * appdomain.h, domain.c: added mono_domain_foreach() to
15473         be able to access the currently loaded appdomains.
15474         * object.c: make string interning work across sppdomains.
15475         Mark some functions for use as icalls.
15476
15477 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15478
15479         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15480
15481         * reflection.h reflection.c: Allocate long living data using 
15482         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15483
15484         * reflection.c: Double the allocation size in streams instead of
15485         increasing it, to prevent unneccesary copying on large assemblies.
15486         
15487         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15488         creation if the assembly does not have the Run flag set.
15489
15490 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15491
15492         * class.h: avoid the C++ keywords in header files (Jerome Laban
15493         spotted and fixed this).
15494
15495 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15496
15497         * object.c:
15498         (mono_unhandled_exception): fill in the arguments for the
15499         UnhandledException event. Only trigger that event for the default
15500         domain (as MS does).
15501
15502 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15503
15504         * object.c: Improve typed allocation stuff based on suggestions from
15505         Paolo. Also turn it on if the GC library supports it.
15506
15507 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15508
15509         * object.c object.h class.h: Added experimental typed allocation
15510         facility using the interfaces in gc_gcj.h.
15511
15512         * os/gc_wrapper.h: Added new include files.
15513         
15514 2003-04-03  Martin Baulig  <martin@ximian.com>
15515
15516         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15517         which is not yet enabled by default.
15518
15519         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15520         functions.
15521         (mono_gc_lock, mono_gc_unlock): New static functions.
15522
15523         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15524         functions; stop/start the world for the garbage collector.  This
15525         is using the windows API; we need to complete the SuspendThread()/
15526         ResumeThread() implementation in the io-layer to make this work on Unix.
15527         (mono_gc_push_all_stacks): New public function; tells the garbage
15528         collector about the stack pointers from all managed threads.
15529
15530 2003-04-03  Martin Baulig  <martin@ximian.com>
15531
15532         * object.h (MonoThread): Added `gpointer stack_ptr'.
15533
15534         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15535
15536 2003-04-03  Martin Baulig  <martin@ximian.com>
15537
15538         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15539
15540 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15541
15542         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15543         field.last.
15544
15545 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15546
15547         * loader.c (mono_lookup_internal_call): Report the corlib that is
15548         out of sync.
15549
15550 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15551
15552         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15553         System.DBNull (it's class not valuetype).
15554
15555 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15556
15557         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15558         if the array method was already assigned a token (fixes bug#40646).
15559
15560 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15561
15562         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15563         if no assembly is given.
15564
15565 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15566
15567         * metadata.h: Added the new tables.
15568
15569         * row-indexes.h: Added definitions for new tables.
15570
15571         * metadata.c: Add schemas for new tables, and add support for
15572         computing the sizes of them.
15573
15574         * class.c: Update for handling the new type cases.
15575
15576 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15577
15578         * metadata.h (MONO_TYPE_IS_VOID): new macro
15579
15580 2003-03-31  Martin Baulig  <martin@ximian.com>
15581
15582         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15583
15584         * threads.c (mono_thread_new_init): Call `thread_created' in the
15585         mono_thread_callbacks.
15586
15587 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15588
15589         * loader.h: added marshalbyrefobject_class to mono_defaults
15590         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15591         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15592           generation of output parameters.
15593           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15594         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15595           contextbound and the target object belongs to the context of the caller.
15596         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15597         * object.c: Implemented support for interfaces and abstract classes
15598           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15599           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15600
15601 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15602
15603         * class.h class.c (mono_class_is_subclass_of): New function.
15604         
15605         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15606         routines for most common case (calls from ArrayList::ToArray).
15607
15608         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15609         routine so programs which call Environment::Exit() can be profiled.
15610
15611         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15612         Added MONO_ARCH_SAVE_REGS.
15613
15614         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15615
15616 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15617
15618         * blob.h: Add a couple of new MonoType types definitions.
15619
15620         * tabledefs.h: Add a couple of new call convs.
15621
15622 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15623
15624         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15625         the layout of the class.
15626
15627         * reflection.c (alloc_table): double the size on overflow to avoid
15628         unnecessary copying.
15629
15630         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15631         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15632         null so it can be garbage collected.
15633         
15634 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15635
15636         * reflection.c (mono_reflection_get_type): Return the resolved type
15637         only if it is in the assembly we searched.
15638
15639         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15640
15641         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15642         method.
15643
15644 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15645
15646         * appdomain.c:
15647         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15648         the right one is 'file:///blah', but MS allows it.
15649         * assembly.c:
15650         (mono_assembly_open): allow 'file://blah'
15651
15652         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15653
15654 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15655
15656         * socket-io.c: fixes bug #40310.
15657
15658 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15659
15660         * reflection.c (mono_reflection_parse_type): handle deeply nested
15661         types correctly.
15662
15663         * reflection.c (mono_image_create_token): Use unique token values
15664         since they will be put into a hash table.
15665
15666         * class.c (mono_class_setup_vtable): If a method occurs in more than
15667         one place in the vtable, and it gets overriden, then change the
15668         other occurances too.
15669
15670         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15671         object as return type.
15672
15673 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15674
15675         * icall.c: Deleted "ToString" implementation for double and float
15676         because they are full implemented in managed code.
15677
15678 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15679
15680         * reflection.c, reflection.h: implemented and exported functions
15681         to retrieve info about custom attributes.
15682
15683 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15684
15685         * appdomain.c: moved Uri handling to assembly.c
15686         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15687         work when using a file Uri in *nix and windows.
15688
15689         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15690         GetReferencedAssemblies.
15691
15692 2003-03-18  Dick Porter  <dick@ximian.com>
15693
15694         * icall.c: Rename a couple of internal calls
15695
15696         * threads.c: Set the thread state to Stopped when a thread exits.
15697         Fixes bug 39377.
15698
15699 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15700
15701         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15702         New icall.
15703
15704         * object.c (mono_class_vtable): fix warning.
15705
15706 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15707
15708         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15709
15710         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15711         memory.
15712         (method_encode_clauses): Create exception info structures in the right
15713         order.
15714         (mono_reflection_setup_internal_class): Initialize supertypes field.
15715
15716         * class.c object.c: Handle interfaces which implement other interfaces 
15717         correctly.
15718
15719         * class.h class.c: Move the supertypes array initialization code into 
15720         a separate function so it can be used for dynamic types too. Also call
15721         it earlier, in mono_class_init(), since it can be used before the
15722         type is initialized.
15723
15724 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15725
15726         * Makefile.am:
15727         * assembly.c:
15728         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15729
15730         * appdomain.c:
15731         * appdomain.h:
15732         * marshal.c:
15733         * object.c: remove warnings.
15734
15735 2003-03-13  Martin Baulig  <martin@ximian.com>
15736
15737         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15738         (MonoDebugLexicalBlockEntry): New types.
15739
15740         * debug-mono-symfile.c
15741         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15742
15743 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15744
15745         * process.c: ret can be any non-zero value accroding to MS doc.
15746
15747 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15748
15749         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15750         fixing a warning for a miss-used prototype, would have cause
15751         random memory corruption.
15752
15753 2003-03-07  Martin Baulig  <martin@ximian.com>
15754
15755         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15756         getting really annoying ....
15757
15758 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15759
15760         * reflection.c (fixup_method): added support for array methods.
15761
15762 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15763
15764         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15765         (pointed out by Michael Adams).
15766
15767 2003-03-04  Dick Porter  <dick@ximian.com>
15768
15769         * icall.c: Temporarily reverted the Double and Single ToString()
15770         change, because it broke nunit.
15771
15772 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15773
15774         * object.h, threads.h: make include files compatible with C++
15775         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15776
15777 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15778
15779         * icall.c: Erased ToString helper functions for Double and Single.
15780         Now, that implementations ar all in managed code (Double and Single
15781         Formatters).
15782
15783 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15784
15785         * appdomain.c: Added method for initializing the default context of
15786         a domain. Added internal call for getting the default context.
15787         * appdomain.h: Added context variable in MonoDomain struct.
15788         * domain.c: mono_domain_set also sets the default context of the domain
15789         * icall.c: Mapped internal method InternalGetDefaultContext.
15790         * object.c: mono_object_get_virtual_method returns always a remoting
15791         wrapper if the object is a transparent proxy.
15792         mono_runtime_invoke_array: when creating an object by calling the
15793         constructor, if the created object is a proxy, then the constructor should
15794         be called using the a remoting wrapper.
15795
15796 2003-03-03  Dick Porter  <dick@ximian.com>
15797
15798         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15799         variable so it compiles on solaris.  Problem spotted by
15800         Christopher Taylor <ct@cs.clemson.edu>
15801
15802 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15803
15804         * appdomain.c:
15805         (get_info_from_assembly_name): don't leak value.
15806
15807         * icall.c:
15808         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15809         result.
15810
15811 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15812
15813         * assembly.c: export mono_image_load_references ().
15814         * class.c: handle function pointers. mono_class_from_name() now
15815         supports nested type names directly.
15816
15817 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15818
15819         * reflection.h reflection.c: Encode already created dynamic methods 
15820         and fields correctly as a DEF instead of a REF.
15821
15822         * reflection.c: Get rid of the force_ref argument to 
15823         mono_image_typedef_or_ref since it was wrong in the first place.
15824
15825         * string-icalls.c: add error checking to string constructors according
15826         to the MSDN docs.
15827
15828         * reflection.c: Emit types in the order their TypeBuilders were 
15829         created. Previously, a new table index was assigned to each type before
15830         the tables were emitted. This was wrong because the signature blob
15831         might already refer to a type by its original table index.
15832
15833 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15834
15835         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15836         change.
15837         
15838 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15839
15840         * Makefile.am: make assemblies dir have \ instead of / on windows.
15841
15842 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15843
15844         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15845         iterate over the NESTEDCLASS table using a linear search since the
15846         table is not guaranteed to be sorted by the secondary key.
15847
15848         * class.c (mono_class_create_from_typedef): fixed up call to
15849         mono_metadata_nesting_typedef.
15850         
15851 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15852
15853         * marshal.c (mono_string_to_byvalstr): clear the memory as
15854         suggested by Jerome Laban <jlaban@wanadoo.fr>
15855
15856 2003-02-26  Dick Porter  <dick@ximian.com>
15857
15858         * process.c: Cope with padding in .rsrc blocks
15859
15860 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15861
15862         * metadata.h: reverted the filter_len change, it breaks reflection
15863         
15864 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15865
15866         * metadata.h: added a new field to store the filter_len
15867         
15868
15869 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15870
15871         * reflection.c: handle custom attributes for types and members
15872         created with Reflection.Emit (bug#38422).
15873
15874 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15875
15876         * reflection.c: define RTSpecialName automatically for constructors for
15877         compatibility with MS.NET.
15878
15879         * reflection.c (mono_reflection_create_runtime_class): initialize
15880         nested_in field of dynamically created classes.
15881
15882 2003-02-22  Martin Baulig  <martin@ximian.com>
15883
15884         * debug-mono-symfile.h: Incremented version number.
15885
15886 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15887
15888         * object.h icall.c process.c: fix warnings.
15889
15890 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15891
15892         * appdomain.h appdomain.c:
15893         (mono_domain_try_type_resolve): split the 
15894         name_or_tb argument into a name and a tb argument.
15895         (mono_domain_has_type_resolve): new function to check whenever the
15896         application has registered a TypeResolve event handler.
15897         
15898         * icall.c reflection.h reflection.c: move the type resolve logic into
15899         mono_reflection_get_type () so it will be invoked when 
15900         Assembly::GetType () is called.
15901
15902         * reflection.c:
15903         (mono_reflection_get_type): renamed to get_type_internal.
15904         (mono_reflection_get_type): fixed type name generation so it works 
15905         for nested types too.
15906         (mono_reflection_get_type): call has_type_resolve () to avoid the 
15907         costly type name generation if there is no resolve event handler.
15908
15909 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15910
15911         * class.c, image.c: load exported types from file references.
15912
15913 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
15914
15915         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
15916           used to cache the managed methods used to create proxies and make 
15917           remote invocation of methods.
15918         * class.h: Added in MonoVTable a flag to indicate that a class needs 
15919           to be remotely created.
15920         * object.c: Modified the method mono_class_vtable(). It now initializes 
15921           the remote flag of the vtable. Modified mono_object_new_specific(), 
15922           so now it checks the remote flag.
15923         * icall.c: Added a couple of internal methods, one for enabling instance 
15924           creation interception for a type, and one for creating objects bypassing
15925           the remote check.
15926
15927 2003-02-18  Martin Baulig  <martin@ximian.com>
15928
15929         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
15930         New interncall to get a method's metadata token.
15931
15932         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
15933         New interncall for the debugger.
15934
15935 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
15936
15937         * class.c (mono_class_setup_vtable): allocate supertype array
15938
15939 2003-02-18  Martin Baulig  <martin@ximian.com>
15940
15941         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
15942
15943 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15944
15945         * reflection.c:
15946         (assembly_name_to_aname): jump over unknown properties (i've found
15947         something like: 'type, assembly, version=xxx, custom=null, public...',
15948         so now will ignore custom=null and still get the rest of the values).
15949
15950 2003-02-17  Dick Porter  <dick@ximian.com>
15951
15952         * threads.c: Have Thread.Start() wait for a semaphore to signal
15953         that the thread has set up all its local data.  This fixes bug
15954         34323, where Abort() raced the new thread's TLS data.
15955
15956         Also removes the handle_store() call from start_wrapper, because
15957         threads are now always created suspended and there is no longer a
15958         race between the parent and child threads to store the info.
15959
15960 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
15961
15962         * image.c: explain the #- heap issue in a message, hopefully
15963         avoiding FAQs on mono-list.
15964
15965 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15966
15967         * icall.c:
15968         (GetEntryAssembly): if the domain has not invoked
15969         AppDomain.ExecuteAssembly yet, return the assembly of the default
15970         AppDomain.
15971
15972 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
15973
15974         * class.c (mono_ldtoken): make it work in dynamic assemblies.
15975
15976 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
15977
15978         * metadata.c, reflection.c: simple speedup to type hash
15979         and equals code.
15980
15981 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
15982
15983         * image.c, image.h, class.c, assembly.c: move module loading
15984         to MonoImage. When loading metadata, consider alignemnet from
15985         the start of metadata, not from the metadata address in memory.
15986
15987 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
15988
15989         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
15990         AssemblyBuilder objects. Factored out custom attribute creation into
15991         a separate function.
15992         (create_custom_attr): new function to create custom attributes.
15993
15994 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
15995
15996         * Makefile.am: Got tired of typing the full pathname to pedump.
15997         Until there is another option, am installing this.
15998
15999 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16000
16001         * class.c (class_compute_field_layout): always set field->parent 
16002         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16003
16004 2003-02-11  Dick Porter  <dick@ximian.com>
16005
16006         * threads-types.h:
16007         * monitor.c: Rewrote Monitor, making lock much faster and
16008         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16009         creates them as needed.
16010
16011         * exception.c: Added SynchronizationLockException
16012
16013         * threads.c: Deleted old Monitor implementation.  The new one is
16014         in a new file.
16015
16016 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16017
16018         * class.c: handled TypedReference type code. Set the correct size for
16019         class data. Setup interface_offsets for interface classes, too.
16020
16021 2003-02-09  Martin Baulig  <martin@ximian.com>
16022
16023         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16024
16025 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16026
16027         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16028         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16029         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16030         * verify.c: check for code that runs after the end of the method.
16031
16032 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16033
16034         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16035         "System.Math::Round2".
16036         * sysmath.h: Added Floor, Round and Round2 definitions.
16037         * sysmath.c: Modified certain functions that were not 100% compliant
16038         with MS.NET (math precision) and added the implementation of Floor,
16039         Round and Round2.
16040
16041 2003-02-07  Martin Baulig  <martin@ximian.com>
16042
16043         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16044
16045 2003-02-07  Martin Baulig  <martin@ximian.com>
16046
16047         * debug-mono-symfile.c: Reflected latest symwriter changes.
16048         (mono_debug_create_mono_symbol_file): Removed.
16049         (mono_debug_open_mono_symbol_file): Take an argument which
16050         specifies whether to create a dynamic symbol file.
16051
16052 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16053
16054         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16055
16056 2003-02-05  Martin Baulig  <martin@ximian.com>
16057
16058         * reflection.c (mono_image_build_metadata): Make this public,
16059         protect it against being called multiple times, don't create
16060         resources and don't build the compressed metadata here.
16061         (mono_image_create_pefile): Do this here.
16062
16063         * icall.c
16064         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16065
16066 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16067
16068         * socket-io.c: fixed bug #36322.
16069
16070 2003-02-06  Piers Haken <piersh@friskit.com>
16071
16072         * appdomain.[ch]:
16073         * class.h:
16074         * debug-mono-symfile.c:
16075         * icall.c:
16076         * loader.c:
16077         * mono-config.c:
16078         * monosn.c:
16079         * reflection.c:
16080         * socket-io.c: warning cleanups
16081
16082 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16083
16084         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16085         function. works like remoting invoke, but does a check for the Proxy first.
16086
16087 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16088
16089         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16090
16091 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16092
16093         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16094         array of pointers.
16095         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16096         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16097
16098         * object.c (mono_store_remote_field_new): used by the new jit
16099         instead of mono_store_remote_field
16100         (mono_load_remote_field_new): used by the new jit
16101         instead of mono_load_remote_field
16102
16103 2003-02-05  Patrik Torstensson
16104
16105         * appdomain.c: changed unload to take the domain id instead
16106         of domain
16107         
16108         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16109
16110
16111 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16112
16113         * appdomain.c: don't look for assemblies in ApplicationBase if
16114         PrivateBinPathProbe is set.
16115
16116 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16117
16118         * object.c: make the first argument in main_args contain the absolute
16119         path to the assembly. Fixes bug #37511.
16120
16121 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16122
16123         * icall.c: get correct UTC offset for countries not using daylight
16124         time saving. Fixes bug #30030.
16125
16126 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16127
16128         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16129         and 1 are the family).
16130
16131 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16132
16133         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16134
16135         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16136
16137 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16138
16139         * reflection.c: added support for SignatureHelper tokens, which is
16140         needed by the Calli opcode.
16141
16142         * reflection.h: track changes to SignatureHelper class.
16143
16144         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16145
16146 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16147
16148         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16149
16150 2003-02-03  Patrik Torstensson
16151         * appdomain.[c|h], domain.c : 
16152          - Added support for getting a domain via domain id
16153          - Support for setting and getting domain from System.AppDomain 
16154            (used in cross appdomain channel)
16155          - Added support for get/set for a MonoAppContext on a thread 
16156            (Context class in System.Runtime.Remoting.Contexts),
16157          - Removed hack in Get/SetData and ExecuteAssembly.
16158         
16159         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16160         the managed world to get control when a proxy is created.
16161
16162         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16163         
16164 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16165
16166         * icall.c
16167         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16168         Populate the codebase field as well.
16169
16170 2003-02-02  Martin Baulig  <martin@ximian.com>
16171
16172         * debug-mono-symfile.c
16173         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16174         (mono_debug_symfile_add_method): Allow interncalls.
16175
16176 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16177
16178         * icall.c: throw parse exception if strtod fails or the string is empty.
16179
16180 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16181
16182         * marshal.c: handle object type separately from defined
16183         class types.
16184
16185 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16186
16187         * marshal.c: handle NATIVE_LPSTR for strings when it's
16188         explicitly specified.
16189
16190 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16191
16192         * reflection.c, reflection.h, icall.c: setup the reflection
16193         handle cache for ModuleBuilders and AssemblyBuilders.
16194
16195 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16196
16197         * reflection.c (reflection_methodbuilder_to_mono_method): set
16198         pinvoke flag
16199
16200 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16201
16202         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16203
16204 2003-01-29  Dick Porter  <dick@ximian.com>
16205
16206         * threads.c: No need for the fake_thread kludge now that Thread
16207         doesn't run a class constructor
16208         
16209 2003-01-29  Dick Porter  <dick@ximian.com>
16210
16211         * threads.c: Use g_direct_hash instead of the rather bogus
16212         g_int_hash
16213
16214 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16215
16216         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16217         (fix pinvoke12.exe)
16218         (mono_marshal_get_struct_to_ptr): generate valid IL code
16219         (mono_marshal_get_ptr_to_struct): generate valid IL code
16220         (*): correctly set sig->pinvoke, we need to memdup the signature
16221         to do that
16222
16223 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16224
16225         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16226         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16227
16228 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16229
16230         * profiler.c: provide more callers information.
16231
16232 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16233
16234         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16235
16236         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16237
16238         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16239
16240 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16241
16242         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16243         exception instead of going into an infinite loop on dates which it 
16244         can't yet handle.
16245
16246         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16247         out-of-range exception if needed.
16248
16249         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16250         an implementation for an interface method and to override an inherited
16251         method at the same time. 
16252         Imagine a scenario when a virtual method is used to override a
16253         virtual abstract method in a parent class, and this same method 
16254         provides an implementation for an method inherited from an interface. 
16255         In this case, the interface resolution code will set im->slot, which 
16256         means that the virtual method override pass will skip this method 
16257         which means a pointer to the abstract method inherited from the parent
16258         will remain in the vtable of this non-abstract class.
16259
16260         * class.c: (mono_class_setup_vtable): continue search for a real 
16261         method if only an abstract method is found.     
16262
16263 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16264
16265         * reflection.c: add size to encoding for ByValStr and ByValArray
16266         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16267
16268 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16269
16270         * class.c (mono_class_setup_vtable): pass the override info as an
16271         argument.
16272
16273         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16274         correctly.
16275         
16276         * reflection.c (ensure_runtime_vtable); add support for method 
16277         overrides.
16278         
16279 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16280
16281         * reflection.c (resolution_scope_from_image): Hack to work to work with
16282         dynamic assemblies.
16283
16284         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16285         added a 'force_ref' argument to force this function to allways return 
16286         a TypeRef. This is needed by mono_image_get_memberref_token ().
16287         
16288 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16289
16290         * reflection.c (mono_image_get_type_info): interfaces really don't have
16291         a parent.
16292
16293         * reflection.c (mono_image_basic_init): fill out missing fields of
16294         image structure.
16295
16296         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16297         dynamic assemblies. This is required so dynamic assemblies show up in
16298         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16299         Type::GetType() etc. This is consistent with MS behaviour.
16300
16301         * image.c image.h reflection.c: add newly created classes to the name 
16302         cache so mono_class_get () will find them.      
16303
16304 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16305
16306         First part of changes to get IKVM.NET running under mono.
16307         
16308         * appdomain.h, appdomain.c: added new function 
16309         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16310         This function will call AppDomain::DoTypeResolve to do the actual work.
16311
16312         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16313         moved existing code dealing with dynamic tokens to a new function 
16314         called mono_reflection_lookup_dynamic_token (). This function will 
16315         raise TypeResolve events when appropriate. Since reflection.c is not 
16316         part of libmetadata, a new hook function called 
16317         mono_lookup_dynamic_token() is added to class.c which will call this.
16318
16319         * assembly.h assembly.c: make the invoke_load_hook function public,
16320         so it can be called for dynamic assemblies.
16321
16322         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16323
16324         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16325         type isn't found.
16326
16327         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16328         MonoGHashTable, since it contains pointers to objects which the GC 
16329         needs to track.
16330
16331         * assembly.c (search_loaded): remove unused variable.
16332         
16333 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16334
16335         * object.c: fixed issue exposed by gcc-generated IL programs
16336         that use RVA data for pointers.
16337
16338 2003-01-25  Martin Baulig  <martin@ximian.com>
16339
16340         * threads.c (start_wrapper): Moved the initialization of
16341         `start_func' above the mono_new_thread_init() call to which we
16342         pass it as argument.
16343
16344 2003-01-24  Martin Baulig  <martin@ximian.com>
16345
16346         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16347         the MonoThread pointer.
16348
16349 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16350
16351         * icall.c: Rename `PowImpl' to Pow.
16352
16353 2003-01-23  Dick Porter  <dick@ximian.com>
16354
16355         * threads.c (start_wrapper): Create a Thread object if needed, so
16356         the Main() thread can do the class initialisation in a subthread
16357         that has been set up to allow managed code execution.
16358
16359         Pass the thread ID instead of the MonoThread pointer to the thread
16360         start and attach callbacks.  This change is required, because the
16361         jit thread start callback must be called _before_ the Thread
16362         object can be created.
16363         
16364         (mono_thread_init): Removed much object creation code that is no
16365         longer needed.  No managed code is called from here now.
16366
16367         * object.c (mono_runtime_exec_managed_code): Create a subthread
16368         for Main, and call back to the runtime to use it.
16369         Set the exit code when Main exits.
16370
16371         * gc.c: Make sure domain finalisation happens in a subthread.
16372         Re-enable threaded GC, fixing bug 31333 (again).
16373
16374         * environment.c: System.Environment internall calls (so far just
16375         ExitCode is here, the others are still in icall.c)
16376
16377         * appdomain.c (mono_runtime_cleanup): All threads running managed
16378         code should have finished before mono_runtime_cleanup() is
16379         reached, so no need to clean up threads.
16380
16381 2003-01-22  Martin Baulig  <martin@ximian.com>
16382
16383         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16384         `gpointer func' arguments.      
16385         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16386         but added `MonoThread *thread' argument.
16387         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16388
16389         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16390         and pass it to the mono_thread_start_cb callback.
16391         (mono_install_thread_callbacks): New public function to install a
16392         set of callbacks which are set by the debugger.
16393         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16394
16395 2003-01-22  Martin Baulig  <martin@ximian.com>
16396
16397         * Makefile.am: Install debug-mono-symfile.h.
16398
16399 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16400
16401         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16402
16403 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16404
16405         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16406         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16407         (mono_array_class_get): correctly set access levels of arrays
16408
16409 2003-01-20      Patrik Torstensson
16410         * image.h (MonoAssemblyName): changed major, minor, build, revision
16411         from signed to unsigned.
16412
16413 2003-01-20  sean kasun <skasun@azstarnet.com>
16414
16415         * reflection.c (load_cattr_value): Now this handles
16416         MONO_TYPE_SZARRAY.  Fixes bug #35629
16417
16418 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16419
16420         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16421         integer value
16422
16423 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16424
16425         * decimal.c: fixed bug #26056.
16426
16427 2003-01-17  Martin Baulig  <martin@ximian.com>
16428
16429         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16430
16431 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16432
16433         * exception.[ch]:
16434         (mono_get_exception_type_initialization): new function.
16435
16436         * object.c: throw a TypeInitializationException when an exception is
16437         thrown invoking the class constructor.
16438
16439 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16440
16441         * reflection.c: fixed attribute reading.
16442
16443 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16444
16445         * icall.c:
16446         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16447         provided, look for the type in the calling assembly and then in
16448         mscorlib; if the assembly name is provided, only try that one.
16449
16450 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16451
16452         * object.c: register the vtable before there is a chance it's
16453         queried again recursively.
16454
16455 2003-01-13  Duncan Mak  <duncan@ximian.com>
16456
16457         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16458         gc-internal.h. 
16459         
16460 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16461
16462         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16463
16464 2003-01-11  Martin Baulig  <martin@ximian.com>
16465
16466         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16467         this to 20 for the release.
16468
16469 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16470
16471         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16472
16473         * loader.c (mono_method_get_marshal_info): bug fix
16474
16475         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16476         structures with explicit layout
16477
16478 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16479
16480         * profiler.c: made the output more readable (and sorted). 
16481         Added caller information for the allocation profiler.
16482
16483 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16484
16485         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16486
16487 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16488
16489         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16490         to get value types.
16491         
16492 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16493
16494         * object.c, profiler.h, profiler.c, profiler-private.h:
16495         Added object allocation profiler.
16496
16497 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16498
16499         * reflection.h, reflection.c: handle global methods.
16500         Compress blob entries.
16501
16502 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16503
16504         * marshal.c: fix compilation.
16505
16506 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16507
16508         * loader.c (mono_method_get_marshal_info): impl.
16509
16510         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16511
16512 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16513
16514         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16515         for reference types.
16516
16517 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16518
16519         * loader.c: fixed off by one error in loaded parameter names.
16520
16521 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16522
16523         * marshal.c (mono_marshal_get_icall_wrapper): like
16524         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16525         instead of a MonoMethod.
16526
16527 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16528
16529         * decimal.c: fixed bug #36537.
16530
16531 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16532
16533         * marshal.c: throw a missing method exception if a
16534         P/Invoke method is not found.
16535
16536 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16537
16538         * icall.c: allow a null this for constructors.
16539
16540 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16541
16542         * icall.c: raise the proper exceptions if the arguments to the
16543         internal Invoke are incorrect.
16544
16545 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16546
16547         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16548
16549 2003-01-03  Martin Baulig  <martin@ximian.com>
16550
16551         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16552
16553 2002-12-31  Martin Baulig  <martin@ximian.com>
16554
16555         * debug-mono-symfile.c: Completely rewrote the type section.
16556         Instead of using individual malloc()ed fields, we use one big
16557         continuous memory area and offsets into this area.
16558         See the comments in the source code for details.
16559
16560 2002-12-30  Martin Baulig  <martin@ximian.com>
16561
16562         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16563
16564 2002-12-30  Martin Baulig  <martin@ximian.com>
16565
16566         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16567         line number table in this data blob instead of using an external
16568         pointer.
16569
16570 2002-12-28  Martin Baulig  <martin@ximian.com>
16571
16572         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16573
16574 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16575
16576         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16577         as a boxed return type.
16578
16579 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16580
16581         * appdomain.c
16582         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16583         g_build_filename to properly get separators on the filename created.
16584
16585         * object.h: Small change, introduce MonoMarshalByRefObject to
16586         track the layout of that structure in the C# universe as we make
16587         changes there.
16588
16589 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16590
16591         * object.c: removed assert to allow static fields on interfaces.
16592         * loader.c: a TypeSpec may be used for any type, not just arrays.
16593
16594 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16595
16596         * class.c, class.h: added mono_class_array_element_size ().
16597         Ignore static methods in interfaces.
16598
16599 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16600
16601         * threads.c: fixed the build under cygwin.
16602
16603 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16604
16605         * reflection.c: handle nullref constants. Allocate keys for
16606         reflection handles with the GC.
16607
16608 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16609
16610         * threads.c, threads.h: added mono_thread_get_abort_signal()
16611         to get a suitable signal for thread abort.
16612
16613 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16614
16615         * metadata.c: fix handling of ExportedType table.
16616
16617 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16618
16619         * icall.c: added WriteWindowsDebugString internal call.
16620
16621 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16622
16623         * reflection.h: added fields to match C# implementation.
16624
16625 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16626
16627         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16628
16629 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16630
16631         * gc.h, gc-internal.h: Rename header for GC internal calls to
16632         gc-internal.h from gc.h as to not clash with Boehm GC having its
16633         header installed as <gc.h> in outside include paths.
16634         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16635         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16636
16637 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16638
16639         * icall.c: assign minor, build and revision in FillName.
16640
16641 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16642
16643         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16644         Added support for running code generated by Reflection.Emit.
16645
16646 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16647
16648         * appdomain.c: check for NULL argument in LoadFrom.
16649
16650 2002-12-10  Dick Porter  <dick@ximian.com>
16651
16652         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16653
16654 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16655
16656         * appdomain.c: fix buglet when building exe file name.  Handle full
16657         assembly name (needed after latest changes to AssemblyName).
16658         * image.c:
16659         (mono_image_close): free some hashtables.
16660
16661 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16662
16663         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16664         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16665         on some systems (redhat 7.3) 
16666
16667 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16668
16669         * threads.c: delete the critical section of a sync block,
16670         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16671
16672 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16673
16674         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16675
16676 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16677
16678         * appdomain.[ch]: handle the assembly preload event to try loading the
16679         assemblies using the paths we have in the current domain.
16680
16681         * assembly.[ch]: created an assembly preload hook that is called to try
16682         loading the assembly by other means that the ones provided here.
16683
16684         * domain.c: initialize the domain search path.
16685
16686         From now on, assemblies (TODO: except corlib and System) are loaded
16687         according to these rules when using mono_assembly_load ():
16688
16689                 1. It tries to load the assembly from the ApplicationBase
16690                 of the current domain appending .dll and .exe (TODO: have to
16691                 try loading from name/name.dll and name/name.exe).
16692
16693                 2. It tries the search path specified in PrivateBinPath for the
16694                 current domain (if any).
16695
16696                 3. Previous behavior.
16697
16698 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16699
16700         * icall.c: implemented GetInterfaceMap() related icall.
16701         * domain.c, loader.h: load MethodInfo in mono_defaults.
16702
16703 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16704
16705         * gc.c: disable the finalizer thread for now, untill all the issues
16706         with it are resolved.
16707
16708 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16709
16710         * string-icalls.c: handle embedded nulls in string ctor when the
16711         length is specified.
16712
16713 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16714
16715         * class.c: look for explicit interface implementation in parent
16716         classes, too.
16717
16718 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16719
16720         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16721
16722 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16723
16724         * gc.c: protect handles with a critical section.
16725
16726 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16727
16728         * icall.c:
16729         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16730         parameters. If no assembly specified, try getting the type from all
16731         the assemblies in the current domain, else, load the assembly and get
16732         the type from it.
16733
16734 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16735
16736         * marshal.c: applied patch from Aleksey Demakov that fixes
16737         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16738
16739 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16740
16741         * icall.c: fixed get_location.
16742
16743 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16744
16745         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16746         declarations to make it work with older gcc. 
16747
16748         * loader.c (mono_get_method): set signature->pinvoke for native calls
16749
16750 2002-11-20  Dick Porter  <dick@ximian.com>
16751
16752         * threads.c (mono_thread_init): Set the main thread's handle
16753
16754 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16755
16756         * gc.c: allow compilation without GC support. Changed to match the
16757         mono coding style.
16758
16759 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16760
16761         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16762
16763 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16764
16765         * reflection.c: set a public key token on the core assemblies.
16766
16767 2002-11-18  Dick Porter  <dick@ximian.com>
16768
16769         * threads.c: Split out some thread initialisation so that other
16770         files can set the start callback function.
16771
16772         * gc.c: Run finalisers in a separate thread, to avoid stack
16773         overflow.  Fixes bug 31333.
16774
16775         * appdomain.c: Set up GC finalisation thread.
16776
16777         * reflection.c: 
16778         * object.c: 
16779         * domain.c: Use gc.h macros for GC_malloc
16780         
16781 2002-11-15  Dick Porter  <dick@ximian.com>
16782
16783         * threadpool.c: 
16784         * threads.c:
16785         * appdomain.c: Removed mono_runtime_init_with_attach(),
16786         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16787         merging the extra parameter with the existing function.  Removed
16788         unneeded code in mono_thread_attach().
16789
16790 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16791
16792         * image.c (mono_image_loaded_by_guid): a method to get loaded
16793         images by guid. 
16794         (load_metadata_ptrs): we store the guid as string.
16795
16796 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16797
16798         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16799
16800         * metadata.c (mono_guid_to_string): imported method form Zoltan
16801         Varga (slightly modified)
16802
16803         * assembly.c (mono_assembly_open): load precompiled code
16804
16805         * loader.h (MonoMethod): we store the method token for use in the
16806         aot compiler. 
16807
16808 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16809
16810         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16811         the hook function called when an assembly is loaded.
16812         
16813         * domain.c: Modified file.
16814         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16815
16816         Fixes bug #33196.
16817
16818 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16819
16820         * reflection.c: Map PEFileKind to the value expected by the WinNT
16821         image loader. 
16822
16823 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16824
16825         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16826         Read until the buffer is filled completely.
16827
16828 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16829
16830         * icall.c: implemented MonoType.InternalGetEvent ().
16831
16832 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16833
16834         * appdomain.c: implemented InitAppDomainSetup. Delayed
16835         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16836         the entry_assembly.
16837
16838         * assembly.c: base_dir is now an absolute path ending with
16839         G_DIR_SEPARATOR.
16840
16841         * icall.c: modified get_location according to the above changes.
16842
16843         * object.c: init AppDomain.SetupInformation for the default domain after
16844         we have the entry assembly.
16845
16846         * domain.c: when unloading a domain, setup = NULL.
16847
16848 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16849
16850         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16851
16852 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16853
16854         * object.h, object.c: introduced mono_object_get_virtual_method ()
16855         to lookup the method invoked on an object when a callvirt is done on
16856         a method.
16857         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16858
16859 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16860
16861         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16862         current domain when loaded an assembly and failed to load it.
16863
16864         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16865
16866 2002-10-31  Dick Porter  <dick@ximian.com>
16867
16868         * icall.c: 
16869         * file-io.h: 
16870         * file-io.c: Return the error status in a parameter, as the
16871         GetLastError() value has long since been blown away if we try and
16872         look it up in a subsequent internal call invocation.  Delete the
16873         GetLastError() internal call, because it's useless.
16874
16875 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16876
16877         * class.[ch]: added cast_class to fix bug 29517
16878
16879 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16880
16881         * marshal.c: create valid IL code in the filter clause:
16882         the new JIT is less forgiving:-)
16883
16884 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16885
16886         * icall.c: removed get_property internal call.
16887
16888 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16889
16890         * appdomain.h domain.c: Added an ID to appdomains.
16891         
16892         * threads.c threads.h icall.c: Implement icall
16893         Thread:GetDomainID(), and remove unused icall 
16894         CurrentThreadDomain_internal.
16895
16896 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16897
16898         * icall.c: Don't recurse through the base types in GetConstructor.
16899         Fixes bug #32063. 
16900
16901 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16902
16903         * mempool.h, mempool.c: added mono_mempool_empty() and
16904         mono_mempool_stats().
16905
16906 2002-10-23  Dick Porter  <dick@ximian.com>
16907
16908         * file-io.c: 
16909         * file-io.h: 
16910         * icall.c: Added MonoIO.GetFileType internal call
16911
16912 2002-10-17  Dick Porter  <dick@ximian.com>
16913
16914         * appdomain.c (mono_runtime_cleanup): Don't signal the async
16915         delegate semaphore before waiting for all threads to finish,
16916         because new threads can also call async delegates.  Fixes bug
16917         32004.
16918
16919         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
16920         of 3 seconds, in case another async job is queued.  (This part is
16921         needed because the bug fix reintroduced the 3s exit lag.)  This
16922         makes the mono_runtime_shutdown flag superfluous.
16923
16924 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16925
16926         * reflection.c: include ehader size in method section headers.
16927         Really check for suplicated modules entries.
16928
16929 2002-10-17  Martin Baulig  <martin@gnome.org>
16930
16931         * debug-mono-symfile.c: Added back support for locals.
16932
16933 2002-10-14  Martin Baulig  <martin@gnome.org>
16934
16935         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
16936         MONO_TYPE_VOID.
16937
16938 2002-10-14  Martin Baulig  <martin@gnome.org>
16939
16940         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
16941         mono_class_get() instead of looking in the class cache. 
16942
16943 2002-10-13  Martin Baulig  <martin@gnome.org>
16944
16945         * debug-mono-symfile.c: Set version number to 28, include the
16946         signature in method names.
16947
16948 2002-10-13  Martin Baulig  <martin@gnome.org>
16949
16950         * debug-mono-symfile.h: Set version number to 27.
16951
16952 2002-10-11  Martin Baulig  <martin@gnome.org>
16953
16954         * gc.c: Don't register/unregister NULL pointers as disappearing links.
16955
16956 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16957
16958         * metadata.c, metadata.h: added helper function to allocate signatures.
16959
16960 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16961
16962         * icall.c: added internal call to get the location of machine.config.
16963
16964 2002-10-08  Martin Baulig  <martin@gnome.org>
16965
16966         * debug-mono-symfile.c: Ignore classes with a pending init for the
16967         moment.
16968
16969 2002-10-03  Dick Porter  <dick@ximian.com>
16970
16971         * threads.c: Freebsd pthread_t is a pointer
16972
16973 2002-10-03  Dick Porter  <dick@ximian.com>
16974
16975         * socket-io.c: Implemented GetHostName_internal
16976
16977 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16978
16979         * mono-config.c:
16980         (mono_config_parse_file): don't leak the text.
16981
16982 2002-10-02  Martin Baulig  <martin@gnome.org>
16983
16984         * debug-mono-symfile.c: Added support for methods.
16985
16986 2002-10-01  Martin Baulig  <martin@gnome.org>
16987
16988         * debug-mono-symfile.c: Don't emit methods and line numbers for
16989         the dynamic symbol file, just write the type table.  We can easily
16990         have an external helper program which creates a symbol file for an
16991         IL file.        
16992
16993 2002-10-01  Dick Porter  <dick@ximian.com>
16994
16995         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
16996         Only add the handle to the cleanup array when we're about to
16997         launch the thread.  Bug 31425 deadlocked when the test was run on
16998         mono under w32.
16999
17000 2002-10-01  Martin Baulig  <martin@gnome.org>
17001
17002         * debug-mono-symfile.c: Added support for properties.
17003
17004 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17005
17006         * reflection.c: unaligned store fix from Mark Crichton
17007         <crichton@gimp.org>.
17008
17009 2002-09-27  Martin Baulig  <martin@gnome.org>
17010
17011         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17012         New interncall.
17013
17014 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17015
17016         * assembly.h, assembly.c: use a sane API to hook into the assembly
17017         loading process instead of a useless special-purpouse hack
17018         (ngen needs a hook, too, for example).
17019
17020 2002-09-27  Dick Porter  <dick@ximian.com>
17021
17022         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17023         io-layer can set up some process handle info.  Not needed on w32,
17024         but doesn't hurt either.
17025
17026         * process.c: Pass the program name in the second parameter to
17027         CreateProcess, so the path is searched.  Include the working
17028         directory. Implemented process name, process enumeration, and some
17029         process detail internal calls.
17030         
17031         * icall.c: Added internal calls for process lookup, and some
17032         process details
17033
17034 2002-09-26  Martin Baulig  <martin@gnome.org>
17035
17036         * assembly.c (mono_install_open_assembly_hook): New global
17037         function to install a function to be invoked each time a new
17038         assembly is loaded.
17039         (mono_assembly_open): Run this callback function if set.
17040
17041         * debug-mono-symfile.c: Put back line numbers for the dynamic
17042         symbol file and also record the .il file as source file.  This
17043         allows us to install the temporary symbol file as `file.dbg' just
17044         like a compiler-generated one.
17045
17046 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17047
17048         * Corrected typo in gc.c (BOHEM vs BOEHM).
17049
17050 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17051
17052         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17053         GetProperties. Also avoid calling g_slist_length in GetProperties and
17054         GetMethods.
17055
17056 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17057
17058         * reflection.c: avoid unaligned stores (bug spotted by
17059         Mark Crichton  <crichton@gimp.org>).
17060
17061 2002-09-25  Martin Baulig  <martin@gnome.org>
17062
17063         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17064         instead of guint64 for addresses and added prologue/epilogue info.
17065
17066 2002-09-25  Martin Baulig  <martin@gnome.org>
17067
17068         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17069         store line number info.  For the dynamic symbol file, we only need
17070         to provide the JIT generated dynamic line number info for the dynamic
17071         symbol file.
17072
17073 2002-09-25  Martin Baulig  <martin@gnome.org>
17074
17075         * debug-mono-symfile.h: Incremented version number.
17076
17077 2002-09-24  Martin Baulig  <martin@gnome.org>
17078
17079         * class.c (mono_debugger_class_init_func): New global function
17080         pointer variable.
17081         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17082         call it.
17083
17084         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17085         function.  This is called via the mono_debugger_class_init_func
17086         hook to add all types to the dynamic type table.
17087         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17088         from its metadata token.
17089
17090         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17091         New interncall for the debugger.
17092
17093 2002-09-24  Nick Drochak <ndrochak@gol.com>
17094
17095         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17096         before using it in case it is null.
17097         
17098 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17099
17100         * metadata.c: allow custom modifiers in local var signatures
17101         (bug spotted by Zoltan Varga).
17102
17103 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17104
17105         * class.c: deal with the <Module> class that may have a NULL vtable.
17106         Eliminate warnings.
17107
17108 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17109
17110         * image.c, image.h: more strong name helpers.
17111         * monosn.c: more work: convert pem keys to cryptoapi format.
17112
17113 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17114
17115         * string-icalls.c: speedup IndexOf.
17116
17117 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17118
17119         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17120
17121 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17122
17123         * icall.c: cleanup: use mono_object_domain ().
17124
17125 2002-09-23  Martin Baulig  <martin@gnome.org>
17126
17127         * debug-mono-symfile.c: Improved type support.
17128
17129 2002-09-22  Martin Baulig  <martin@gnome.org>
17130
17131         * debug-mono-symfile.c: Added support for reference types and strings.
17132
17133 2002-09-22  Martin Baulig  <martin@gnome.org>
17134
17135         * debug-mono-symfile.c: Started to work on the type table.
17136
17137 2002-09-21  Martin Baulig  <martin@gnome.org>
17138
17139         * debug-mono-symfile.c: Largely reworked the symbol table format.
17140         The symbol table is now incrementally updated each time a new
17141         method is added.  We're now also using our own magic and version
17142         so that you don't need to recompile all your classes if the
17143         dynamic table changes.
17144         (mono_debug_update_mono_symbol_file): Removed.
17145         (mono_debug_symfile_add_method): New function to add a method.
17146
17147 2002-09-21  Martin Baulig  <martin@gnome.org>
17148
17149         * icall.c
17150         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17151         New interncall.
17152
17153         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17154         New interncall to get a method from its metadata token.
17155
17156 2002-09-21  Martin Baulig  <martin@gnome.org>
17157
17158         * debug-mono-symfile.c: Create type table.
17159
17160 2002-09-20  Martin Baulig  <martin@gnome.org>
17161
17162         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17163
17164 2002-09-20  Martin Baulig  <martin@gnome.org>
17165
17166         * debug-mono-symfile.c: Provide information about params and locals.
17167
17168 2002-09-20  Martin Baulig  <martin@gnome.org>
17169
17170         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17171         New interncall.
17172
17173         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17174         interncall to get a method from its metadata token.
17175
17176 2002-09-20  Martin Baulig  <martin@gnome.org>
17177
17178         * debug-mono-symfile.c: Added a few checks for method->header
17179         being non-NULL.  This should never happen, but for the moment
17180         let's use a g_warning() rather than a g_assert().
17181
17182 2002-09-19  Mark Crichton  <crichton@gimp.org>
17183
17184         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17185         even if support for it isn't present.  Added an #ifdef to fix this.
17186
17187         * socket-io.c: Added checks back for Solaris support.
17188
17189 2002-09-19  Martin Baulig  <martin@gnome.org>
17190
17191         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17192         changes in the symbol file format.
17193
17194 2002-09-18  Martin Baulig  <martin@gnome.org>
17195
17196         * debug-mono-symfile.c: Set version number to 21.
17197
17198 2002-09-18  Dick Porter  <dick@ximian.com>
17199
17200         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17201         on netbsd.  Fixes bug 30051.
17202
17203 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17204
17205         * reflection.c:
17206         (set_version_from_string): little fix.
17207
17208 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17209
17210         * monosn.c, Makefile.am: added strong name utility.
17211         * reflection.h, reflection.c: implemented delayed signing,
17212         locale, version and hash id assembly attributes.
17213
17214 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17215
17216         * loader.c, metadata.c: load param attributes in signatures.
17217
17218 2002-09-16  Martin Baulig  <martin@gnome.org>
17219
17220         * debug-mono-symfile.c: Added string table with all method names.
17221
17222 2002-09-14  Martin Baulig  <martin@gnome.org>
17223
17224         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17225         fast method lookup.
17226
17227 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17228
17229         * reflection.c: record the public key token of referenced assemblies.
17230
17231 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17232
17233         * image.c, image.h: added functions to get the strong name and the
17234         public key of an assembly.
17235         * pedump.c: use them.
17236
17237 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17238
17239         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17240
17241 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17242
17243         * marshal.c (mono_marshal_get_managed_wrapper): Added
17244         MONO_TYPE_BOOLEAN 
17245
17246 2002-09-11  Martin Baulig  <martin@gnome.org>
17247
17248         * gc.c: Call GC_unregister_disappearing_link() on all links when
17249         finalizing them, this is necessary to aviod a crash in boehm's
17250         finalize handler.
17251
17252 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17253
17254         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17255         nick@chemlab.org.
17256
17257 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17258
17259         * icall.c: implemented MonoType::Module.
17260         * reflection.c, reflection.h: mono_module_get_object () from
17261         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17262
17263 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17264
17265         * icall.c: ignore overridden methods in GetMethods ().
17266         Fix for FieldInfo::SetValue().
17267         * object.c: handle float/double in runtime invoke.
17268
17269 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17270
17271         * object.c: allow a constructor to be called again on an object.
17272
17273 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17274
17275         * class.h, class.c: move field layout code to it's own function and
17276         export it. Get an interface id earlier. Move fields in MonoClass
17277         so they are more cache friendly and align the bitfields.
17278         * loader.c: temporary handle get_param_names() for a runtime method.
17279         * reflection.c, reflection.h: more code to handle runtime creation of
17280         types.
17281
17282 2002-09-09  Martin Baulig  <martin@gnome.org>
17283
17284         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17285         signature with the pinvoke field being set for the actual call.
17286
17287 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17288
17289         * icall.c: removed some unused icalls. Start of map of glib charsets
17290         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17291
17292 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17293
17294         * debug-helpers.c: break infinite loop (found and fixed by
17295         Holger Arnold <harnold@gmx.de>).
17296
17297 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17298
17299         * icall.c: target may be null in create_delegate.
17300
17301 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17302
17303         * marshal.c: handle a boolean return type.
17304
17305 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17306
17307         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17308
17309 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17310
17311         * gc.c: fix weakreferences.
17312
17313 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17314
17315         * icall.c: added icall to get default codepage.
17316
17317 2002-09-03  Dick Porter  <dick@ximian.com>
17318
17319         * threads.h: 
17320         * threads.c: Use MonoThread instead of MonoObject where
17321         apropriate.
17322
17323         Store running thread objects in a hash table, so that we have all
17324         the info to hand when waiting for them to finish
17325         (means we don't need OpenThread() any more, so mingw builds should
17326         be fully functional again.)
17327
17328         * verify.c:
17329         * object.h: Added thread ID to MonoThread
17330
17331 2002-09-03  Martin Baulig  <martin@gnome.org>
17332
17333         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17334
17335 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17336
17337         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17338
17339 2002-09-03  Martin Baulig  <martin@gnome.org>
17340
17341         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17342         argument to store the end address of the disassembled instruction.
17343
17344         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17345         here from debug-symfile.h.
17346         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17347         JIT into this struct.
17348         (MonoSymbolFile): Added `char *image_file' field.
17349         (MonoDebugGetMethodFunc): Removed.
17350         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17351         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17352         (mono_debug_find_method): New method.
17353
17354         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17355         create a full symbol file.
17356         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17357         and static symbol files.
17358         (mono_debug_find_method): The symbol file keeps an internal method hash,
17359         call this to get a MonoDebugMethodInfo from a MonoMethod.
17360
17361         * debug-symfile.[ch]: Removed.
17362
17363 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17364
17365         * image.c (do_mono_image_open): Remove linker version check.
17366
17367 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17368
17369         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17370         wrappers for instance methods.
17371         
17372 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17373
17374         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17375
17376 2002-08-28  Dick Porter  <dick@ximian.com>
17377
17378         * Makefile.am: Export HOST_CC for w32 builds
17379
17380 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17381
17382         * file-io.c process.c: MonoString are null terminated, no
17383         need for mono_string_to_utf16() anymore.
17384
17385 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17386
17387         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17388
17389 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17390
17391         * icall.c, reflection.h: speedup System.MonoType.
17392
17393 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17394
17395         * reflection.c: allow null as the value of a string argument in
17396         custom attributes constructors.
17397
17398 2002-08-27  Martin Baulig  <martin@gnome.org>
17399
17400         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17401         `trampoline_address' field.
17402
17403 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17404
17405         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17406         check (fixes bug #29486) 
17407
17408 2002-08-27  Martin Baulig  <martin@gnome.org>
17409
17410         * debug-mono-symfile.c: Changed the file format in a way that allows us
17411         open it read-only and to use a specially malloced area for all the
17412         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17413         debugging IL code and there is no MCS generated symbol file for it.
17414
17415 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17416
17417         * object.c: added a define for a good string and array
17418         creation speedup (not enabled by default because we need to deal with
17419         the synch stuff).
17420
17421 2002-08-26  Martin Baulig  <martin@gnome.org>
17422
17423         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17424         function to create a dynamic symbol file.  This is used by the
17425         debugger to create a symbol file for IL code on-the-fly.
17426
17427 2002-08-26  Martin Baulig  <martin@gnome.org>
17428
17429         * loader.c (mono_lookup_pinvoke_call): Include the error message
17430         from g_module_error() in the error message.
17431
17432 2002-08-24  Martin Baulig  <martin@gnome.org>
17433
17434         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17435         function to update the symbol file.  The symbol file is mmap()ed
17436         writable, but private.  This allows us to install the symbol file
17437         together with the assembly.
17438
17439 2002-08-24  Martin Baulig  <martin@gnome.org>
17440
17441         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17442         but they can read the new symbol file format which mcs is now creating.
17443
17444         * debug-symfile.c (mono_debug_find_source_location): Moved to
17445         debug-mono-symfile.c; this is now operating on the new symbol file.
17446
17447 2002-08-23  Martin Baulig  <martin@gnome.org>
17448
17449         * debug-helpers.c (mono_method_desc_from_method): New function to get
17450         a MonoMethodDesc from a MonoMethod.
17451
17452 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17453
17454         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17455         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17456
17457 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17458
17459         * string-icalls.[ch]: make helper methods static.
17460
17461 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17462
17463         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17464         types to it and to SetValueInternal.
17465
17466         * object.c: Moved handle_enum label to its proper place. This was the
17467         f... bug! ;-)
17468
17469         This time i compiled mcs and gtk-sharp and they both work.
17470
17471 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17472
17473         * icall.c: reverted partially my previous patch until 
17474         object.c:set_value handles enums correcly.
17475
17476 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17477
17478         * icall.c:
17479         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17480         (ves_icall_System_Environment_get_MachineName): removed warning when
17481         compiling under cygwin.
17482
17483 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17484
17485         * object.c: fixed field_get_value() for reference types.
17486
17487 2002-08-22  Dick Porter  <dick@ximian.com>
17488
17489         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17490         Don't free a buffer while it's still needed.  Patch from Jonathan
17491         Liger <Jonathan.liger@wanadoo.fr>
17492
17493 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17494
17495         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17496         internal call.
17497
17498 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17499
17500         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17501         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17502
17503         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17504         we call unmanaged code which throws exceptions.
17505
17506 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17507
17508         * appdomain.h: added per-domain entry_assembly.
17509         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17510         arguments.
17511         * icall.c: Assembly::GetEntryAssembly icall.
17512         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17513         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17514
17515 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17516
17517         * appdomain.h, gc.c: added mono_domain_finalize ().
17518
17519 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17520
17521         * object.c:
17522         (mono_print_unhandled_exception): changed g_warning by g_printerr
17523         because g_log has a 1024 characters limit (yeah, i got a big stack
17524         trace). Don't print exception name, that should be in ToString 
17525         returned string.
17526
17527 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17528
17529         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17530         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17531
17532 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17533
17534         * object.c:
17535         (mono_print_unhandled_exception): after previous commit, i realized
17536         that MS calls ToString on the exception. I changed this function to
17537         do that. This way we get stack_trace for free.
17538
17539 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17540
17541         * object.c:
17542         (mono_print_unhandled_exception): invoke Message property instead of
17543         getting 'message' field from Exception. Don't allocate memory for
17544         'trace' and 'message' if not needed.
17545
17546 2002-08-18  Dick Porter  <dick@ximian.com>
17547
17548         * unicode.c: Fix asserts to match Encoder.cs checks
17549
17550 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17551
17552         * marshal.c: fix unaligned store issue and a few wrong
17553         opcode argument types.
17554
17555 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17556
17557         * icall.c: added GetUninitializedObjectInternal internal call.
17558
17559 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17560
17561         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17562         to the right domain.
17563
17564 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17565
17566         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17567
17568         * class.c (class_compute_field_layout): set blittable to false for Strings
17569
17570         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17571
17572 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17573
17574         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17575         first chunk of code to create types at runtime. Code to
17576         handle ReflectedType/DeclaringType. Make reflection handles
17577         domain specific.
17578
17579 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17580
17581         * class.c: set correct name in arrays.
17582
17583 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17584
17585         * appdomain.c (mono_domain_transfer_object): make it work with
17586         valuetypes. bug fixes.
17587
17588 2002-08-12  Dick Porter  <dick@ximian.com>
17589
17590         * object.h: Rename some parameters to avoid c++ keywords (Patch
17591         from Joseph Wenninger <kde@jowenn.at>)
17592
17593 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17594
17595         * icall.c: added icall to implement Assembly.GetFile*.
17596
17597 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17598
17599         * reflection.h, reflection.c: code to embed managed resources.
17600
17601 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17602
17603         * class.c: move all the type size stuff into
17604         class_compute_field_layout().
17605
17606 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17607
17608         * class.c: ensure enums have always the correct instance size.
17609         * unicode.c: remove wrong assert.
17610
17611 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17612
17613         * assembly.c: fix mem corruption issue.
17614         * image.h, image.c: added mono_image_get_resource () to access
17615         managed resources.
17616         * icall.c: implemented Assembly.EntryPoint property and some
17617         Managed Resources related internalcalls.
17618
17619
17620 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17621
17622         * image.c, image.h: impemented mono_image_get_entry_point ().
17623         * appdomain.c: use mono_image_get_entry_point.
17624
17625 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17626
17627         * reflection.c: support the object type argument when loading
17628         custom attributes.
17629
17630 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17631
17632         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17633         String as return type.
17634
17635 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17636
17637         * reflection.c: fix encoding of named args for custom attrs to match
17638         the ms implementation. Read them back when instantiating custom
17639         attributes.
17640
17641 2002-08-02  Radek Doulik  <rodo@ximian.com>
17642
17643         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17644         by Dietmar as quick fix
17645         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17646         16 as stack size, used on more places as quick fix before Dietmar
17647         will fix it properly
17648
17649 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17650
17651         * object.h, object.c: added accessors for fields and properties.
17652
17653 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17654
17655         * class.c, class.h: made mono_class_get_field_from_name ()
17656         loop on parent types.
17657         Added mono_class_get_property_from_name ().
17658
17659 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17660
17661         * class.c, class.h: move the code to setup the type vtable in its own
17662         function so that it can be reused also for types created at runtime.
17663         Eliminate the "class" identifier from the header file.
17664         * reflection.c: setup the vtable for enums so that we can create
17665         objects for use in SetConstant ().
17666
17667 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17668
17669         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17670         instead of the delegate itself as this pointer (bug #28383)
17671
17672 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17673
17674         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17675         conversions.
17676
17677 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17678
17679         * loader.c: don't set the pinvoke bit on icalls.
17680
17681 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17682
17683         * debug-helpers.c (mono_method_full_name): only print a number to
17684         indicate wrapper type (so that the output is more readable in traces).
17685
17686 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17687
17688         * class.c (mono_class_init): include method override patch from Paolo
17689
17690 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17691
17692         * icall.c: fixed GetTypeCode().
17693
17694 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17695
17696         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17697         use real delegate invoke function to make it work with multicast
17698         delegates (fix bug# 28291).
17699
17700 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17701
17702         * object.c: load constant strings.
17703
17704 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17705
17706         * reflection.c: no magic numbers.
17707         * tabledefs.h: security action enum.
17708
17709 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17710
17711         * assembly.c: fix possible memory corruption.
17712
17713 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17714
17715         * reflection.h, reflection.c: added support for linking resources.
17716         * verify.c: check we have an updated corlib.
17717
17718 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17719
17720         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17721         string arrays.
17722         (mono_marshal_string_array): null terminate unmanaged string arrays.
17723         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17724
17725 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17726
17727         * icall.c: Type.GetType () can now return also types from the
17728         calling assembly.
17729
17730 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17731
17732         * loader.h, loader.c: stack walking support.
17733         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17734         GetCallingAssembly.
17735
17736 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17737
17738         * marshal.c: added optimisations for blittable types 
17739
17740         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17741         (mono_class_setup_mono_type): set blittable attribute for single
17742         and double.
17743
17744         * marshal.c (mono_string_utf8_to_builder): impl.
17745         (mono_string_builder_to_utf8): impl.
17746         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17747
17748 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17749
17750         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17751         (mono_marshal_get_managed_wrapper): impl. byref types
17752
17753 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17754
17755         * icall.c:
17756         (search_method): don't display debug message. 
17757
17758 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17759
17760         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17761
17762 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17763
17764         * appdomain.c: set the missing filename when throwing exception.
17765
17766 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17767
17768         * metadata.c (mono_type_size): code cleanup
17769         (mono_type_stack_size): removed some test code
17770
17771 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17772
17773         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17774         mono_get_exception_file_not_found now.
17775
17776         * exception.c (mono_exception_from_name_two_strings): New version
17777         that will call a constructor with two string arguments. 
17778         (mono_get_exception_file_not_found): New helper routine, used to
17779         report file-not-found errors.
17780
17781 2002-07-20  Dick Porter  <dick@ximian.com>
17782
17783         * process.h:
17784         * process.c: Pass file handles to CreateProcess
17785         
17786         * icall.c:
17787         * file-io.h:
17788         * file-io.c: Implemented CreatePipe
17789
17790 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17791
17792         * metadata.c (mono_get_param_info): set alignment for value types
17793
17794 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17795
17796         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17797         Constify mono_domain_assembly_open().
17798         * loader.c: handle null namespace in icalls.
17799
17800 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17801
17802         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17803         (emit_str_to_ptr_conv): marshal object as structs
17804
17805         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17806
17807         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17808
17809 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17810
17811         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17812         (mono_marshal_get_native_wrapper): we an now return value types
17813
17814 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17815
17816         * verify.c: more checks implemented.
17817
17818 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17819
17820         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17821         (fix bug #27695)
17822         (mono_marshal_get_native_wrapper): allow byref arguments
17823         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17824         impl. PtrToStringXXX methods
17825         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17826         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17827         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17828         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17829         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17830
17831 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17832
17833         * reflection.c: fix buglet in parsing an assembly name.
17834
17835 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17836
17837         * marshal.c (emit_ptr_to_str_conv): first impl.
17838
17839 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17840
17841         * object.c, class.h: cache the vtable in the class as suggested by
17842         vargaz@freemail.hu (Zoltan Varga).
17843
17844 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17845
17846         * class.h, loader.c: added mono_field_from_token().
17847         * verify.c: first cut of type checking code.
17848
17849 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17850
17851         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17852
17853 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17854
17855         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17856         (fix bug #27782)
17857         (mono_marshal_get_remoting_invoke): impl.
17858         (mono_delegate_begin_invoke): impl.
17859         (mono_mb_emit_save_args): impl.
17860         (mono_delegate_end_invoke): impl.
17861         (mono_marshal_get_delegate_begin_invoke):
17862         (mono_marshal_get_delegate_end_invoke):
17863         (mono_marshal_get_delegate_invoke): generate a special name for
17864         those methods (including the signature) and associate them whith
17865         the delegate class. 
17866
17867 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17868
17869         * reflection.[ch]: 
17870         (mono_reflection_type_from_name): now it has a MonoImage parameter
17871         which is used as the default image to search the type in. If the image
17872         is NULL or getting the type from it fails, it defaults to corlib.
17873
17874         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17875         new parameter.
17876
17877 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17878
17879         * reflection.c: update the parameter table index.
17880
17881 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17882
17883         * domain.c: don't include the mark byte in the string hash.
17884
17885 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17886
17887         * icall.cs: icall for Type.GetTypeCode ().
17888         * verify: a couple of fixes and disabled local initialization checks.
17889
17890 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
17891
17892         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
17893
17894         * debug-helpers.c (mono_method_full_name): print the type of the
17895         runtime wrapper
17896
17897         * metadata.c (mono_signature_hash): a hash function for signatures
17898         (mono_signature_hash): better hash algorithm
17899
17900         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
17901
17902         * debug-helpers.c (mono_method_full_name): this can now generate
17903         method names with signatures
17904
17905         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
17906         method dont have this pointers.
17907
17908 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17909
17910         * reflection.c: fixup typebuilder tokens.
17911         * image.c: fix buglet.
17912         * marshal.h: remove whitespace.
17913         * metadata.h, metadata.c: reinstate code that was removed.
17914         * verify.c: handle catch directives and fix another couple of bugs.
17915
17916 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
17917
17918         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
17919         (mono_marshal_get_native_wrapper): make it comp. with the old code
17920         (mono_marshal_get_native_wrapper): support boolean
17921         (mono_marshal_get_managed_wrapper): support more types
17922
17923 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
17924
17925         * class.c (class_compute_field_layout): compute class->blittable attribute.
17926
17927 2002-07-09  Dick Porter  <dick@ximian.com>
17928
17929         * threads.c: Make the thread cleaning up cope with threads that
17930         call ExitThread()
17931
17932 2002-07-08  Radek Doulik  <rodo@ximian.com>
17933
17934         * reflection.c (method_encode_code): use non-translated values to
17935         compute finally_start, this fixes exception handling on ppc, yay!
17936
17937         * decimal.h (struct signscale): fix endianess
17938
17939 2002-07-07  Radek Doulik  <rodo@ximian.com>
17940
17941         * reflection.c: swap box_val and not val
17942
17943 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17944
17945         * reflection.c, reflection.h: handle full assembly info in type name.
17946         Handle Type arguments when loading custom attributes.
17947         * icall.c: updated to use new mono_reflection_type_from_name () method.
17948
17949 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17950
17951         * loader.c:
17952         (method_from_memberref): also print assembly name when method not found.
17953
17954 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17955
17956         * icall.c:
17957         (ves_icall_TypeGetProperties): fixed bug #27473. 
17958
17959 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17960
17961         * reflection.c: display image name and token when cannot find the
17962         .ctor for an attribute.
17963
17964 2002-07-05  Martin Baulig  <martin@gnome.org>
17965
17966         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
17967
17968 2002-07-04  Dick Porter  <dick@ximian.com>
17969
17970         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
17971         compile on mingw.  This will cause mingw builds to not wait for
17972         subthreads to terminate after the main thread does.  I've lodged a
17973         bug with the mingw developers for them to wrap OpenThread().
17974
17975 2002-07-03  Dick Porter  <dick@ximian.com>
17976
17977         * threads.c: Store thread IDs instead of handles, because
17978         GetCurrentThread() returns a pseudohandle and therefore stores
17979         useless values.  mono_thread_cleanup() continues checking the
17980         array of threads until it is empty, to cope with subthreads
17981         spawning new threads after the main thread has finished.
17982
17983         * profiler.h:
17984         * profiler.c:
17985         * profiler-private.h: Pass the thread ID to thread profiler
17986         functions, instead of a handle
17987
17988 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17989
17990         * verify.c: fixes to make it more usable.
17991         * pedump.c: added --verify code to verify IL code in an assembly.
17992
17993 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17994
17995         * reflection.c: turn errors into warnings to allow compiling corlib.
17996
17997 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17998
17999         * reflection.c: add special cases to compile corlib.
18000
18001 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18002
18003         * reflection.c: handle properties with only a set method.
18004
18005 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18006
18007         * opcodes.h: add enum with opcodes in opval order.
18008
18009 2002-07-01  Dick Porter  <dick@ximian.com>
18010         
18011         * object.h:
18012         * object.c (mono_runtime_run_main): Removed unneeded argument
18013
18014 2002-06-28  Martin Baulig  <martin@gnome.org>
18015
18016         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18017
18018 2002-06-27  Dick Porter  <dick@ximian.com>
18019
18020         * threads.c: Store the handle in both the parent thread and in the
18021         subthread, to minimise the time between starting a new thread and
18022         storing its ID.
18023
18024 2002-06-26  Dick Porter  <dick@ximian.com>
18025
18026         * appdomain.c (mono_runtime_cleanup): Close the socket library
18027         after all the threads have finished, not before
18028
18029 2002-06-26  Martin Baulig  <martin@gnome.org>
18030
18031         * debug-symfile.c (mono_debug_find_source_location): Added
18032         `guint32 *line_number' argument.  If it's not NULL, store the line number
18033         there and return the file name without the line number.
18034
18035 2002-06-25  Dick Porter  <dick@ximian.com>
18036
18037         * icall.c:
18038         * process.h:
18039         * process.c: Process forking and other support functions
18040
18041 2002-06-25  Dick Porter  <dick@ximian.com>
18042
18043         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18044         things dont happen when the image is closed.
18045         (mono_image_lookup_resource): Walk the resource section looking
18046         for a particular entry
18047
18048         * cil-coff.h: PE resource section decoding
18049
18050 2002-06-25  Dick Porter  <dick@ximian.com>
18051         
18052         * assembly.h:
18053         * assembly.c: 
18054         (mono_assembly_foreach): Accessor functions to walk the list of
18055         loaded assemblies
18056         (mono_assembly_set_main):
18057         (mono_assembly_get_main): Process methods need to know which
18058         assembly is the "main" one
18059
18060         * object.c (mono_runtime_run_main): Record the main assembly
18061
18062         * debug-helpers.c: Fix typo
18063
18064 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18065
18066         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18067         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18068
18069 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18070
18071         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18072
18073 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18074
18075         * image.c (do_mono_image_open): Initialize reference count,
18076         otherwise we leak the MonoImage.
18077
18078 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18079
18080         * reflection.c: small tweak to handle self-hosting.
18081
18082 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18083
18084         * reflection.c: fix type name parse code.
18085
18086 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18087
18088         * reflection.c: break out of the loop.
18089         * image.c: special case corlib.
18090
18091 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18092
18093         * reflection.c: add all the custom attrs at the end to ensure the
18094         ctors have been properly initialized when the attributes are defined
18095         in the current assembly.
18096
18097 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18098
18099         * reflection.c: handle correctly multiple-nested types.
18100
18101 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18102
18103         * row-indexes.h: fix typos.
18104         * reflection.c: adjust for typos and fix method_def_or_ref
18105         encoding in MethodImpl table.
18106
18107 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18108
18109         * reflection.c: fix entry point patching (thanks Serge!).
18110
18111 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18112
18113         * verify.c: add check for System.Exception
18114
18115 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18116
18117         * image.c, class.c: minifix for code just c&p'ed.
18118         * reflection.c: warning fix.
18119         * object.h, loader.h, domain.c: load also StringBuilder.
18120
18121 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18122
18123         * marshal.h, marshal.c: some support code to handle complex marshaling.
18124
18125 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18126
18127         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18128         Better signatures with vtable error dump.
18129
18130 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18131
18132         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18133
18134 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18135
18136         * icall.c (ves_icall_Type_GetField): impl.
18137
18138 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18139
18140         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18141         to retrieve a marshal description blob for a field or param.
18142
18143 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18144
18145         * reflection.h, reflection.c: change order of nested type emission
18146         to avoid table corruption. The NestedTypes table is sorted.
18147         * icall.c: change order of GetConstructor results to workaround mcs bug.
18148
18149 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18150
18151         * reflection.h, reflection.c: handle field and param marshal
18152         information.
18153
18154 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18155
18156         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18157
18158 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18159
18160         * reflection.c: fix call convention.
18161
18162 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18163
18164         * reflection.h, reflection.c: mono_image_get_memberref_token()
18165         takes a type instead of a class, now. Added
18166         mono_image_get_array_token() to create tokens for the special
18167         multi-dim array methods.
18168
18169 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18170
18171         * assembly.c: handle modules (no assembly table). Split
18172         loading references in its own function.
18173         * class.c: handle moduleref resolution scope.
18174         * image.c, image.h: cache module name in image.
18175
18176 2002-06-07  Martin Baulig  <martin@gnome.org>
18177
18178         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18179         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18180
18181 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18182
18183         * icall.c: more signature fixes that used uint instead of int.
18184
18185 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18186
18187         * reflection.c: fixed signature of field refs.
18188
18189 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18190
18191         * class.c, reflection.c: handle typerefs of nested types
18192         (both on read and when writing files).
18193
18194 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18195
18196         * icall.c: fix method signatures that tried to workaround the previous
18197         typo, d'oh!
18198
18199 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18200
18201         * debug-helpers.c: fix typo.
18202
18203 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18204
18205         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18206         rewrote the PE/COFF writing code (our programs are understood by the
18207         ms runtime, now).
18208
18209 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18210
18211         * gc.c, gc.h, icall.c: weakreference support.
18212
18213 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18214
18215         * Makefile.am, mono-config.c: use $(sysconfdir).
18216
18217 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18218
18219         * icall.c: changed default precision of Double.ToString() to 15.
18220         Fixed memory leak. Unified with Single.ToString.
18221
18222 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18223
18224         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18225
18226 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18227
18228         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18229         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18230         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18231         and myself.
18232
18233 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18234
18235         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18236
18237 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18238
18239         * reflection.c, socket-io.c: more compilation fixes.
18240
18241 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18242
18243         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18244         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18245         unicode.c: warning and compiler compatibility fixes.
18246
18247 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18248
18249         * class.h, metadata.c: fixed warnings/compilation errors.
18250
18251 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18252
18253         * Makefile.am, mono-config.c, mono-config.h: configuration file
18254         support routines.
18255         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18256         config file. Export methods to insert and lookup mappings.
18257
18258 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18259
18260         * reflection.c: handle types and boxed objects in custom attr
18261         constructors.
18262
18263 2002-05-30  Martin Baulig  <martin@gnome.org>
18264
18265         * debug-symfile.c
18266         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18267
18268 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18269
18270         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18271         to lookup the implmap row for a P/Invoke method.
18272         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18273         P/Invoke method from the runtime on an as needed basis.
18274
18275 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18276
18277         * metadata.c (mono_metadata_parse_signature): impl.
18278
18279 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18280
18281         * class.c: handle .pack directive.
18282
18283 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18284
18285         * object.c: initialize static fields with RVA data.
18286
18287 2002-05-25  Martin Baulig  <martin@gnome.org>
18288
18289         * debug-symfile.c
18290         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18291
18292 2002-05-24  Martin Baulig  <martin@gnome.org>
18293
18294         * debug-symfile.c
18295         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18296         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18297         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18298
18299 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18300
18301         * object.c: special case string ctros in invoke.
18302         * gc.c: silly whitespace changes.
18303
18304 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18305
18306         * threadpool.[ch]: impl. a threadpool that can
18307         be used by mint and mono.
18308
18309 2002-05-22  Martin Baulig  <martin@gnome.org>
18310
18311         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18312         The first argument is now a `MonoReflectionModuleBuilder *', the return
18313         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18314         `methods' field to get the method builder.  The `token' argument is the
18315         unfixed token.
18316
18317         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18318         invalid characters instead of g_assert_not_reached()ing.  This seems
18319         to be the behaviour of mscorlib.
18320
18321 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18322
18323         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18324         Hestilow to fix bug #25104
18325
18326 2002-05-21  Martin Baulig  <martin@gnome.org>
18327
18328         * debug-symfile.c (mono_debug_find_source_location): New function.
18329         Looks up an IL offset in the line number table and returns the source
18330         location as a string.
18331
18332 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18333
18334         * icall.c:
18335         (mono_double_ToStringImpl): changed %f by %g until we have something
18336         better.
18337
18338 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18339
18340         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18341         parameters first in C#.
18342
18343 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18344
18345         * icall.c, reflection.h: added icall to get info about an event.
18346
18347 2002-05-20  Radek Doulik  <rodo@ximian.com>
18348
18349         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18350         endian
18351         (mono_value_box): don't use memcpy for small sizes on
18352         architectures with unaligned access
18353
18354 2002-05-20  Martin Baulig  <martin@gnome.org>
18355
18356         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18357         if `tb->parent == NULL'.
18358         (mono_reflection_create_internal_class): New function.  This is
18359         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18360         for enum types.
18361
18362         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18363         New interncall.
18364
18365 2002-05-19  Martin Baulig  <martin@gnome.org>
18366
18367         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18368         argument to get the length, don't default to the array length.
18369
18370 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18371
18372         * assembly.c (mono_assembly_setrootdir): New function used to
18373         override the MONO_ASSEMBLIES directory.
18374
18375 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18376
18377         * icall.c: ValueType_GetHashCode() initialize local var.
18378
18379 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18380
18381         * reflection.c: sort custom attributes table.
18382
18383 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18384
18385         * reflection.c: support named args in custom attributes (write support).
18386
18387 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18388
18389         * reflection.c: fix finally position calculation.
18390
18391 2002-05-15  Radek Doulik  <rodo@ximian.com>
18392
18393         * reflection.c: fixed endianess at many places
18394
18395         * icall.c (ves_icall_InitializeArray): comment out debug msg
18396
18397 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18398
18399         * object.c (mono_unhandled_exception): new function to handle
18400         unhandled exceptions.
18401         (mono_unhandled_exception): call the UnhandledException event.
18402         (mono_runtime_delegate_invoke): impl.
18403
18404 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18405
18406         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18407         returns the RVA, not the direct pointer to the data. Handle the case
18408         when the class size is fixed.
18409
18410 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18411
18412         * reflection.c: fix some endianess issues.
18413
18414 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18415
18416         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18417
18418         * threads.c (mono_thread_init): added a callback which is invoked
18419         at thread start.
18420
18421 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18422         
18423         * icall.c: make GetHashCode return non-negative values.
18424
18425 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18426
18427         * object.c, icall.c, gc.c: revert to address-based hashcode.
18428
18429 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18430
18431         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18432
18433 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18434
18435         * icall.c, class.c: special case <Module>.
18436
18437 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18438
18439         * icall.c: fix bug in GetNow().
18440
18441 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18442
18443         * object.c (mono_runtime_class_init): make sure that we call all
18444         static class constructors.
18445
18446 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18447
18448         * reflection.c: sort methodsemantics table.
18449
18450 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18451
18452         * reflection.h, reflection.c: honour init locals setting.
18453
18454 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18455
18456         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18457
18458 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18459
18460         * reflection.c: support ContructorBuilders in attribute blob creation.
18461
18462 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18463
18464         * reflection.c: some changes to build a binary that can be run
18465         directly in windows.
18466
18467 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18468
18469         * loader.c: print a big message when an icall can't be found.
18470
18471 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18472
18473         * string-icalls.c: fix bug 24248.
18474
18475 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18476
18477         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18478         icall.c, reflection.h: separate assembly loading by pathname and by
18479         assembly name. Use the MONO_PATH env var to search for assemblies.
18480
18481 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18482
18483         * assembly.c, image.h: add some support for assemblies
18484         with multiple modules.
18485         * class.c, class.h: export mono_class_from_typeref().
18486         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18487         instead.
18488
18489 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18490
18491         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18492         documentation says (the ECMA one is correct).
18493
18494 2002-05-02  Dick Porter  <dick@ximian.com>
18495
18496         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18497         Don't name the synchronisation mutex.
18498
18499 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18500
18501         * rand.c
18502         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18503         Make the prototypes match.
18504         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18505         Same.
18506
18507         * icall.c
18508         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18509         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18510         all systems have tm.tm_zone, so use strftime() with %Z to print
18511         the timezone abreviation into a temp string.
18512
18513         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18514         rather than mono_array_addr() on a MonoString on Big Endian
18515         machines.
18516
18517 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18518
18519         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18520         fix bug 24041
18521
18522 2002-04-30  Dick Porter  <dick@ximian.com>
18523
18524         * socket-io.c: Cope with SOCKET being an integer rather than a
18525         pointer now.
18526
18527         * threads.c: Added Thread_free_internal, to deal with thread
18528         handle cleanup.  Moved calls to handle_store() and handle_remove()
18529         to start_wrapper(), so each can only be called once.  Allocate
18530         synchronisation blocks with GC_malloc(), and use GC finalisation
18531         to close the handles.
18532
18533         * icall.c: added System.Threading.Thread::Thread_free_internal
18534
18535 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18536
18537         * icall.c: support Environment.Exit, CommandLineArgs().
18538
18539 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18540
18541         * object.c, object.h: added mono_runtime_run_main () and
18542         mono_runtime_get_main_args () for use in System.Environment.
18543
18544 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18545
18546         * gc.c: fix thinko, enable actual finalization since the jit is now
18547         fixed.
18548
18549 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18550
18551         * gc.c, object.c: take into account that an object may be offset wrt the address
18552         returned by GC_malloc().
18553
18554 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18555
18556         * image.c: handle files without entries in the assembly table (modules).
18557
18558 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18559
18560         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18561         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18562         allowed to be null when it's System.Object class setup.
18563
18564 2002-04-27  Martin Baulig  <martin@gnome.org>
18565
18566         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18567         if `tb->parent == NULL' rather than crashing.
18568
18569 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18570
18571         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18572         calling acos() where asin() should have been called.
18573
18574 2002-04-26  Martin Baulig  <martin@gnome.org>
18575
18576         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18577         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18578         there's a subdirectory called `System', but we don't want to read that
18579         subdirectory as an assembly.
18580
18581 2002-04-25  Martin Baulig  <martin@gnome.org>
18582
18583         * debug-symfile.c: Reflect latest MonoString changes.
18584
18585 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18586
18587         * rand.c, rand.h: instance method icalls need to have an explicit
18588         this pointer as first argument in the C implementation.
18589
18590 2002-04-25  Nick Drochak <ndrochak@gol.com>
18591
18592         * icall.c: Fix typo in map for GetNonZeroBytes
18593
18594 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18595
18596         * string-icalls.c : String does now passes unit tests without any 
18597         errors, the following changes has been made:
18598         
18599         Implemented replace methods.
18600         Renaming of methods to (try) follow the standard.
18601         Fixed compare ordinal
18602         Made all memory allocated directly to function instead of via icall function.
18603         Small performance fix in is_in_array function
18604                         
18605  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18606
18607         c (mono_string_Internal_ctor_charp_int_int):
18608         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18609         sindex < 0, throw ArgumentOutOfRangeException instead of
18610         ArgumentNullException.
18611
18612         Added new check for length == 0, however
18613         I need to make it return String.Empty from the C code.
18614         
18615         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18616         that calculate the length for us here.
18617         
18618         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18619         mono_string_new_utf16 with mono_string_new, since value is utf8.
18620
18621 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18622
18623         * object.c: register the object for finalization if needed.
18624         Allocate one more char in the string for the terminating 0 char.
18625
18626 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18627
18628         * class.c, class.h, image.c: check if a type implemenst a destructor.
18629         Use the proper key for array class lookups.
18630         * icall.c: register the icalls in the System.GC class.
18631         * gc.c, gc.h: GC-related functions and icalls.
18632
18633 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18634
18635         * icall.c:
18636         * socket-io.c:
18637         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18638         changed a couple of free () by g_free ().
18639
18640         * decimal.c: one-liner in the comments for decimal2string ().
18641
18642 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18643
18644         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18645
18646 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18647
18648         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18649         * object.c (mono_runtime_invoke_array) : handle null in params
18650
18651 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18652
18653         * string-icalls.c: fixed bug in split (one off bug)
18654
18655 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18656
18657         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18658         * icalls.c: added String::Equals as internal method
18659
18660 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18661
18662         * threads.c: fixed bug in the double interlocked functions
18663
18664 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18665
18666         * threads.c: implemented all of the new interlocked icalls.
18667         * string-icalls.c: fix a bug in insert.
18668         * icalls.c: added the icalls for interlocked, removed old string functions.
18669         
18670 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18671
18672         * loader.c: fix off-by-one error when reading argument names.
18673
18674 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18675
18676         * profiler.c: win32 counter implementation (untested).
18677         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18678         (the latter needs testing and more complete impl. from win32 folks).
18679
18680 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18681
18682         * object.c: mono_array_new_full workaround mono_array_class_get
18683         problem.
18684
18685 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18686
18687         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18688         * object.h (mono_string_chars): Changed casting type.
18689
18690 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18691
18692         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18693                            method signatures to use gunichar2 instead of gint16.
18694
18695 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18696
18697         * object.h, object.c: domain-specific versions of mono_object_new and
18698         mono_array_new.
18699
18700 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18701
18702         * object.c: changed String layout
18703
18704         * string-icalls.c (mono_string_Internal_ctor_chara): added
18705         internal string constructors.
18706
18707 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18708
18709         * threads.c: pass 'this' to the thread start routine.
18710
18711 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18712
18713         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18714         InternalCompareStr don't call twice mono_string_cmp_char for the last
18715         character. Improved performance in mono_string_cmp_char.
18716
18717 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18718
18719         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18720         code into its own library: libmonoruntime.
18721
18722 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18723
18724         * object.h, object.c: changed array format so that szarrays do not
18725         require a bounds structure.
18726         * icall.c, appdomain.c: support for new szarray format.
18727
18728 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18729
18730         * metadata.c: compare also the retuns type when comparing signatures:
18731         we didn't do this as an optimization since really overloaded methods
18732         must differ also in the arguments, but this doesn't work with
18733         low-level IL code (or when using explicit conversion operators: see
18734         bug#23498 for an example).
18735
18736 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18737
18738         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18739
18740 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18741
18742         * icall.c: make MonoType::GetElementType its own icall.
18743
18744 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18745
18746         * icall.c: remove MonoMethod_get_Name().
18747         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18748         object.
18749
18750 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18751
18752         * string-icalls.c: optimized a few methods.
18753
18754 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18755
18756         * icall.c: added all new string internal calls
18757         * string-icalls.c: added, new string internal call implementation.
18758         * object.c: added mono_string_new_size for allocating a string a size
18759
18760 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18761
18762         * object.c (mono_object_isinst): use the same code as in the
18763         optimized x86 version.
18764
18765 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18766
18767         * profiler.c: TSC-based timer code (faster and more accurate).
18768         Not hooked up in configure, yet (set USE_X86TSC to 1).
18769
18770 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18771
18772         * profiler.c, profiler.h: track time spent compiling methods.
18773         * threads.c: track thread creation/destruction.
18774
18775 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18776
18777         * profiler.c, profiler.h, profiler-private.h: profiling interface
18778         and sample implementation. Moved here so that it can be used also by
18779         the jit.
18780
18781 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * reflection.c, reflection.h: keep types and other handles separate in
18784         the hash tables for referred tokens. Add guid for modules.
18785
18786 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18787
18788         * assembly.c: fix bugs found with valgrind.
18789         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18790
18791 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18792
18793         * threads: added icall support for getting current domain for
18794                    the thread.
18795  
18796 2002-04-13  Martin Baulig  <martin@gnome.org>
18797
18798         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18799         (MonoDebugVarInfo): Added `index' field for register based addresses.
18800         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18801         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18802         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18803         `MonoDebugVarInfo *this_var'.
18804
18805         * debug-symfile.c (relocate_variable): New static function to write
18806         a location description for a local variable or method parameter.
18807
18808 2002-04-12  Martin Baulig  <martin@gnome.org>
18809
18810         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18811         stack offset and begin/end scope address of a local variable.
18812         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18813         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18814         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18815
18816         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18817         Added new relocation types for start/end scope of a local variable.
18818
18819 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18820
18821         * object.h: add mono_object_domain() macro.
18822         * reflection.c: handle typespecs.
18823         * icall.c: MonoMethod::get_Name() implementation.
18824
18825 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18826
18827         * icall.c: String::GetHashCode() icall implementation.
18828
18829 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18830
18831         * icall.c: String::IndexOfAny icall.
18832         * object.c, object.h: make array->max_length more useful.
18833         Intrduced mono_object_class() and mono_string_length() macros.
18834
18835 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18836
18837         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18838         instead of g_unichar_isdigit.
18839
18840 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18841
18842         * icall.c: Implement a simple Double.ToString().
18843
18844 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18845
18846         * appdomain.h: only io-layer.h is supposed to be included.
18847         * icall.c: explicitly import environ. Fix warning.
18848
18849 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18850
18851         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18852                 return true even if it's not Daylight Savings time.
18853                 Only return false for the case where the function isn't
18854                 implemented for a plaform (read Windows).
18855
18856 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18857
18858         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18859         data with a mutex.
18860
18861 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18862
18863         * mempool.c (mono_mempool_alloc): only use g_malloc when
18864         absolutely necessary.
18865
18866 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18867
18868         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18869
18870         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18871         (mono_class_proxy_vtable): use domain mempool
18872
18873 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18874
18875         * appdomain.h, appdomain.c: split initialization that requires the
18876         execution engine support into mono_runtime_init().
18877
18878 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18879
18880         * class.c (mono_class_init): don't include vtable inside MonoClass
18881         to save some memory, gather some statistics.
18882         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18883
18884 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18885
18886         * icall.c: internalcall implementation for ValueType.Equals().
18887
18888 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18889
18890         * object.c (mono_message_init): moved 
18891         (mono_runtime_exec_main): new arch. independent impl.
18892         (mono_runtime_invoke_array): new method - like
18893         mono_runtime_invoke, but you can pass an array of objects.
18894         (mono_remoting_invoke): new arch. independent impl.
18895         (mono_message_invoke): new arch. independent impl.
18896         (mono_runtime_class_init): new arch. independent impl.
18897         (mono_runtime_object_init): new arch. independent impl.
18898
18899 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18900
18901         * metadata.c, object.c, reflection.c: documented the exported
18902         functions.
18903
18904 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18905
18906         * icall.c: simpler code to pass the assembly builder data to corlib.
18907         Implement GetNestedTypes() internalcall.
18908
18909 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18910
18911         * class.c: warn if a type can't be loaded.
18912
18913 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
18914
18915         * image.h: typedef MonoImageOpenStatus
18916         * types.h: removed unused file
18917         
18918 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
18919
18920         * icall.c: Enum_ToObject accepts enum value arguments.
18921
18922 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18923
18924         * class.c: move initialization of properties, events and nested
18925         classes, so that they happen for interfaces, too.
18926
18927 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18928
18929         * icall.c: cleanup some ugly casts in Array_SetValue*.
18930
18931 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18932
18933         * icall.c: the values array fro enums is of the correct type, now.
18934         Implement (correctly) getFullName instead of assQualifiedName for
18935         MonoType.
18936         * reflection.h, reflection.c: added mono_type_get_name ().
18937
18938 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18939
18940         * assembly.c, image.h: for each MonoImage, record from wich assembly
18941         it was loaded.
18942         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
18943         Make Type.Assembly work.
18944
18945 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
18946
18947         * debug-symfile.h: use char* instead of gpointer to avoid
18948         unnecessary casts.
18949
18950         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
18951
18952         * icall.c (ves_icall_InternalExecute): impl. FielSetter
18953         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
18954
18955 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
18956
18957         * icall.c (mono_message_init): impl. (code cleanup)
18958         (ves_icall_InternalExecute): impl. FieldGetter
18959
18960         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
18961         defined we call all (non-static)methods through the vtable. 
18962
18963 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
18964
18965         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
18966         finalizer even though the memory is still referenced (and the chunk of
18967         memory is not freed).
18968
18969 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18970
18971         * assembly.c: fix brokeness.
18972
18973 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
18974
18975         * class.c: kill some warnings. Check explicit interface method
18976         implementation also without considering the namespace.
18977         Load also literal strings in static class data.
18978
18979 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
18980
18981         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
18982         (default_assembly_name_resolver): Make the resolver take the
18983         "base" directory where the assembly was originally defined, so we
18984         can load DLLs that are in the same directory as the assembly that
18985         is being referenced.
18986
18987 2002-03-28  Dick Porter  <dick@ximian.com>
18988
18989         * file-io.h: 
18990         * file-io.c:
18991         * socket-io.c: 
18992         * unicode.h: 
18993         * unicode.c: Warning cleanups
18994
18995 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
18996
18997         * object.h, reflection.h: use the correct type instead of MonoObject.
18998
18999 2002-03-28  Martin Baulig  <martin@gnome.org>
19000
19001         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19002         (mono_debug_update_symbol_file): Initialize classes if necessary.
19003
19004 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19005
19006         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19007         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19008
19009 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19010
19011         * assembly.h: fix function prototype.
19012         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19013         * mono-endian.h: use const cast.
19014
19015 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19016
19017         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19018
19019 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19020
19021         * loader.c: don't assert when a typeref can't be loaded, give
19022         a chance to the runtime to trow an exception instead.
19023         * loader.h: fix warning.
19024
19025 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19026
19027         * class.c (mono_class_proxy_vtable): added proxy support
19028
19029 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19030
19031         * icall.c: removed last of PAL calls, added System.Environment
19032         * file-io.h, file-io.c: MonoIO implementation
19033         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19034
19035 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19036
19037         * appdomain.c: do not use the byte marker in ldstr table lookup.
19038         * debug-helpers.c: allow two ':' to separate class and method name.
19039         * object.c: allocate arrays bounds with the GC, too.
19040         * verify: add a few more checks.
19041
19042 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19043
19044         * reflection.c: output also literal strings. Allocate parameter data
19045         with GC_malloc() (thanks, Martin, for catching this!).
19046
19047 2002-03-26  Martin Baulig  <martin@gnome.org>
19048
19049         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19050         include the `this' offset in the `param_offsets'.
19051
19052 2002-03-25  Martin Baulig  <martin@gnome.org>
19053
19054         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19055         mono_debug_get_class() function to get the classes. Added new
19056         relocation types for arrays and strings.
19057         (mono_debug_get_class): New static function to search in all
19058         referenced assemblies for a metadata token.
19059
19060         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19061
19062 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19063
19064         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19065         hold gc-allocated objects. Make the string heap a stream like the
19066         others. Removed duplicated code when writing stream info.
19067         Added asserts to catch possible buffer overflows. Set the sorted map
19068         for tables that need sorting. Added some documentation.
19069
19070 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19071
19072         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19073         for interned strings and vtables.
19074
19075 2002-03-24  Martin Baulig  <martin@gnome.org>
19076
19077         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19078         it in the array since it was created with g_slist_prepend().
19079
19080 2002-03-24  Martin Baulig  <martin@gnome.org>
19081
19082         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19083         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19084         (mono_debug_method_from_token): Renamed to
19085         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19086         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19087
19088         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19089         relocation types.
19090
19091         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19092
19093 2002-03-24  Martin Baulig  <martin@gnome.org>
19094
19095         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19096         (mono_debug_method_from_token): New func.
19097
19098         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19099         New interncall, calls mono_debug_local_type_from_signature().
19100         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19101         calls mono_debug_method_from_token().
19102
19103 2002-03-23  Martin Baulig  <martin@gnome.org>
19104
19105         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19106         specifies the number of bytes to be converted, not the array size.
19107         Return the number of chars, not the number of bytes.
19108         (ves_icall_iconv_get_chars): The `byteCount' argument
19109         specifies the number of bytes to be converted, not the array size.
19110
19111 2002-03-23  Martin Baulig  <martin@gnome.org>
19112
19113         * reflection.h (MonoReflectionSigHelper): New type.
19114
19115         * reflection.c (mono_reflection_sighelper_get_signature_local),
19116         (mono_reflection_sighelper_get_signature_local): New functions.
19117
19118         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19119         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19120         interncalls.
19121
19122 2002-03-23  Martin Baulig  <martin@gnome.org>
19123
19124         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19125         is_writeable is set.
19126         (mono_raw_buffer_update): New function to write the modified map
19127         back to disk.
19128
19129         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19130
19131         * debug-symfile.c (mono_debug_update_symbol_file): Call
19132         mono_raw_buffer_update() when done writing.
19133
19134 2002-03-23  Martin Baulig  <martin@gnome.org>
19135
19136         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19137
19138         * debug-symfile.c: Added support for arguments and local variables.
19139
19140 2002-03-23  Dick Porter  <dick@ximian.com>
19141
19142         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19143         protected by ifdefs, hence breaking the w32 build.
19144
19145 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19146
19147         * object.c: implement is_interned() the right way.
19148
19149 2002-03-21  Martin Baulig  <martin@gnome.org>
19150
19151         * debug-symfile.[ch]: New files to handle debugging information
19152         files. There's also support to dynamically update these symbol
19153         files to include machine dependent information.
19154
19155 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19156
19157         * threads.c (mono_thread_create): new function to create thread
19158         from C
19159
19160 2002-03-20  Martin Baulig  <martin@gnome.org>
19161
19162         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19163         method is a constructor.
19164         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19165         points to ves_icall_InternalInvoke().
19166
19167 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19168
19169         * file-io.c: Flush shouldn't throw exceptions.
19170
19171 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19172
19173         * file-io.c: FileStream flush support; FileSetLength now
19174         restores file pointer.
19175
19176 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19177
19178         * class.c: set image for pointer classes.
19179
19180 2002/03/19  Nick Drochak <ndrochak@gol.com>
19181
19182         * sysmath.c: Forgot one.
19183
19184 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19185
19186         * sysmath.c: Avoid redefining existing names.
19187
19188 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19189
19190         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19191         handled by runtime as icall rather than dllimport from libm.so
19192         * file-io.c, file-io.h: fixed handle argument type.
19193
19194 2002-03-18  Dick Porter  <dick@ximian.com>
19195
19196         * reflection.c (mono_image_get_type_info): rename interface to
19197         iface, because of "#define interface struct" on windows.
19198
19199 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19200
19201         * class.c, class.h: rename and export mono_ptr_class_get().
19202         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19203         * reflection.c, reflection.h, icall.c: better/saner type name
19204         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19205         method signatures.
19206
19207 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19208
19209         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19210
19211         * icall.c (ves_icall_InternalInvoke): impl.
19212
19213 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19214
19215         * reflection.c: output the interface map table, too.
19216
19217 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19218
19219         * class.c (class_compute_field_layout): separate computation of 
19220         static field layout
19221
19222 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19223
19224         * icall.c: added System.Buffer support.
19225         * file-io.c: moved file icalls from PAL to FileStream.
19226
19227 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19228
19229         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19230
19231 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19232
19233         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19234
19235 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19236
19237         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19238
19239 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19240
19241         * debug-helpers.{c,h}: moved here from monograph some useful functions
19242         to locate a method by name/signature in a class or image. Included
19243         also a small and flexible IL disassembler.
19244
19245 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19246
19247         * reflection.c: fixup tokens in methods with small header size, too.
19248
19249 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19250
19251         * object.c (mono_string_to_utf8): remove assert(!error), instead
19252         print a warning. 
19253
19254 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19255
19256         * icall.c: update to the new mono_Array_class_get interface.
19257
19258 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19259
19260         * appdomain.c, object.c: Boehm-GC enable.
19261         * icall.c: make get_data_chunk() support split data requests.
19262         Ensure a class is initialized in more cases. Return only the first
19263         property found in GetProperties() or the compiler gets confused. 
19264         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19265         * reflection.h, reflection.c: add fixup mechanism for field and method
19266         tokens. Initialize assembly->typeref in a single place. Output
19267         properties after events. Support custom attributes for events, too.
19268         Typo fix for paramter custom attrs.
19269
19270 2002-03-07  Martin Baulig  <martin@gnome.org>
19271
19272         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19273
19274 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19275
19276         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19277
19278 2002-03-06  Martin Baulig  <martin@gnome.org>
19279
19280         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19281         non-zero lower bounds. See testcases #F10-#F13.
19282
19283 2002-03-05  Martin Baulig  <martin@gnome.org>
19284
19285         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19286
19287         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19288         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19289         here.
19290         (ves_icall_System_Array_SetValue): Likewise.
19291         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19292         as argument and does the actual work. This function is used when copying a
19293         multi-dimensional array.
19294         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19295         now do all the widening conversions of value types.
19296         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19297
19298 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19299
19300         * class.c: remove some magic numbers and use the smbolic names,
19301         instead. Added init_events() to load event info at class init time.
19302         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19303         and mono_metadata_methods_from_event().
19304         * reflection.h, reflection.c: added support for writing out the evnets
19305         related information.
19306
19307 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19308
19309         * reflection.h, icall.c: use a different method (GetInterfaces)
19310         to gather interface info and add isbyref, isprimitive and
19311         ispointer to the ves_icall_get_type_info() return value.
19312
19313 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19314
19315         * class.h: stared adding support for events.
19316         * icall.c: split find_members implementation. Added debug icall to get
19317         the address of an object.
19318         * reflection.c: handle TypeBuilders in mono_type_get_object().
19319
19320 2002-03-01  Martin Baulig  <martin@gnome.org>
19321
19322         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19323         ArgumentOutOfRangeException(), not an ArgumentException().
19324         (ves_icall_System_Array_GetLowerBound): Likewise.
19325         (ves_icall_System_Array_GetValue): Improved argument checking.
19326         (ves_icall_System_Array_SetValue): Improved argument checking.
19327
19328 2002-03-01  Martin Baulig  <martin@gnome.org>
19329
19330         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19331         called with invalid arguments rather than just dying with g_assert().
19332         (ves_icall_System_Array_SetValue): Likewise.
19333         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19334         raise a NotImplementedException instead.
19335         (ves_icall_System_Array_GetLength): Added argument checking.
19336         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19337
19338 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19339
19340         * object.h (mono_assert): new macros mono_assert and
19341         mono_assert_not_reached
19342
19343 2002-02-28  Martin Baulig  <martin@gnome.org>
19344
19345         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19346         and "System::String::IsInterned" to "System::String::_IsInterned".
19347
19348 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19349
19350         * icall.c: remove hacks for typebuilder. Added icall to create a
19351         modified type from a tybebuilder.
19352         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19353         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19354         to create a backing MonoClass for a TypeBuilder.
19355
19356 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19357
19358         * class.c, class.h: more refactoring of class init.
19359         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19360
19361 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19362
19363         * marshal.c, marshal.h: start of marshaling interface.
19364
19365 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19366
19367         * icall.c: fix order in assembly qualified name icall.
19368
19369 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19370
19371         * class.c: do not free str, since we store it in the hash table.
19372         * reflection.h: add label field to MonoILExceptionInfo.
19373         * reflection.c: handle references to more than one assembly. Handle
19374         case when there isn't a module created in the assembly.
19375
19376 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19377
19378         * class.c: Fix typo. Start refactoring of class init code.
19379
19380 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19381
19382         * appdomain.c: exit with 1 on error.
19383         * class.c: we already have the name in MonoClassField.
19384         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19385         MonoStreamHeader instead of an offset of image->raw_metadata.
19386
19387 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19388
19389         * appdomain.c (mono_init): Be even more descriptive about the error.
19390
19391 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19392
19393         * appdomain.c: give the user an informative message when corlib can't
19394         be loaded.
19395
19396 2002-02-26  Martin Baulig  <martin@gnome.org>
19397
19398         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19399         New icall to get the time zone data.
19400
19401 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19402
19403         * reflection.c: set virtual and raw size of section correctly.
19404         * threads.c: transfer domain information to newly created threads.
19405
19406 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19407
19408         * class.c: when instancing a class in a domain, load the default
19409         vaules for static fields from the constant table. Fix System.Enum to
19410         not be an enum.
19411         * icall.c: implement Object::GetType() internalcall. Implemented
19412         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19413         Fixed checking of binding flags in find_members().
19414         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19415         * reflection.c: handle enumerations when writing to the constant
19416         table. Use a different object cache for types.
19417
19418
19419 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19420
19421         * object.c (mono_object_isinst): fix for arrays
19422
19423         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19424
19425 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19426
19427         * object.c: don't use mprotect ()  and fix intern pool hash table
19428         lookup for big endian systems.
19429
19430 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19431
19432         * icall.c: change type_is_subtype_of () signature.
19433
19434 2002-02-21  Mark Crichton  <crichton@gimp.org>
19435
19436         * rand.c, rand.h: Added random number generator for
19437         System.Security.Cryptography classes.
19438
19439         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19440
19441         * icall.c: Added System.Security.Cryptography calls.
19442
19443 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19444
19445         * class.c, icall.c, metadata.c: better support for pointer types.
19446         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19447         * reflection.c: Add support for getting custom attrs for properties
19448         and simplify some code.
19449
19450 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19451
19452         * icall.c: change getToken () and add custom attribute GetBlob()helper
19453         method.
19454         * reflection.h: add custom attrs array to the reflection builder structures.
19455         * reflection.c: encode and emit custom attributes for all the relevant
19456         reflection objects. Cache fieldref and methodref tokens. Change
19457         mono_image_create_token() interface to take a MonoDynamicAssembly.
19458         More complete custom attributes decoder. Load custom attributes for
19459         Assembly, Field, Method and Constructor objects, too. Make the
19460         returned array an Attribute[] one, not object[]. Added
19461         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19462         custom attribute constructor.
19463
19464 2002-02-20  Dick Porter  <dick@ximian.com>
19465
19466         * icall.c:
19467         * rawbuffer.c:
19468         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19469         problem code out for now).
19470
19471 2002-02-19  Radek Doulik  <rodo@ximian.com>
19472
19473         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19474
19475 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19476
19477         * icall.c: register the GetCustomAttributes method.
19478         * object.c, object.h: add mono_string_new_len ().
19479         * reflection.h, reflection.c: added mono_runtime_invoke(),
19480         mono_install_runtime_invoke(). Added
19481         mono_reflection_get_custom_attrs () to load custom attributes and
19482         create the attribute objects.
19483
19484 2002-02-19  Dick Porter  <dick@ximian.com>
19485         * threads-dummy-types.c:
19486         * threads-dummy-types.h:
19487         * threads-dummy.c:
19488         * threads-dummy.h:
19489         * threads-pthread-types.c:
19490         * threads-pthread-types.h:
19491         * threads-pthread.c:
19492         * threads-pthread.h:  Deleted obsolete files
19493
19494 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19495
19496         * class.c (mono_class_vtable): runtime init the class when we
19497         allocate static class data.
19498
19499         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19500
19501         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19502         and String - but we will need generic marshalling support in the
19503         future. 
19504         (mono_init): set the domain name in a ms compatible way
19505
19506         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19507         String[].
19508
19509 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19510
19511         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19512         for sizes
19513
19514         * appdomain.c (mono_domain_unload): impl.
19515
19516 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19517
19518         * appdomain.c, object.c: fix intern pool implementation.
19519         * class.c: fix alignment code.
19520
19521 2002-02-16  Radek Doulik  <rodo@ximian.com>
19522
19523         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19524         and s2 > s1, just copy lower bytes to be compatible with little
19525         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19526         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19527
19528         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19529         force big_endian to be 1 for big endian machines 
19530         (ves_icall_iconv_new_decoder): ditto
19531
19532 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19533
19534         * socket-io.c (convert_sockopt_level_and_name): If the system
19535         doesn't define SOL_IP or SOL_TCP, get them by hand using
19536         getprotobyname() and caching the values (because this could be a
19537         slow operation).
19538         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19539         Use the appropriate struct when the system does support it. Ie,
19540         not all systems have struct ip_mreqn so use struct ip_mreq when
19541         appropriate.
19542
19543 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19544
19545         * reflection.c: handle finally clauses.
19546
19547 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19548
19549         * socket-io.c: use g_snprintf() instead of snprintf.
19550
19551 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19552
19553         * reflection.c (mono_param_get_objects): Cast second argument to
19554         mono_method_get_param_names to a const char** to silence the
19555         compiler warning.
19556
19557         * appdomain.c (mono_domain_assembly_open): Put parens around the
19558         truth statement in the for-loop.
19559
19560         * unicode.c (iconv_convert): Got rid of a compiler warning about
19561         int i being unused when the system has a new iconv.
19562         (iconv_get_length): Same.
19563
19564         * image.c (load_class_names): Cast the second argument to
19565         g_hash_table_insert() to char* to hush compiler warnings about the
19566         arg being a const.
19567         (mono_image_open): Same here.
19568
19569         * socket-io.c: Don't conditionally include sys/filio.h or
19570         sys/sockio.h here anymore since we now get them from
19571         io-layer/io-layer.h
19572         (inet_pton): If the system doesn't support inet_aton, implement
19573         using inet_addr and also #define INADDR_NONE if it isn't defined
19574         by the system.
19575
19576 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19577
19578         * metadata.c, metadata.h: added function to get packing and size info
19579         of a typedef.
19580         * reflection.h, reflection.c: handle field RVA data. Save info about
19581         the table layout if needed. Assign typedef indexes to all the types
19582         before dumping the info about them to avoid forward reference problems.
19583
19584 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19585
19586         * socket-io.c (convert_sockopt_level_and_name): ifdef
19587         SO_ACCEPTCONN because it is not defined on my system (old debian)
19588
19589 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19590
19591         * opcode.c: use stddef.h to get NULL.
19592
19593 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19594
19595         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19596         for FIONBIO, FIONREAD and SIOCATMARK.
19597         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19598         define INADDR_NONE and besides, inet_addr() is deprecated and
19599         should not be used. Use inet_pton() instead - it also has the
19600         added bonus that it can easily handle IPv6 addresses as well.
19601         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19602
19603 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19604
19605         * decimal.c: remove _MSC_VER conditional.
19606
19607 2002-02-13  Dick Porter  <dick@ximian.com>
19608
19609         * socket-io.c: 
19610         * icall.c: Internal calls for Blocking, Select, Shutdown,
19611         GetSocketOption and SetSocketOption
19612
19613 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19614
19615         * assembly.cs: better resolver: use it instead of some kludgy
19616         code.
19617
19618 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19619
19620         * reflection.c: the best way to speed-up the compiler is to avoid
19621         infinite loops.
19622
19623 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19624
19625         * class.c (mono_class_vtable): changed the object layout
19626         (obj->vtable->class). 
19627         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19628
19629 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19630
19631         * assembly.c: look for assemblies in the assembly dir, too.
19632
19633 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19634
19635         * class.c: fix thinko in mono_class_from_type().
19636
19637 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19638
19639         * exception.h, exception.c: added TypeLoadException.
19640         * object.h, object.c: added mono_array_clone ().
19641         * icall.c: handle throwOnError in AssemblyGetType().
19642         Added Array.Clone().
19643         * opcode.h, opcode.c: use a single value for the opcode val.
19644         Compile fix for non-gcc compilers.
19645
19646 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19647
19648         * opcodes.c, opcodes.h: export interesting info about opcodes.
19649
19650 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19651
19652         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19653         icalls. 
19654
19655         * class.c (class_compute_field_layout): set element_class for enums
19656         (mono_class_create_from_typedef): set element_class for normal classes
19657
19658         * icall.c (ves_icall_System_Enum_get_value): impl.
19659
19660         * class.c (mono_class_create_from_typedef): do not set valuetype
19661         flag for System.ValueType and System.Enum
19662
19663 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19664
19665         * unicode.c (iconv_convert): fix big endian problem.
19666
19667 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19668
19669         * class.c: add asserts if we are ever going to scribble over memory.
19670         * socket-io.c: not all systems have AF_IRDA defined.
19671
19672 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19673
19674         * class.c (class_compute_field_layout): do not consider static
19675         fields to compute alignment
19676
19677 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19678
19679         * appdomain.c (mono_appdomain_get): impl.
19680         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19681
19682 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19683
19684         * icall.c: ignore "file://" prefix when loading an assembly.
19685
19686 2002-01-23  Dick Porter  <dick@ximian.com>
19687
19688         * socket-io.c:
19689         * icall.c:
19690         * Makefile.am: Added socket support
19691
19692 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19693
19694         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19695         code back.  This should return the assemblies that are loaded by
19696         the runtime on behalf of an application domain. 
19697
19698         The current implementation is still broken, it just returns every
19699         assembly loaded, but until we get real applications domain this
19700         will do.
19701
19702 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19703
19704         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19705         AppDomain object.
19706
19707 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19708
19709         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19710         the mono_class_from_name lookup.
19711         (ves_icall_get_parameter_info): ditto.
19712         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19713         method.
19714         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19715
19716 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19717
19718         * class.c: load also nested classes on class init.
19719         System.ValueType instance methods gets passed boxed
19720         values, unless methods in derived classed that get a pointer to the
19721         data.
19722         * icall.c: use better name parsing code in GetType().
19723         * image.c, image.h: add mono_image_loaded ().
19724         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19725         * reflection.c, reflection.h: added mono_reflection_parse_type().
19726
19727 2002-01-22  Veronica De Santis <veron78@interfree.it>
19728
19729         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19730         * threads.c : Added the implementation of internal calls for events
19731         * threads.h : Added prototypes of internal calls for events
19732         
19733 2002-01-21  Radek Doulik  <rodo@ximian.com>
19734
19735         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19736
19737 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19738
19739         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19740         (mono_class_value_size): use min_align
19741
19742 2002-01-20  Dick Porter  <dick@ximian.com>
19743
19744         * threads.h:
19745         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19746         so it compiles on w32.
19747
19748 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19749
19750         * metadata.c (mono_type_stack_size): impl.
19751
19752         * class.c (mono_class_get_field): impl. memberref token
19753
19754 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19755
19756         * icall.h : Added the internal calls mapping for CreateMutex_internal
19757                     and ReleaseMutex_internal.
19758         * threads.h : Added the prototype of mutexes internal calls.
19759         * threads.c : Added the implementations of mutexes internal calls.
19760
19761 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19762
19763         * metaparse.h: removed unused file.
19764         * reflection.c, reflection.h: added stream_data_align () function 
19765         to align data in streams and keep stream aligned. Add support for
19766         exception support in method headers.
19767
19768 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19769
19770         * unicode.c: make iconv_convert () return the number of bytess written
19771         in the output buffer.
19772
19773 2002-01-15  Dick Porter  <dick@ximian.com>
19774         * threads.c: Make the runtime's idea of infinite timeouts coincide
19775         with the class library's
19776
19777         Fix a particularly egregious bug in mono_thread_cleanup(). That
19778         code was so utterly bogus it must have been written on a Monday.
19779
19780 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19781
19782         * reflection.h: add subtypes field to TypeBuilder.
19783         * reflection.c: encode constants for literal fields.
19784         Handle subtypes. Fix user string token (and add a zero byte)
19785         at the end.
19786         
19787 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19788
19789         * class.c (mono_class_init): bug fix: assign slot numbers for
19790         abstract methods.
19791
19792 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19793
19794         * reflection.c: don't try to output a code RVA for abstract methods.
19795         Small fixes for method header format. Output parameter info to the
19796         ParamDef table. Save method overriding info to MethodImpl table.
19797         Fix property support. Allow typedef.extends to be a type in the
19798         building assembly.
19799         * verify.c: fix off-by-one error.
19800
19801 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19802
19803         * class.c: fix mono_class_from_mono_type () for szarray types.
19804         Remove unused cache check in mono_class_from_type_spec().
19805         * icall.c: *type_from_name () functions handle simple arrays and byref.
19806         * reflection.c: handle byref and szarray types. Handle methods without
19807         body (gets P/Invoke compilation working). Handle types and fields in
19808         get_token ().
19809         * reflection.h: add rank to MonoTypeInfo.
19810
19811 2002-01-10  Dick Porter  <dick@ximian.com>
19812
19813         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19814         internal calls
19815
19816 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19817
19818         * icall.c: initialize class in type_from_handle ().
19819         Loop also in parent classes for get_method ().
19820         * reflection.c: properly encode class and valuetype types.
19821         Start on encoding TypeBuilder types. Handle fieldrefs.
19822         Use correct length when registering a user string.
19823         Handle ConstructorBuilder and MonoMethod in get_token ().
19824         Make mono_type_get_object () aware of cached types.
19825         * object.c: back out change to mono_string_new ().
19826
19827 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19828         * object.c: mono_string_new should return a NULL when the string 
19829         passed in is NULL -- not try to deference it.
19830         
19831 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19832
19833         * icall.c: hack to make IsSubType work for TypeBuilders.
19834         * reflection.c: emit constructors before methods.
19835         Retrieve param names in mono_param_get_objects().
19836
19837 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19838
19839         * Makefile.am: fix list of headers and sources so automake 1.5
19840         doesn't complain. Removed \# at end of list.
19841
19842 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19843
19844         * reflection.c: get token for a method ref. Set return type of
19845         constructor to void.
19846         * loader.c: debug message.
19847         * class.c: typo fix.
19848
19849 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19850
19851         * icall.c: fix array init with rank > 1. FindMembers
19852         loops in parent class as well.
19853         * image.c: do not insert nested types in name cache.
19854         * reflection.c: warning fix.
19855         * reflection.h: add override method (for interface impl).
19856
19857 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19858
19859         * metadata.c: fix customattr decoding.
19860
19861 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19862
19863         * rawbuffer.cs: Added native Win32 implementation, avoids using
19864         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19865
19866 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19867
19868         * class.c: make the low-level routines handle the cache.
19869
19870 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19871
19872         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19873
19874 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19875
19876         * class.c: fix mono_array_element_size() for objects.
19877         * class.h, class.c: add properties to MonoClass and load them
19878         at init time.
19879         * icall.c: check with isinst() when assigning a value to an array
19880         instead of requiring the classes to match exactly.
19881         Implemented icall for System.Type::GetType().
19882         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19883         enums. Handle bindingflags when looking for methods and fields.
19884         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19885         and mono_metadata_methods_from_property().
19886         * reflection.h, reflection.c: added structures for propreties,
19887         parameters and enums. Implemented mono_property_get_object() and
19888         mono_param_get_objects().
19889
19890 2001-12-18  Dick Porter  <dick@ximian.com>
19891
19892         * file-io.c: Use mono_string_to_utf16() instead of
19893         mono_string_chars()
19894
19895         * object.c: Added mono_string_to_utf16(), which copies the non
19896         NULL-terminated MonoString into a new double-null-terminated
19897         buffer.
19898
19899 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
19900
19901         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
19902
19903 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
19904
19905         * file-io.c: raise exceptions if handle is invalid.
19906
19907 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
19908
19909         * assembly.c: yet another check for mscorlib.
19910         * class.c, class.h: load nesting info for classes.
19911         * icall.c: many new functions to support the Reflection classes.
19912         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
19913         * reflection.h, reflection.c: mono_image_create_token(),
19914         mono_assembly_get_object(), mono_type_get_object(),
19915         mono_method_get_object(), mono_field_get_object(): methods to return
19916         objects that parallel the C representation of assemblies, types,
19917         methods, fields.
19918
19919 2001-12-11  Dick Porter  <dick@ximian.com>
19920
19921         * icall.c:
19922         * file-io.c: Internal calls for file IO.
19923
19924 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
19925
19926         * tabledefs.h: missing FileAttributes.
19927         * verify.h, verify.c: use is_valid_string () to simplify and check for
19928         valid strings more correctly. Fix warnings and speeling.
19929         Check more tables: Filed, File, ModuleRef, StandAloneSig.
19930         Check code: branches, maxstack, method calls.
19931
19932 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
19933
19934         * object.c (mono_object_allocate): removed static, so that the jit
19935         can allocate value types.
19936
19937         * icall.c (ves_icall_System_DateTime_GetNow): impl.
19938
19939 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19940
19941         * class.c: init enum types right away and register the
19942         token->MonoClass map in mono_class_create_from_typedef ().
19943         * verify.h, verify.c: first cut of the verifier.
19944         * pedump.c: add --verify switch to verify metadata tables.
19945         * tabledefs.h: add some missing enums.
19946
19947 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
19948
19949         * class.c (mono_install_runtime_class_init): impl.
19950         (mono_class_init): renamed mono_class_metadata_init to
19951         mono_class_init, also removed the metadata_inited flag
19952
19953         * object.c (mono_object_isinst): use faster algorithm
19954
19955 2001-11-30  Radek Doulik  <rodo@ximian.com>
19956
19957         * mono-endian.h: reverted last change
19958         added function prototypes
19959
19960         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
19961         add mono-endian.c back
19962
19963         * mono-endian.c: returned back, as Paolo pointed out, it's needed
19964         for unaligned access, I've mistaked it with endianess. I am
19965         sorry.
19966         (mono_read16): fix reverted endianess
19967         (mono_read64): ditto
19968         (mono_read32): ditto
19969
19970 2001-11-30  Dick Porter  <dick@ximian.com>
19971
19972         * exception.c: Implement mono_exception_from_name()
19973
19974 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19975
19976         * metadata.h, metadata.c: remove params_size and locals_size and their
19977         calculation from the metadata code: they are only usefult to the
19978         interp.
19979
19980 2001-11-29  Radek Doulik  <rodo@ximian.com>
19981
19982         * object.c (mono_ldstr): swap bytes here, it's probably not the
19983         best place, but works for me now, I'll redo it once I know mono
19984         better, also note that I add PROT_WRITE and don't reset back, also
19985         note that it's only affects big endians, so x86 should be OK
19986
19987         * mono-endian.h (read16): use just glib macros for both endians
19988
19989         * mono-endian.c: removed as glib macros are used in in
19990         mono-endian.h so we don't need to care about endianess for read
19991         macros as glib does that for us already
19992
19993 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
19994
19995         * class.h, class.h: take minimum alignment into consideration so
19996         that the fields of a class remain aligned also when in an array.
19997
19998 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19999
20000         * loader.h, loader.c: add mono_method_get_param_names().
20001         * class.c: 0-init class fields.
20002
20003 2001-11-26  Dick Porter  <dick@ximian.com>
20004
20005         * icall.c:
20006         * threads-types.h:
20007         * threads.c: New file that handles System.Threading on all platforms
20008
20009         * object.c: 
20010         * object.h: Remove the synchronisation struct from MonoObject,
20011         replace it with a pointer that gets initialised on demand
20012
20013         * Makefile.am: Replace all the system-specific threading code with
20014         a single file that uses the new wrapper library
20015
20016 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20017
20018         * class.c, class.h: add mono_install_trampoline() so that the runtime
20019         can register a function to create a trampoline: removes the ugly
20020         requirement that a runtime needed to export arch_create_jit_trampoline.
20021         * object.h, object.c: added mono_install_handler() so that the runtime
20022         can install an handler for exceptions generated in C code (with
20023         mono_raise_exception()). Added C struct for System.Delegate.
20024         * pedump.c: removed arch_create_jit_trampoline.
20025         * reflection.c: some cleanups to allow registering user strings and
20026         later getting a token for methodrefs and fieldrefs before the assembly
20027         is built.
20028         * row-indexes.h: updates and fixes from the new ECMA specs.
20029
20030 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20031
20032         * class.h, class.c: add enum_basetype field to MonoClass.
20033         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20034         to get index in the constant table reated to a field, param or
20035         property.
20036         * reflection.h, reflection.c: handle constructors. Set public-key and
20037         version number of the built assembly to 0.
20038         * row-indexes.h: update from new ECMA spec.
20039
20040 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20041
20042         * class.h, class.c: add a max_interface_id to MonoClass.
20043         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20044         since it's used to do that. Added mono_type_type_from_obj().
20045         Make GetType() return NULL instead of segfaulting if the type was not
20046         found. Handle simple arrays in assQualifiedName.
20047         * object.h: add a struct to represent an Exception.
20048         * reflection.c: output call convention in method signature.
20049         Add code to support P/Invoke methods and fixed offsets for fields.
20050
20051 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20052
20053         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20054         the value.
20055         * icall.c: use mono_array_addr instead of array->vector: fixes the
20056         reflection image writing.
20057         * reflection.c: init call convention byte to 0 in method signature.
20058         Encode the property signature. Don't output property-related methods
20059         twice. Really process the properties for a type (don't cast a field to
20060         a property, my mom always told me that).
20061         Fix 64 bit issues in pointer alignment in a different and more
20062         readable way.
20063
20064 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20065
20066         * loader.h: Removed type class from MonoDefaults, added monotype
20067
20068         * loader.c: Loaded MonoType, removed loading of Type
20069
20070         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20071         and fills in System.Type._impl with a RuntimeTypeHandle rather
20072         than the actual MonoClass *
20073
20074         (ves_icall_type_from_handle): change from type_class to
20075         monotype_class
20076
20077         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20078         implemented
20079
20080         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20081         implemented
20082
20083         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20084
20085         (ves_icall_System_Reflection_Assembly_GetType): implemented
20086
20087         (ves_icall_System_MonoType_assQualifiedName): implemented
20088
20089         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20090
20091 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20092
20093         * assembly.c (mono_assembly_open): Implement a cache for the
20094         assemblies. 
20095
20096         (mono_assembly_close): only destroy the assembly when the last
20097         reference is gone.
20098         
20099 2001-11-09  Dick Porter  <dick@ximian.com>
20100
20101         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20102
20103 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20104
20105         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20106
20107 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20108
20109         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20110         from Martin Weindel.
20111         * object.h: add mono_string_chars ().
20112
20113 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20114
20115         * reflection.c (build_compressed_metadata): Eliminates warnings
20116         and uses 64-bit clean code.
20117
20118         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20119         (mono_type_equal): Change signature to eliminate warnings.
20120
20121 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20122
20123         * icall.c, loader.c: remove the internalcall array constructors.
20124         Changes to match the new MonoArray structure.
20125         * object.h, object.c: an array object doesn't allocate an extra
20126         vector. Add mono_array_new_full () to create jagged arrays easily.
20127
20128 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20129
20130         * metadata.h, metadata.c: add mono_metadata_field_info () to
20131         retreive all the info about a field from vairous tables.
20132         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20133         * class.h, class.c: augment MonoClassField with more info.
20134         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20135         policy and load a field's RVA if needed.
20136
20137 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20138
20139         * class.c (mono_class_metadata_init): create a trampoline for all
20140         virtual functions instead of actually compiling them.
20141
20142 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20143
20144         * class.h, class.c: include name in MonoClassField.
20145         * class.c: fix fundamental type of System.Object and System.String.
20146         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20147         tokens in ldtoken.
20148         * icall.c: remove internalcalls for the Reflection stuff that is now
20149         done in C# code.
20150         * loader.c: mono_field_from_memberref () implementation.
20151         * mono-endian.c: thinko (s/struct/union/g).
20152         * object.c, object.h: make the mono_string_* prototypes actually use
20153         MonoString instead of MonoObject.
20154         * reflection.c, reflection.h: updates for changes in the reflection
20155         code in corlib: we use C structures that map to the actual C# classes.
20156         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20157         fat method header if needed and use the info from the ILGenerator for
20158         methods. Handle fields in types. Misc fixes.
20159
20160 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20161
20162         * class.c (mono_class_metadata_init): bug fix: always allocate
20163         space for static class data
20164
20165 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20166
20167         * class.c (mono_compute_relative_numbering): use relative
20168         numbering to support fast runtime type checks.
20169
20170 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20171
20172         * class.c (mono_class_create_from_typeref): added debugging output
20173         to print class name when MonoDummy is returned instead of real class
20174
20175 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20176
20177         * class.c (mono_class_metadata_init): interface offset table now
20178         contains pointers into the vtable - this is more efficient for the jit
20179
20180 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20181
20182         * class.c (mono_class_metadata_init): use a temporary vtable (the
20183         old algorithm only worked for the interpreter, but not for the jit)
20184
20185 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20186
20187         * loader.c (method_from_memberref): use mono_class_get to get the
20188         class of an array instead of using System.Array directly.
20189         (mono_get_method): also add MEMBERREF methods to the method cache
20190         which usefull for arrays.
20191
20192 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20193
20194         * pedump.c (arch_compile_method): added to compute vtable entry
20195
20196         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20197         number of interfaces.
20198         
20199         * class.h: merged MonoArrayClass into MonoClass
20200
20201         * class.c (mono_class_create_from_typedef): compute the vtable size and
20202         allocate space to include the vtable inside MonoClass
20203         (mono_class_metadata_init): initialize the vtable
20204
20205 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20206
20207         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20208         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20209         * image.c: endian fixes by Laurent Rioux.
20210         * object.h, object.c: rename MonoStringObject to MonoString and
20211         MonoArrayObject to MonoArray. Change some function names to conform to
20212         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20213         guint16* as first argument, so don't use char*.
20214         Provide macros to do the interesting things on arrays in a portable way.
20215         * threads-pthread.c: updates for the API changes and #include <sched.h>
20216         (required for sched_yield()).
20217         * icall.c: updates for the API changes above.
20218         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20219         platforms that need them.
20220
20221 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20222
20223         * class.c: set the correct type for all the fundamental
20224         type when loading the class.
20225
20226 2001-10-05  Dick Porter  <dick@ximian.com>
20227
20228         * threads-pthread.c (pthread_mutex_timedlock): Simple
20229         compatibility version for C libraries that lack this call.
20230
20231 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20232
20233         * class.c: MonoTypes stored in MonoClass are stored as
20234         fundamental MonoTypes when the class represents a
20235         fundamental type (System.Int32, ...).
20236         The TypeHandle return by ldtoken is a MonoType*.
20237         * icall.c: ves_icall_get_data_chunk () write out all the
20238         PE/COFF stuff. Implement ves_icall_define_method (),
20239         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20240         * image.c: properly skip unknown streams.
20241         * loader.h, loader.c: add type_class to mono_defaults.
20242         * metadata.c, metadata.h: export compute_size () as
20243         mono_metadata_compute_size () with a better interface.
20244         Typo and C&P fixes.
20245         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20246         * reflection.c, reflection.h: many cleanups, fixes, output method
20247         signatures and headers, typedef and typeref info, compress the metadata
20248         tables, output all the heap streams, cli header etc.
20249         * row-indexes.h: typo fixes.
20250
20251 2001-10-04  Dick Porter  <dick@ximian.com>
20252
20253         * object.h: Add a synchronisation mutex struct to MonoObject
20254
20255         * object.c (mono_new_object): Initialise the object
20256         synchronisation mutexes
20257
20258         * icall.c: System.Threading.Monitor internal calls
20259         
20260         * threads-pthread.h:
20261         * threads-pthread.c: System.Threading.Monitor internal calls
20262
20263         * threads-types.h: New file, includes the system-specific thread
20264         structures
20265         
20266         * threads-pthread-types.h:
20267         * threads-pthread-types.c: New files, handle pthread-specific
20268         synchronisation types
20269
20270         * threads-dummy-types.h: 
20271         * threads-dummy-types.c: New files of dummy support for
20272         thread-specific types
20273
20274         * metadata.c:
20275         * image.c:
20276         * pedump.c: include mono-endian.h not endian.h
20277         
20278         * Makefile.am: More threads files.
20279         Name mono-endian.h not endian.h
20280
20281 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20282
20283         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20284         stuff and implement a few more bits.
20285         * icall.c: a field needs to be dereferenced twice. Do not use the same
20286         name for two variables in the same scope.
20287         * image.c, image.h: cleanups.
20288
20289 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20290
20291         * class.c (mono_class_metadata_init): bug fix: compute the right size
20292
20293 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20294
20295         * icall.c: implemented some of the Reflection internalcalls.
20296         * image.c, image.h: start writing out the PE/COFF image.
20297         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20298         that does the reverse than decode_blob_size ().
20299         * object.c: use mono_metadata_encode_value (). Move here
20300         temporary implementation of mono_string_to_utf8 ().
20301         * rawbuffer.c: make malloc_map static.
20302
20303 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20304
20305         * metadata.c: fix type comparison for arrays.
20306         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20307         Added a couple of new classes to monodefaults.
20308         * icall.c: added a couple of Reflection-related internalcalls.
20309         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20310         Added a byval_arg MonoType to MonoClass.
20311
20312 2001-09-28  Dick Porter  <dick@ximian.com>
20313
20314         * icall.c:
20315         * threads-pthread.h: 
20316         * threads-pthread.c: Implemented internal calls for
20317         LocalDataStoreSlot operations.  Applied mutexes around all shared
20318         data.  Reworked the thread creation and Start() operations to
20319         avoid a race condition.
20320         
20321         * threads-dummy.h:
20322         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20323
20324 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20325
20326         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20327
20328 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20329
20330         * class.c, loader.c: warn and return NULL instead of erroring out.
20331         * icall.c: added System.AppDomain::getCurDomain().
20332         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20333
20334 2001-09-25  Dick Porter  <dick@ximian.com>
20335
20336         * threads-pthread.h:
20337         * threads-pthread.c: Implemented timed thread joining and added
20338         System.Threading.Thread::Join_internal internal call
20339
20340         * icall.c: Added System.Threading.Thread::Join_internal internal call
20341
20342         * threads-dummy.h:
20343         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20344
20345 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20346
20347         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20348         mono_string_intern () to implement the semantics of the ldstr opcode
20349         and the interning of System.Strings.
20350         * icall.c: provide hooks to make String::IsIntern and String::Intern
20351         internalcalls.
20352
20353 2001-09-23  Dick Porter  <dick@ximian.com>
20354
20355         * threads-dummy.c: 
20356         * threads-dummy.h: New files of dummy threading routines
20357
20358         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20359         support code based on system specifics
20360
20361         Rename PTHREAD_LIBS to THREAD_LIBS
20362         
20363 2001-09-23  Dick Porter  <dick@ximian.com>
20364
20365         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20366         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20367         internal calls.
20368         (mono_thread_init): Set up a Thread object instance to return when
20369         the main thread calls Thread.CurrentThread
20370         (mono_thread_cleanup): Wait for all subthreads to exit
20371
20372         * icall.c: New internal calls for System.Threading.Thread::Sleep
20373         (including Schedule) and CurrentThread
20374
20375         * threads.h: New file, to insulate thread-specific stuff from the
20376         rest of the code
20377
20378 2001-09-21  Dick Porter  <dick@ximian.com>
20379
20380         * threads-pthread.h: 
20381         * threads-pthread.c: New file, for handling pthreads-style
20382         threading support.  Start() now starts a new thread and executes
20383         the ThreadStart delegate instance.
20384
20385         * icall.c: Added the internalcall for
20386         System.Threading.Thread::Start_internal
20387
20388         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20389
20390 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20391
20392         * loader.c: work around the different signatures for delegates
20393         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20394
20395 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20396
20397         * class.h, class.c: add mono_class_get_field_from_name ().
20398         * *: Fix C comments and other ANSI C issues.
20399
20400 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20401
20402         * endian.h, assembly.c: fix some endianness issues.
20403
20404 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20405
20406         * loader.h, load.c: add delegate_class to mono_defaults.
20407         Handle runtime provided methods in mono_get_method ().
20408
20409 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20410
20411         * loader.c (mono_get_method): use pinvoke for internal call
20412
20413         * icall.c: use pinvoke for internal call
20414
20415         * loader.c (method_from_memberref): set the method name
20416
20417 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20418
20419         * metadata.c: help the compiler generate better code for
20420         mono_class_from_mono_type ().
20421
20422 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20423
20424         * class.c (mono_class_metadata_init): delayed computing of the
20425         class size to mono_class_metadata_init ()
20426
20427 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20428
20429         * class.c, class.h: add an interfaces member to MonoClass.
20430         * image.c, image.h: add assembly_name field to MonoImage
20431         from the assembly table.
20432         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20433
20434 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20435
20436         * class.c: Handle Array in mono_class_from_mono_type ().
20437         * metadata.c, pedump.c: some endian fixes.
20438
20439 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20440
20441         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20442         * metadata.c: fix small problem introduced with the latest commit.
20443
20444 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20445
20446         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20447         We don't need a MonoMetadata pointer anymore to compare signatures in
20448         mono_metadata_signature_equal (), update callers.
20449         Reduced memory usage an number of allocations for MonoMethodHeader and
20450         MonoMethodSignature.
20451
20452 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20453
20454         * metadata.c: added compare for szarray.
20455
20456 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20457
20458         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20459         and add a couple more types to it and mono_defaults. Give an hint on
20460         classes that need implementing in our corlib and are referenced
20461         in mscorlib.
20462
20463 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20464
20465         * class.h, class.c: keep track if a class is also an Enum.
20466         * loader.c: Implement a couple more types for use in libffi
20467         marshalling. Gives better diagnostics when failing to dlopen
20468         a library. Set method->klass for P/Invoke methods, too.
20469
20470 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20471
20472         * class.c, class.h: add a MonoType this_arg to MonoClass that
20473         represents a pointer to an object of the class' type that
20474         can be used by the interpreter and later the type cache.
20475         Add best guess alignment info for valuetype objects.
20476
20477 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20478
20479         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20480         into MonoType: one less level of indirection and allocation and
20481         simplifies quite a bit of code. Added cache for MonoTypes that are
20482         used frequently, so that we don't need to allocate them all the time.
20483
20484 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20485
20486         * class.c (mono_class_create_from_typedef): System.Enum is also a
20487         value type, although it does not derive from System.ValueType
20488         (maybe a bug in the ms compiler?)
20489
20490         * metadata.c (mono_type_size): return the right size for value types
20491
20492         * loader.c (mono_get_method): only initialize method header if not abstract
20493
20494         * class.c (mono_class_from_mono_type): use mono_default values. 
20495
20496 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20497
20498         * *: use MonoClass pointers instead of <type_tokens>
20499         
20500         * class.h: new flag: metadata_inited.
20501
20502         * class.c (mono_class_metadata_init): impl.
20503         (mono_class_instance_size): impl.
20504         (mono_class_data_size): impl.
20505
20506 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20507
20508         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20509         MonoClass now has the name and name_space fields. 
20510         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20511         mono_get_method () takes and optional MonoClass as argument.
20512         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20513         instead that takes advantage of a map from class names to typedef
20514         tokens in MonoImage.
20515
20516 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20517
20518         * metadata.c: zero is not a valid alignment boundary.
20519         Merge MONO_TYPE_VOID in default decoding code.
20520
20521 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20522
20523         * image.h: merged MonoMetadata into MonoImage
20524
20525         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20526         identify the type of elements.
20527
20528 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20529
20530         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20531         * cil-coff.h: split MonoMSDOSHeader and add size info.
20532         * image.c: add some consistency checks.
20533         * metadata.c: fix row size computation: one programmer
20534         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20535         add explanation for the locator routine.
20536         Fix decoding of size in method header.
20537         
20538 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20539
20540         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20541         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20542         function from gnome-libs.  This uses the right path separator
20543         based on the OS, and also works around a bug in some systems where
20544         a double slash is not allowed. 
20545         (default_assembly_name_resolver): Use g_concat_dir_and_file
20546         (mono_assembly_open): ditto.
20547
20548 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20549
20550         * metadata.c (mono_metadata_signature_equal): impl.
20551
20552         * *: void is now a realy MonoType (instead of using NULL)
20553         
20554         * metadata.c (do_mono_metadata_parse_type): use
20555         mono_metadata_parse_type to parse void value.
20556
20557 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20558
20559         * metadata.c, metadata.h: in the signature and method header store
20560         only the space required for holding the loca vars and incoming arguments.
20561
20562 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20563
20564         * metadata.c (do_mono_metadata_parse_type): treat void like any
20565         other type (instead of assigning NULL);
20566
20567 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20568
20569         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20570
20571 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20572
20573         * image.c (do_mono_image_open): added a cache for arrays.
20574
20575 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20576
20577         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20578         decode a single column from a row in a metadata table and changes
20579         to take advantage of it in the typedef locator (gives a nice speed up).
20580         Store offset info for function params.
20581
20582 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20583
20584         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20585
20586 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20587
20588         * assembly.c: how could mono_assembly_close () had ever worked?
20589         * metadata.c, metadata.h: provide offset info for local vars.
20590         Implement mono_type_size () to take care of alignment as well
20591         as size (it was mono_field_type_size in cli/class.c before).
20592
20593 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20594
20595         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20596
20597         * assembly.h (CORLIB_NAME): set to corlib.dll
20598
20599         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20600
20601 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20602
20603         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20604         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20605         tokentype.h: massive namespace cleanup.
20606
20607 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20608
20609         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20610
20611 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20612
20613         * metadata.c (mono_metadata_free_type): added check for type !=
20614         NULL (void) before calling mono_metadata_free_type()
20615
20616 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20617
20618         * metadata.h, row_indexes.h: added header with enumerations to use
20619         to index in the columns from tables in metadata and to decode coded
20620         tokens: we should start using this instead of embedding magic numbers
20621         all over the code.
20622
20623 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20624
20625         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20626         Move metadata_t info from cli_image_info_t to MonoImage, where
20627         it's easily accessible. Changed all the uses accordingly.
20628         Added the method and class caches to MonoImage.
20629         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20630         and mono_metadata_decode_value () signature to be more consistent
20631         with the other parse functions (and simplify code). Taken advantage
20632         of zero-length array allocation with GCC. Removed reduntant (and
20633         wrong) MonoFieldType struct and use MonoParam instead. Changed
20634         mono_metadata_parse_field_type () to use common code for parsing.
20635         Added mono_metadata_typedef_from_field () and
20636         mono_metadata_typedef_from_method () to lookup a typedef index from a
20637         field or method token.
20638         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20639
20640 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20641
20642         * metadata.c (mono_metadata_parse_field_type): Implement. 
20643         (do_mono_metadata_parse_type): Split engine from
20644         mono_metadata_parse_type, so that we can create smaller structures
20645         for things that just have one pointer to the MonoType (look at
20646         the MonoFieldType)
20647
20648 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20649
20650         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20651         as Jan Gray found out, it is incorrect. 
20652
20653 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20654
20655         * assembly.c: Implement asssembly loading.  This loads an image
20656         and loads all the referenced assemblies.  Come to think of it, we
20657         could always do lazy loading of the assemblies. 
20658
20659         * image.c (mono_image_open): Keep loaded images in a hashtable.
20660
20661         * image.h (MonoImage): Add reference count.
20662
20663 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20664
20665         * assembly.c (mono_assembly_open): Keep track of the file name in
20666         case the assembly has no ASSEMBLY table.
20667
20668         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20669         from get.c here.
20670
20671 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20672
20673         * metadata.c, metadata.h: decode local vars in method header
20674         parse function. Change callers accordingly.
20675
20676 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20677
20678         * metadata.h, cil-coff.h: protect against multiple inclusion.
20679         Added some new structures to hold information decoded from metadata:
20680         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20681         and relevant decoding/free functions.
20682         * metadata.c: implement decoding functions. Add warning for out of bounds
20683         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20684         all the info about a method signature and invocation. Remove check on
20685         uninitialized local var in parse_mh() and fix memory leak.
20686
20687 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20688
20689         * metadata.h: More macros.
20690
20691         * tokentype.h: New file.
20692
20693 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20694
20695         * assembly.c: added a consistency check and initialize
20696         some structures with g_new0().
20697         * metadata.c: fixed a couple more bugs in table size computation
20698         and add other checks for out-of bound access to metadata.
20699
20700 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20701
20702         * metatada.c: fix bugs computing table sizes. Spew a
20703         warning when index in string heap is out of bounds.
20704
20705 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20706
20707         * metadata.h: Add a couple of macros to manipulate tokens. 
20708
20709 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20710
20711         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20712         cli_section_tables).
20713
20714 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20715
20716         * metadata.c (mono_metadata_user_string): New function, provides
20717         access to the UserString heap. 
20718
20719 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20720
20721         * metadata.c: Add inline documentation.
20722
20723 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20724
20725         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20726         files. 
20727
20728 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20729
20730         * typeattr.h: New file, TypeAttribute flags. 
20731
20732 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20733
20734         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20735         mono_assembly_ensure_section): Section loading code.
20736         (load_section_tables): Load the sections.
20737
20738         * mono/metadata/metadata.c (mono_metadata_locate_token,
20739         mono_metadata_locate): Functions to locate the information
20740         definition given a token or a table and an index.
20741         (mono_metadata_compute_table_bases): New.
20742         (compute_size): New function to compute the sizes of the various
20743         tables.
20744
20745         * mono/metadata/metadata.h: Finish listing the different index
20746         types. 
20747
20748         * mono/metadata/pedump.c: Improve to dump new information.
20749
20750 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20751
20752         * mono/metadata/metadata.c: Entered all the tables matching
20753         Beta2. 
20754
20755         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20756
20757
20758