* MainsoftWebApp20.Tomcat.vmwcsproj: converted to csproj
[mono.git] / mono / metadata / ChangeLog
1
2 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
3
4         * loader.c: allow case-insensitive matching of the dll name
5         in dllmap handling when prefixed with "i:".
6
7 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
8
9         * threads.c: Fix #ifdef for dummy_apc function for VS.
10
11 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
12
13         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
14
15 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
16         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
17         giving precedence to the methods with a fully qualified name
18         (InterfaceName.MethodName) when building the interface sections
19         of the vtable.
20
21 2007-02-16  Dick Porter  <dick@ximian.com>
22
23         * threadpool.c (append_job): Fix fast-path array handling, so it's
24         less likely the array will grow exponentially when the load is
25         heavy.
26
27 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
28
29         * metadata-internals.h, loader.c: fix dllmap lookup order
30         for non-function maps, too, and prepare for fallback code.
31
32 2007-02-12  Robert Jordan  <robertj@gmx.net>
33
34         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
35         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
36         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
37         GlobalFree. Fixes a part of bug #77075.
38
39 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
40
41         * loader.c: implemented typedef parent in field memberref.
42
43 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
44
45         * marshal.c: Fix warnings and remember to call Release on
46         IUnknown of RCW.
47         
48         Code is contributed under MIT/X11 license.
49
50 2007-02-10  Miguel de Icaza  <miguel@novell.com>
51
52         * class-internals.h: Add MonoHandleRef definition, and
53         handleref_class to mono_defaults. 
54
55         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
56         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
57
58         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
59         (do nothing on this stage)
60         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
61         (emit_marshal_handleref): New method, used for argument handling
62         of HandleRefs. 
63
64 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
65
66         * class.c (mono_class_setup_parent): Lazily init com types.
67         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
68         init com types.
69         * object.c (mono_remote_class_vtable): Lazily init com types.
70         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
71         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
72         * domain-internals.h: Expose mono_init_com_types.
73         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
74         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
75         Add support for COM Callable Wrapper marshalling.
76         * marshal.h: Add icall definitions.
77         * gc.c: Handle freeing of CCWs in finalizer code.
78         
79         Code is contributed under MIT/X11 license.
80
81 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
82
83         * reflection.c: changed all the signature encoding code to use
84         a variable-sized buffer.
85
86 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
87
88         * marshal.c: locking fixes: never take the loader lock
89         or other runtime locks when holding the marshal lock
90         (fixes bug#80664).
91
92 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
93
94         * marshal.c: make the delegate function pointer mapping
95         work for the moving GC.
96
97 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
98
99         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
100         for bug #80618.
101
102 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
103
104         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
105         gmodule.
106
107 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
108
109         * threadpool.c: made the code moving-GC safe.
110
111 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
112
113         * assembly.c, boehm-gc.c, class-internals.h, class.c,
114         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
115         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
116         warning cleanup.
117         * reflection.c: warning cleanup, some threading and moving GC fixes.
118
119 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
120
121         * class.c, loader.c: create the needed Set/Get/Address array methods
122         as well as the .ctors in mono_class_init (), fixes bug #80567.
123
124 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
125
126         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
127         we doesn't decrease its alignment. Should fix the sparc build.
128
129 2007-01-24  Dick Porter  <dick@ximian.com>
130
131         * socket-io.c
132         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
133         Create the returned object if we need to ignore an unsupported
134         socket option.  Fixes a segfault reported by Atsushi.
135
136 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
137
138         * class.c, object.c: restrict GC-tracked fields to
139         UIntPtr fields used inside corlib, so we provide better
140         type info to the GC and also allow broken packing as in
141         bug #80580.
142
143 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
144
145         * sgen-gc.c: removed duplicated function.
146
147 2007-01-19  Miguel de Icaza  <miguel@novell.com>
148
149         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
150         value that means that the value is not supported, but that we
151         should not return a failure, but instead report this as a
152         successful operation.
153
154 2007-01-19  Raja R Harinath  <rharinath@novell.com>
155
156         Fix tests/bug79956.2.il
157         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
158         (mono_generic_class_get_class): If the generic definition in an
159         enum, copy over other fields related to it.
160
161 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
162
163         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
164         genericinst enums (bug #79215).
165
166 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
167         * class.c: Fix bug 80307.
168
169 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
170
171         * image.c: if the file table is not present, try to load
172         all the modules, since we don't have info about them
173         having or not metadata (bug #80517).
174         * assembly.c: allow mono_assembly_load_references () to
175         work for netmodules.
176
177 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
178
179         * image.c, metadata-internals.h, object.c: execute module
180         cctors when running on the 2 runtime if present (bug #80487).
181
182 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
183
184         * icall.c: optimized InitializeArray() on bigendian.
185
186 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
187
188         * icall.c: fix for the broken ARM FPA double format.
189
190 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
191
192         * icall.c: handle endian issues for r4 and r8 types, too, in
193         the InitializeArray() icall.
194
195 2007-01-15  Miguel de Icaza  <miguel@novell.com>
196
197         * loader.c (mono_loader_error_prepare_exception): Clear the error
198         once we have extracted the information from it, do this before we
199         call into the JIT's class loading mechanisms.
200
201         * object.c (mono_class_create_runtime_vtable): Do not clear the
202         loader error before calling mono_class_get_exception_for_failure
203         as the loader error is needed inside
204         mono_class_get_exception_for_failure to throw the error (thinko).
205
206         Fixes #80521
207         
208 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
209
210         * reflection.c: align fields rva data so it's faster to load at
211         runtime.
212
213 2007-01-12  Raja R Harinath  <rharinath@novell.com>
214
215         Prepare to simplify GenericMethod handling.
216         * class-internals.h (mono_method_get_context): New accessor function.
217         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
218         rather than directly accessing '->context' field.
219
220         * class-internals.h (_MonoGenericParam.method): Move ...
221         (_MonoGenericContainer): ... here.  Add into union with klass field.
222         * class.c, icall.c, loader.c, metadata.c, reflection.c:
223         Update to changes.
224
225 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
226
227         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
228         the wrapper type enum and reduce relocations.
229
230 2007-01-12  Raja R Harinath  <rharinath@novell.com>
231
232         * reflection.c (inflate_mono_method): Reuse method instantiation
233         from the generic method, if available.
234
235 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
236
237         * marshal.c (emit_marshal_variant): Fix conv_arg
238         type in last commit, based on whether parameter is byref.
239         
240 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
241
242         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
243         marshalling.
244         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
245         MONO_TYPE_OBJECT back for VARIANT support.
246
247 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
248
249         * marshal.c, marshal.h, icall-def.h: Implement 
250         Marshal.ReAllocCoTaskMem.
251
252 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
253
254         * marshal.c: memory retention fixes: use the proper
255         image cache for runtime_invoke method lookups.
256
257 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
258
259         * mempool.c: added code to help debug mempool allocations.
260
261 2007-01-11  Dick Porter  <dick@ximian.com>
262
263         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
264         support (experimenting with faking it with IP_MTU_DISCOVER for
265         systems that don't have IP_DONTFRAGMENT.)
266         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
267         icall.
268
269         * icall-def.h: new System.Net.Sockets.Disconnect icall.
270
271         * socket-io.h: Add new fields to MonoSocketAsyncResult
272         corresponding to the new ones in Socket.cs.
273
274 2007-01-11  Raja R Harinath  <rharinath@novell.com>
275
276         Fix IronPython regression mentioned in #80249
277         * metadata.c (do_mono_metadata_parse_generic_class): Clear
278         'cached_context' field, since it may have been initialized as a
279         side-effect of metadata parsing.
280
281         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
282         (_MonoGenericClass.cached_class): Move here and rename from lone
283         remaining field of ...
284         (_MonoInflatedGenericClass): ... this.  Remove.
285         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
286         to changes.
287
288         Fix mcs/tests/test-128.cs regression.
289         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
290         2007-01-10 change below.
291         [MONO_TYPE_OBJECT]: Recurse into array case.
292
293 2007-01-11  Raja R Harinath  <harinath@gmail.com>
294
295         * class-internals.h (mono_get_inflated_generic_class): Remove.
296         * class.c (mono_get_inflated_generic_class): Remove.
297         (mono_generic_class_get_class): Rename from
298         mono_class_create_generic.
299         (mono_class_from_mono_type) [GENERICINST]: Use it.
300         * reflection.c, metadata.c: Update to changes.  Use
301         'mono_class_from_mono_type'.
302
303 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
304
305         * reflection.c: use passed type when encoding an array element
306         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
307
308 2007-01-09  Robert Jordan  <robertj@gmx.net>
309
310         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
311         result arguments (someDelegate.EndInvoke (unrelatedAres)).
312         Fixes bug #80392.
313
314 2007-01-09  Raja R Harinath  <rharinath@novell.com>
315
316         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
317
318         * object.c (set_value): Avoid aliasing between type->data.klass
319         and type->data.generic_class.
320
321         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
322
323 2007-01-08  Raja R Harinath  <rharinath@novell.com>
324
325         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
326         between type->data.klass and type->data.generic_class.
327
328 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
329
330         * marshal.c: In MS.NET, StringBuilder objects are not copied by
331         value in out parameters.
332
333 2007-01-08  Raja R Harinath  <rharinath@novell.com>
334
335         Simplify invariant for MonoGenericClass::klass field.
336         * class.c (mono_class_create_generic): Verify 'klass' is null.
337         * metadata.c (do_mono_metadata_parse_generic_class): Don't
338         initialize 'klass' field.
339
340 2007-01-05  Raja R Harinath  <rharinath@novell.com>
341
342         Ongoing work to avoid redundant data and simplify invariants.
343         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
344         'generic_class', and change type to a GenericInst.
345         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
346         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
347
348 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
349
350         * class.c : skip io-layer under PLATFORM_WIN32.
351
352 2007-01-03  Tor Lillqvist  <tml@novell.com>
353
354         Fix #80305: In a bundled executable, look in the bundled exe
355         assembly to determine the runtime version. Add the possibility to
356         bundle also the machine.config file.
357         
358         * assembly.c (mono_assembly_open_from_bundle): Make
359         non-static. Allow being called even if we have no bundled
360         assemblies, and return NULL right away in that case.
361
362         * domain-internals.h: Declare mono_assembly_open_from_bundle()
363         here.
364
365         * domain.c (app_config_parse): Take an assembly exe file name as
366         parameter instead of a config file name. Check for a bundled
367         config file for that assembly by calling
368         mono_config_string_for_assembly_file() (see below) before looking
369         for one in the file system.
370         (get_runtimes_from_exe): Corrsponding change to call of
371         app_config_parse().
372         (get_runtimes_from_exe): Check for bundled assembly exe file first
373         by calling mono_assembly_open_from_bundle(). If no bundled
374         assembly exe file is found, call mono_image_open() as before to
375         look it up in the file system.
376
377         * mono-config.c: Add variable bundled_machinec_onfig.
378         (mono_config_string_for_assembly_file): New function.
379         (mono_config_for_assembly): Move code snippet that looks for a
380         bundled assembly .config file into the above new function. Call
381         it.
382         (mono_register_machine_config, mono_get_machine_config): New
383         functions to set and retrieve
384
385         * assembly.h: Declare mono_register_machine_config().
386
387         * mono-config.h: Declare mono_get_machine_config() and
388         mono_config_string_for_assembly_file().
389
390         * icall.c: No declaration of environ necessary on Win32. It is
391         declared (as a macro expanding to a function call) in stdlib.h.
392         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
393         New internal mono function. Returns the value of
394         mono_get_machine_config() as a Mono string.
395
396         * icall-def.h: Add get_bundled_machine_config().
397
398 2007-01-04  Raja R Harinath  <rharinath@novell.com>
399
400         Remove redundant field
401         * class-internals.h (_MonoGenericContext.container): Remove field.
402         * loader.c (mono_method_get_signature_full): Don't parse a
403         "container" for a signature parse when the signature is inflated
404         immediately.
405         (method_from_methodspec): Likewise, for a generic_inst.
406         * class.c, metadata.c, reflection.c: Update to changes.
407
408 2006-01-04  Raja R Harinath  <rharinath@novell.com>
409
410         * class-internals.h (_MonoGenericClass): Rename 'context' field to
411         'cached_context', and change semantics -- it starts off NULL, and
412         is initialized on demand.
413         * class.c (mono_generic_class_get_context): New accessor to
414         replace 'context' field accesses.
415         (mono_class_get_context): New helper.
416         (*): Update to changes.
417         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
418
419 2007-01-03  Miguel de Icaza  <miguel@novell.com>
420
421         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
422         before the memcpy.   Fixes Marshal2 regression.
423
424 2007-01-02  Jb Evain  <jbevain@gmail.com>
425
426         * blob.h: add a MONO_TYPE_ENUM definition
427         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
428         fix the encoding of arrays of enums in custom attributes.
429
430         Fixes #79666.
431
432 2007-01-01  Miguel de Icaza  <miguel@novell.com>
433
434         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
435         string is null terminated, but only cut the string short if it
436         overflows the buffer.   
437         
438         (mono_string_to_byvalstr): Also fix this routine.   The code here
439         was not properly terminating a string (it was only terminated
440         because of the previous catch-all memset). 
441
442         I left the memset, because I do not know if applications expect
443         the runtime to clear this region. 
444
445         Fixes #79944.
446
447         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
448         Clear the error before returning to unmanaged code to prevent the
449         runtime from being confused later on (fixes  80420).
450         (ves_icall_type_from_name): Always call mono_loader_clear_error
451         after parsing a type that could have failed.
452         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
453
454         * loader.c (mono_loader_clear_error): Fix indentation.
455
456 2006-12-28  Martin Baulig  <martin@ximian.com>
457
458         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
459
460 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
461
462         * reflection.c: patch from Rolf Bjarne Kvinge to fix
463         getting a token for an EnumBuilder.
464
465 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
466
467         * reflection.c: be more careful in case resource generation
468         fails to create the data array.
469
470 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
471
472         * sgen-gc.c: write barrier for clone and fix unregister handles.
473
474 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
475
476         * reflection.c: some fixes needed in the generics code for the moving GC.
477
478 2006-12-22  Robert Jordan  <robertj@gmx.net>
479
480         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
481         account. Fixes bug #80299.
482
483 2006-12-21  Raja R Harinath  <rharinath@novell.com>
484
485         Fix WaitHandle usage in delegates.
486         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
487         * object.c (mono_wait_handle_new): Use the property set method to
488         initialize the handle.
489         (mono_wait_handle_get_handle): New.
490         * threadpool.c (mono_async_invoke): Use it.
491         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
492         Likewise.
493         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
494
495 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
496
497         * marshal.c (emit_marshal): Call emit_marshal_variant and
498         emit_marshal_com_interface when applicable.
499         (emit_marshal_variant, emit_marshal_com_interface): Add
500         methods for this case and remove if's from emit_marshal_object.
501         
502 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
503
504         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
505
506 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
507
508         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
509         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
510         and GlobalFree on Windows. Remove FIXME.
511
512 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
513
514         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
515         implementation for managed objects.
516
517 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
518
519         * object.c: implemented code to be used for checking
520         that no reference field overlaps with non-references.
521
522 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
523
524         * threadpool.c: fix queue code to be compatible with the
525         moving GC.
526
527 2006-12-18  Miguel de Icaza  <miguel@novell.com>
528
529         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
530         in structures by throwing ArgumentNullException.
531
532         (emit_marshal_safehandle): Also when they are null parameters.
533
534         (emit_marshal_safehandle): Add support for ref
535         SafeHandles parameters
536
537 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
538
539         * profiler.c: updated to use the mono-dl API instead of
540         gmodule.
541
542 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
543
544         * profiler.c: updated to use the mono-dl dynamic loading
545         API instead of gmodule.
546
547 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
548
549         * profiler.c: use readlink, older versions of glib don't have
550         g_file_read_link ().
551
552 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
553
554         * profiler.c: try to detect the path to mono if libc fails to provide
555         a useful name (bug #80286).
556
557 2006-12-16  Raja R Harinath  <rharinath@novell.com>
558
559         Fix #80242
560         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
561         instance, use the generic type definition instead.
562         (ves_icall_Type_GetNestedTypes): Likewise.
563         * class.c (mono_class_create_generic): Always set the
564         nested_classes of a generic instance to NULL, even if the generic
565         type definition has nested types.
566
567 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
568
569         * marshal.c (mono_string_from_bstr): Revert previous Windows change
570         and fix on Linux.
571         
572 2006-12-15  Miguel de Icaza  <miguel@novell.com>
573
574         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
575         my arguments were in the wrong order.   I also fixed the Windows
576         version which seems to have had the same issue.
577
578         (mono_free_bstr): On Unix, this is g_free.
579         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
580         conversions (for the tests in corlib to pass).
581
582 2006-12-14  Miguel de Icaza  <miguel@novell.com>
583
584         * marshal.c (emit_ptr_to_object_conv): For now, ignore
585         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
586         exception if a ref SafeHandle in a struct has changed).
587         
588         (emit_struct_conv): Do not perform layout checks for classes
589         derived from SafeHandle, as those are specially handled. 
590
591         (emit_object_to_ptr_conv): Add support for
592         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
593
594         (emit_marshal_safehandle): Implement conversion of return values
595         of safehandles (MARSHAL_ACTION_CONV_RESULT).
596         
597         * threads.c: WaitHandle now is compiled with two different handles
598         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
599         for 2.0.
600         
601         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
602         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
603         these routines to cope with both kinds of fields.
604
605 2006-12-12  Miguel de Icaza  <miguel@novell.com>
606
607         * metadata.c (mono_type_to_unmanaged): Handle the case where
608         type->data.klass is a SafeHandle, and in that case, return the
609         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
610         MONO_MARSHAL_CONV_SAFEHANDLE. 
611
612 2006-12-11  Miguel de Icaza  <miguel@novell.com>
613
614         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
615         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
616         calling emit_marshal_object.
617
618         (emit_marshal_safehandle): Implement marshalling of
619         SafeHandle parameters (no ref support yet).
620
621         (MarshalAction): Document the defines as I implement
622         them for SafeHandle.
623
624         (emit_marshal_object): indentation police.
625
626         * class-internals.h: Define MonoSafeHandle.
627         Add safehandle_class to MonoDefaults type.
628
629         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
630         list of classes to check for fields. 
631
632         * domain.c (mono_init_internal): Add SafeHandle to the list of
633         mono_defaults loaded.
634
635 2006-12-15  Raja R Harinath  <rharinath@novell.com>
636
637         Fix #80253
638         * reflection.c (mono_reflection_bind_generic_parameters): If the
639         generic type definition is a type builder, ensure that it is fully
640         initialized before instantiating it.  Kill some dead code.
641
642 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
643
644         * object.c: clear the loader_error () before loading
645         more metadata stuff (bug #80258).
646
647 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
648
649         * icall.c, icall-defs.h: type modifiers icalls for
650         parameters and properties.
651
652 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
653
654         * object.c, icall.c: fixed warnings.
655
656 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
657
658         * marshal.c: fixed a couple of leaks and coding style in a few places.
659
660 2006-12-08  Dick Porter  <dick@ximian.com>
661
662         * process.c: Cope with NULL ProcessStartInfo arguments on windows
663         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
664         80173.
665
666 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
667
668         * process.c: ProcessStartInfo may have only filename set and
669         arguments can be NULL.
670
671 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
672
673         * icall.c: fix leak found by Robert Jordan.
674
675 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
676
677         * marshal.c, marshal.h: generate managed method to access an element
678         of a multi-dimensional array.
679
680 2006-11-30  Paolo Molaro (lupus@ximian.com)
681
682         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
683
684 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
685
686         * icall.c: back out GetFields () fix until the serialization code is
687         fixed to not depend on the incorrect behaviour.
688
689 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
690
691         * profiler.c: provide defaults if none are set.
692
693 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
694
695         * Makefile.am, attrdefs.h: new public header file with
696         constants for attributes for use by embedders.
697
698 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
699
700         * icall.c: GetFields () fix for bug #80064.
701
702 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
703
704         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
705         removed long unused icalls.
706
707 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
708   
709         * marshal.c: 
710                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
711                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
712                 can be generated without a delegate class.
713                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
714         
715         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
716
717 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
718
719         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
720         #80069.
721
722 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
723
724         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
725         icall-def.h: added icalls needed by System.GC.
726
727 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
728
729         * loader.c: ensure the class in catch clauses is handled
730         correctly for generics methods (fixes bug#79980).
731
732 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
733
734         * monitor.h, monitor.c: added mono_locks_dump () function
735         to help debug deadlocks involving managed locks.
736
737 2006-11-13  Dick Porter  <dick@ximian.com>
738
739         * file-io.c (get_file_attributes): If the file is a symlink try
740         and get the stat data for the target, but also add the
741         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
742         the specs for the windows symlink support, but will probably have
743         to be reworked when I have test data from a vista machine.  Fixes
744         bug 79887.
745
746 2006-11-13  Dick Porter  <dick@ximian.com>
747
748         * gc.c (mono_domain_finalize): 
749         * marshal.c (mono_delegate_begin_invoke): 
750         * threadpool.c (socket_io_init, mono_thread_pool_init)
751         (mono_thread_pool_finish): 
752         * monitor.c (mono_monitor_try_enter_internal): 
753         * threads.c (mono_thread_resume, mono_thread_init)
754         (mono_thread_suspend_all_other_threads)
755         (mono_thread_execute_interruption): 
756         * appdomain.c (mono_domain_unload): Check for NULL error returns
757         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
758         75733.
759
760 2006-11-11  Miguel de Icaza  <miguel@novell.com>
761
762         * process.c
763         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
764         Only close the handle if the value of the handle is not
765         INVALID_HANDLE_VALUE.  This just makes the process a bit more
766         robust.
767
768         Improvement for #75733, so that we do not run into this problem. 
769
770         
771         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
772         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
773         internal variables.  Fixes #79462 
774         
775
776 2006-11-09  Dick Porter  <dick@ximian.com>
777
778         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
779         Use poll() not select().  Fixes bug 79397.
780
781 2006-11-09  Raja R Harinath  <rharinath@novell.com>
782
783         Fix #79872
784         * assembly.c (mono_assembly_load_from_full): Check that the given
785         image has an assembly manifest.
786
787 2006-11-09  Ankit Jain  <jankit@novell.com>
788
789         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
790         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
791         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
792
793 2006-11-07  Dick Porter  <dick@ximian.com>
794
795         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
796         Put the old resolver behaviour back for pre-2.0 profiles.
797
798 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
799
800         * threadpool.c: precise GC and locking fixes.
801
802 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
803
804         * class.c: don't load types that have an explicit unaligned
805         managed reference. Provide better info in the TypeLoad exception.
806         Part of the fix for bug #79744.
807         * object.c: use the correct check for class type load issues.
808
809 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
810
811         * class.c: enforce alignment of fields with managed references
812         even when Pack=1 is forced by the user (bug #77788).
813
814 2006-11-03  Dick Porter  <dick@ximian.com>
815
816         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
817         If the address reverse lookup fails, return it as the hostname
818         anyway.  Fixes bug 79721.
819
820 2006-11-03  Dick Porter  <dick@ximian.com>
821
822         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
823         Fix build on Windows.
824
825 2006-11-02  Dick Porter  <dick@ximian.com>
826
827         * icall-def.h: 
828         * object-internals.h: 
829         * exception.c (mono_get_exception_thread_interrupted): 
830         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
831         Fixes bug 74525.
832
833         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
834         Check for pending Thread.Interrupt.
835
836 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
837         * loader.c: Fixed bug 79684.
838
839 2006-10-27  Dick Porter  <dick@ximian.com>
840
841         * file-io.c (get_file_attributes): Force symlinks to directories
842         to be returned as a regular file.  Fixes bug 79733.
843 2006-10-26  Dick Porter  <dick@ximian.com>
844
845         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
846         CreateFile to open a directory then we need to set the
847         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
848
849 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
850
851         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
852         friends.
853
854 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
855
856         * sgengc.c: small cleanup of timer code.
857
858 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
859
860         * sgen-gc.c: fix some warnings and start adding support for
861         complete object removal on domain unload.
862
863 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
864
865         * assembly.c: build_assembly_name should not consider a version
866         number without build or revision number invalid. Fixes bug #79715.
867
868 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
869
870         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
871         call kernel32 function OutputDebugString directly.
872         
873         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
874         
875 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
876
877         * reflection.c: small cleanup, using a function to insert a MonoString
878         in the string heap.
879
880 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
881
882         * reflection.c: moving GC fixes.
883
884 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
885
886         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
887         all the objects with finalizers belonging to an unloading appdomain.
888
889 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
890
891         * sgen-gc.c: added ability to allocate even when the nursery is fully
892         pinned and fixed a couple of bugs.
893
894 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
895
896         * threads.h: Revert the last change for now.
897
898         * threads.h (mono_thread_get_pending_exception): Rename this to
899         mono_thread_get_undeniable_exception ().
900
901 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
902
903         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
904         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
905         when fname does not refer to valid assembly. This result in a more
906         meaningful error message.
907         * exception.c: added mono_get_exception_bad_image_format2 which 
908         constructs a BadImageFormatException using the ctor taking a custom
909         message and the file name. Passing in a NULL msg results in a default
910         message.
911         * exception.h: define mono_get_exception_bad_image_format2 function.
912         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
913         when file name pointed to an invalid IL image. Use 
914         mono_get_exception_file_not_found2 to construct FileNotFoundException,
915         as this results in a more meaningful error message.
916
917 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
918
919         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
920         #79465.
921
922 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
923
924         * metadata.c (mono_type_size): Change the align parameter to guint32 for
925         consistency with the other _size functions.
926         (mono_type_stack_size): Ditto.
927
928         * class.c object.c icall.c: Fix warnings caused by the above change.
929
930         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
931
932         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
933
934         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
935
936 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
937
938         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
939         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
940         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
941         threadpool.h, threads-types.h: mark more internal functions.
942
943 2006-10-11  Dick Porter  <dick@ximian.com>
944
945         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
946         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
947         reproduce the bug even before applying the fix.)
948
949 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
950
951         * reflection.c: allow retrieving attributes for arguments in generic
952         methods (bug #79241).
953
954 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
955
956         * debug-mono-symfile.c: properly check fopen () result (found by
957         coverity).
958
959 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
960
961         * reflection.c: make error message clearer and fixed two
962         issuelets found by Coverity.
963
964 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
965
966         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
967
968 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
969
970         * object-internals.h, gc-internal.h, profiler-private.h:
971         mark internal functions.
972
973 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
974
975         * reflection.c: put data in the text section.
976         * icall.c: recognize more types in type_from_typename ().
977         * process.c, marshal.c: added some GC FIXMEs.
978
979 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
980
981         * loader.c: check for NULL before initializing.
982
983 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
984
985         * gc.c (finalizer_thread): Use a non-alertable wait here.
986
987         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
988         until the correct solution is found.
989
990 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
991
992         * reflection.c (mono_module_get_object): Avoid an assert when operating on
993         modules with no metadata. Fixes #79596.
994
995         * image.c (load_metadata_ptrs): Put back the error message when
996         the #- heap is encountered since the support is not complete yet.
997
998 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
999
1000         * gc.c: do not allow the user to SuppressFinalize () a
1001         delegate because it would leak the trampoline if present.
1002
1003 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1004
1005         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1006         PropertyPtr table.
1007
1008 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1009
1010         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1011
1012         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1013
1014         * row-indexes.h: Add definitions for *Ptr tables.
1015
1016         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1017
1018         * metadata.c (mono_metadata_translate_token_index): New helper function to
1019         translate table indexes used in uncompressed metadata.
1020         (mono_metadata_decode_table_row): Ditto.
1021         (mono_metadata_decode_table_row_col): Ditto.
1022
1023         * metadata.c: Add table schema for *Ptr tables.
1024
1025         * class.c loader.c: Use the new helper function to access the affected metadata
1026         tables.
1027         
1028         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1029         #38532.
1030         
1031 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1032
1033         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1034         sequences which can be unbounded in size. Fixes #79583.
1035
1036 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1037
1038         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1039         static initialization.
1040
1041         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1042
1043         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1044
1045         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1046
1047         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1048         ctor fails, i.e. throw the same exception on subsequent accesses.
1049         
1050 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1051
1052         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1053         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1054         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1055         Handle marshalling of interfaces and VARIANTs contained in structs.
1056         
1057         Code is contributed under MIT/X11 license.
1058         
1059 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1060
1061         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1062         
1063         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1064         mempool.
1065
1066 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1067
1068         * console-io.c: ignore previous SIGINT handler.
1069
1070 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1071
1072         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1073         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1074         #79460, #79461, #79485.
1075
1076         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1077
1078         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1079         #79217.
1080
1081 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1082
1083         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1084         could be generated from it.
1085
1086 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1087
1088         * rand.c: fix read loop to correctly handle EINTR.
1089
1090 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1091
1092         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1093         internal calls are defined to keep methods closer to the declaring
1094         type and allow a significant reduction in runtime relocations and
1095         memory usage.
1096
1097 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1098
1099         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1100         exception message to have FileNotFoundException use the default
1101         assembly load error message. Fixes bug #79426.
1102         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1103
1104 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1105
1106         * threadpool.c: (start_thread_or_queue) use the root domain when
1107         creating the thread instead of the async object one.
1108
1109 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1110
1111         * class.c, object.c, class-internals.h, reflection.c:
1112         for arrays, store element_size inside MonoClass (speedup
1113         for array object creation).
1114
1115 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1116
1117         * icall.c: fixed CodeBase to use the file name and not the module
1118         name (bug #79365).
1119
1120 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1121
1122         * mono-debug.c, mono-debug.h: export find_method as
1123         mono_debug_find_method ().
1124
1125 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1126
1127         * debug-helpers.c, class-internals.h: added a few functions useful
1128         when debugging under gdb.
1129
1130 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1131
1132         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1133         characters that need special handling.
1134
1135 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1136
1137         * mono-config.c: make the os/cpu specification more flexible,
1138         allowing lists and negation.
1139
1140 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1141
1142         * marshal.c: COM Interop fixes. Handle case where method->klass.
1143         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1144         calling convention on non-windows platforms. This is for
1145         compatibility with XPCOM and MainWin COM.
1146         
1147         Code is contributed under MIT/X11 license.
1148         
1149
1150 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1151
1152         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1153         correctly. Fixes #79217.
1154
1155         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1156
1157 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1158
1159         * mono-config.c: allow both an os and cpu attribute for dllmap
1160         and dllentry elemnets to enable a single config file to be used
1161         for multiple architectures.
1162
1163 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1164
1165         * loader.c: MonoLoaderError was cleared too soon on load failure.
1166         Fixes bug #79424.
1167
1168 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1169
1170         * icall.c: use the defining class vtable when accessing a
1171         static field, not a pobblibly derived class.
1172
1173 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1174
1175         * icall.c string-icalls.c: Remove references to unicode.h.
1176
1177         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1178
1179         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1180
1181         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1182         indicating the image where custom marshaller types should be looked up.
1183         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1184         custom marshallers, instead of corlib. Fixes #79425.
1185
1186 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1187
1188         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1189
1190 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1191
1192         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1193         Implement Environment.ProcessorCount.
1194         
1195         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1196         Implement Environment.ProcessorCount.
1197         
1198         * icall.c: 
1199         Add Environment.ProcessorCount icall.
1200         
1201         Patch by Jason McFall.
1202
1203 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1204
1205         * assembly.c: don't append .exe/.dll when the filename already contains
1206         one of those extensions.
1207
1208 2006-09-12  Martin Baulig  <martin@ximian.com>
1209
1210         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1211         to array interfaces.
1212
1213 2006-09-11  Martin Baulig  <martin@ximian.com>
1214
1215         * reflection.c (mono_image_build_metadata): Create the
1216         MethodImpl's after emitting all types and methods, so we don't
1217         need another fixup pass for them.
1218
1219 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1220
1221         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1222         change.
1223
1224 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1225
1226         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1227         unload.
1228
1229 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1230
1231         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1232         args is not set. Fixes #78926.
1233
1234 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1235
1236         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1237
1238         * image.c (load_class_names): Move this to class.c, and rename it to 
1239         'mono_image_init_name_cache'.
1240         (load_modules): Fix a warning.
1241
1242         * class.c icall.c image.c: Initialize image->name_cache lazily.
1243
1244         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1245         on its name using information in the AOT file.
1246
1247         * class.c (mono_class_from_name): Use the new hook function.
1248
1249 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1250
1251         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1252         correctly.
1253
1254         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1255         Fixes #79289.
1256         
1257 2006-09-06  Martin Baulig  <martin@ximian.com>
1258
1259         * icall.c (mono_lookup_internal_call): Small fix.
1260
1261 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1262
1263         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1264         double g_free.
1265
1266 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1267
1268         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1269         when --debug is specified.
1270
1271 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1272
1273         * class.c (setup_generic_array_ifaces): Fix a warning.
1274
1275 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1276
1277         * Temporarily remove the patch to assemly.c that checks the
1278         assembly versions as it breaks our gacutil.
1279
1280 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1281
1282         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1283
1284         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1285         a net 1.0 runtime.
1286
1287         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1288         created using the default ctor. Fixes #79152.
1289         (mono_string_builder_to_utf16): Ditto.
1290
1291 2006-09-01  Martin Baulig  <martin@ximian.com>
1292
1293         Fix handling of the generic array interfaces.
1294
1295         * class-internals.h
1296         (MonoDefaults): Removed `generic_array_class' and added
1297         `generic_ilist' class.
1298
1299         * class.c
1300         (mono_bounded_array_class_get): Add the new generic array interfaces.
1301         (setup_generic_array_ifaces): New static method; create vtable
1302         entries for each method in the generic array interfaces.
1303
1304         * metadata.c
1305         (select_container): Allow "parent-less" generic methods.
1306
1307         * marshal.c
1308         (mono_marshal_get_generic_array_helper): New public method.
1309
1310         * icall.c
1311         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1312         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1313         moved the interncall into System.Array.
1314
1315 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1316
1317         A few more cases of avoiding work on types with ->byref set.
1318         Has the real fix for #79238
1319         * icall.c (is_generic_parameter): New helper.
1320         (ves_icall_Type_GetGenericParameterPosition): Use it.
1321         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1322         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1323         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1324         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1325         reference types.
1326         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1327         reference types.
1328         (ves_icall_Type_get_IsGenericInstance): Likewise.
1329         (ves_icall_Type_get_IsGenericType): Likewise.
1330
1331 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1332
1333         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1334         class if possible.
1335
1336         * mempool.h (mono_mempool_get_allocated): New helper function.
1337
1338         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1339         change.
1340
1341         * mempool.c: Fix warnings and the calculation of stats.
1342
1343         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1344
1345         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1346
1347         * loader.c (mono_get_method_from_token): Update method_count stat.
1348
1349         * class-internals.h (MonoStats): Add some stats.
1350
1351 2006-08-31 Robert Jordan  <robertj@gmx.net>
1352
1353         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1354         with managed variants.
1355         All code is contributed under the MIT/X11 license.
1356         
1357 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1358
1359         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1360         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1361
1362         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1363
1364         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1365         with cycles in classes.
1366
1367         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1368
1369         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1370         missing a [MarshalAs] directive. Fixes #79203.
1371
1372         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1373         klass->marshal_info. Fixes #79217.
1374
1375 2006-08-30  Martin Baulig  <martin@ximian.com>
1376
1377         Committing a patch from Joachim Ante <joe@otee.dk>:
1378         Add support for binary data symbol stores.
1379
1380         * debug-mono-symfile.c
1381         (mono_debug_open_mono_symbol_file): Renamed into
1382         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1383         arguments.
1384
1385         * mono-debug.c
1386         (mono_debug_open_image): Added `raw_contents' and `size' args.
1387         (mono_debug_init_2_memory): New public function.
1388
1389 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1390
1391         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1392
1393 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1394
1395         * appdomain.c: implement support for ShadowCopyFiles.
1396
1397 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1398
1399         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1400         when value is NULL (and should remove CID #51).
1401
1402 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1403
1404         * image.c: moved 2 functions to ../utils.
1405
1406 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1407
1408         * gc.c: cope with the target object of a GC handle being NULL
1409         (bug #78877).
1410
1411 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1412
1413         * class.c: recursively check parent's explicit implementations
1414         of interface methods (fixes bug #79125).
1415
1416 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1417
1418         * filewatcher.c: Avoid warnings when building, do not redefine
1419         constants that are defined.
1420
1421         Remove warnings.
1422
1423 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1424
1425         * image.c: don't fail when the link points to an absolute path.
1426
1427 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1428
1429         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1430         Fix CID #3.
1431
1432 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1433
1434         * image.c (full_path): A new method used to obtain the actual path
1435         of an assembly even in the presence of symbolic links.  
1436
1437         This is necessary for the case where we are running a binary that
1438         has been GACed, but we are using the "published" path name
1439         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1440         file in the GAC.
1441
1442         This was the source of the failure for the `xsp' command with the
1443         recent AppDomain changes, as far as the runtime was concerned,
1444         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1445         $prefix/mono/gac/blah/version/blah.exe.
1446
1447         (do_mono_image_open): use full path
1448
1449 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1450
1451         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1452
1453 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1454
1455         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1456         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1457
1458 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1459
1460         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1461         small structures. Fixes #78990.
1462
1463 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1464
1465         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1466
1467         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1468
1469 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1470
1471         * appdomain.c:
1472         * marshal.c: don't load all the assemblies from a domain into newly
1473         created ones. The new domains might have different rules and load
1474         assemblies from different locations. Fixes bug #76757.
1475
1476         Patch by Lluis. Conflicts resolved by Brian Crowell.
1477
1478 2006-08-16  Alp Toker  <alp@atoker.com>
1479
1480         * socket-io.c: First half of the fix for #79084.
1481         Set sa_size to the length of the content, not that of the struct.
1482         Don't add NULL suffix to the content, this should be done in
1483         managed code if needed.
1484
1485 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1486
1487         Fix part of #79012
1488         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1489         mono_metadata_parse_type returns NULL.
1490
1491 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1492
1493         * normalization-tables.h : new file for string normalization data.
1494         * locales.c, locales.h, icall.c :
1495           added load_normalization_resource() for string normalization,
1496           and icall as well.
1497         * Makefile.am : added normalization-tables.h to the sources.
1498
1499 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1500
1501         * marshal.c: Add more helper functions to reduce code duplication and use them
1502         everywhere.
1503
1504 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1505
1506         * marshal.c: Fix non-x86 stdcall warnings.
1507         
1508         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1509         them everywhere.
1510
1511 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1512
1513         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1514         type check on multi-dimensional arrays. Fixes #79000.
1515
1516 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1517
1518         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1519         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1520         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1521         * class-internals.h: add is_com_object to class structure.
1522         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1523         null checks to COM object marshalling. Fix .ctor call on RCW.
1524         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1525         
1526         All code is contributed under the MIT/X11 license.
1527
1528 2006-08-09  Dick Porter  <dick@ximian.com>
1529
1530         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1531         racing mono_monitor_allocator_lock() somewhere, so don't delete
1532         the critical section for now.  Found by running and exiting
1533         monodevelop.
1534
1535 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1536
1537         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1538         (ves_icall_System_ComObject_FindInterface): Ditto.
1539         (ves_icall_System_ComObject_CacheInterface): Ditto.
1540
1541         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1542         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1543
1544 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1545
1546         * threadpool.c: treat pipes from process asynchronous reads as sockets
1547         when reading from them, so we get select/poll or epoll to wait for
1548         data.
1549
1550 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1551
1552         * loader.c: Fix a typo (CID #233) in the null check.
1553
1554 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1555
1556         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1557         Hopefully fixes #78949.
1558         
1559         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1560         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1561         bytes. Fixes #78972.
1562
1563 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1564
1565         * filewatcher.c: we need to set errno here.
1566
1567 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1568
1569         * filewatcher.c: let Win32Exception get the error value.
1570
1571 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1572
1573         * filewatcher.c: translate errno into win32 errors for Win32Exception
1574         to know what happened.
1575
1576 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1577
1578         * threadpool.c: Fix more warnings.
1579
1580         * assembly.c (search_loaded): Fix warnings.
1581
1582         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1583         (mono_async_invoke): Ditto.
1584
1585 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1586
1587         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1588         entries for __ComObject type in addition to ComImport types.
1589         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1590         about hash table.
1591         
1592         All code is contributed under the MIT/X11 license.
1593
1594 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1595
1596         * image.c: avoid tentative loading of modulerefs that contain
1597         no metadata (P/Invoke library names).
1598
1599 2006-07-28  Dick Porter  <dick@ximian.com>
1600
1601         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1602         mono_loader_lock() somewhere, so don't delete the critical section
1603         for now.  Found by running and exiting monodevelop.
1604
1605 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1606
1607         * filewatcher.c: define the inotify syscalls when we're building on
1608         linux and have sys/syscall.h. The build system might not have support
1609         for inotify but the target system might have it.
1610
1611 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1612
1613         * domain.c: Documentation updates.
1614
1615         * loader.c (mono_free_method): Do not release the method
1616         information if we are being profiled, as profilers will use this
1617         information at shut down to present some data to the user.
1618
1619         This is needed so that the profiler does not crash, as the
1620         profiler tends to keep MonoMethods around, and they might become
1621         invalid if we free these.
1622
1623         (mono_get_method_constrained): Return the original CIL stream
1624         method as well, so verification can be performed against it.
1625
1626 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1627
1628         * filewatcher.[ch]: support for inotify file system watcher.
1629         * icall.c: add new internal calls for the inotify file system watcher.
1630
1631 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1632
1633         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1634         #78888.
1635
1636 2006-07-20  Dick Porter  <dick@ximian.com>
1637
1638         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1639         warning.
1640
1641 2006-07-20  Dick Porter  <dick@ximian.com>
1642
1643         * threads.c (start_wrapper): Do the thread cleanup while we still
1644         hold a reference to its object.  Fixes bug 78123.
1645
1646 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1647
1648         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1649         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1650           "managed-to-managed".
1651         * icall.c: Redirect string constructors that take sbyte* to
1652           ves_icall_System_String_ctor_RedirectToCreateString.
1653         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1654           to CreateString () methods with matching signature.
1655         * reflection.c: Use original security informations for
1656           MONO_WRAPPER_MANAGED_TO_MANAGED.
1657         * security-manager.c: Use original security informations for
1658           MONO_WRAPPER_MANAGED_TO_MANAGED.
1659         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1660           that is a placeholder and only its address should be used.
1661         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1662           that is a placeholder and only its address should be used.
1663
1664 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1665
1666         Begin implementing COM Interop.
1667         * appdomain.c: Increment corlib version.
1668         * class.c: Set ComImport classes' parent to __ComObject.
1669         * loader.c: Mark cominterop methods as such.
1670         * domain.c: Add __ComObject class to MonoDefaults structure.
1671         * image.c: Add 2 hashtables to the image for COM Interop related methods
1672         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1673         using the mempool allocator
1674         
1675         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1676         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1677         declaration for mono_metadata_type_dup_mp.
1678         
1679         * debug-helpers.c: Added strings for two additional wrapper types
1680         * object.c: Create proxy objects for ComImport classes
1681         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1682         and added __ComObject class to MonoDefaults structure.
1683         
1684         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1685         MonoComInteropProxy and MonoComObject.
1686         
1687         * marshal.c: Added support for COM Interop
1688         (signature_cominterop): Converts managed signature to corresponding
1689         unmanaged COM signature.
1690         (cominterop_get_function_pointer): gets unmanaged function pointer via
1691         COM object vtable
1692         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1693         (cominterop_get_method_interface): returns interface type that method is defined on
1694         (mono_mb_emit_cominterop_call): emits native call to function pointer
1695         gotten from vtable
1696         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1697         that matches signature of unmanaged function.
1698         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1699         (cominterop_get_invoke): forwards call from proxy to __ComObject
1700         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1701         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1702         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1703         
1704         * marshal.h: Added Marshal icall declarations.
1705         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1706         so we can access them in finalizer
1707         
1708 2006-07-14  Dick Porter  <dick@ximian.com>
1709
1710         * object.c (mono_type_initialization_cleanup): Fix a race
1711         condition by temporarily commenting out the critical section
1712         deletion.
1713
1714 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1715
1716         * reflection.c (create_custom_attr): Fix some warnings.
1717         (create_custom_attr_data): Ditto.
1718         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1719         types. Fixes #78855.
1720
1721 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1722
1723         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1724
1725         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1726
1727 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1728
1729         * reflection.c (resolve_object): Add support for DynamicMethod.
1730
1731         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1732         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1733
1734 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1735
1736         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1737         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1738
1739 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1740
1741         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1742         Fixes #77888.
1743
1744 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1745
1746         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1747         slightly: remove a shadow local variable.
1748
1749 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1750
1751         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1752         definition that introduces the virtual function slot.
1753         Also fix Coverity #105.
1754
1755 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1756
1757         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1758         for dynamic assemblies. Fixes #78724.
1759
1760 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1761
1762         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1763         Fixes #78722.
1764
1765 2006-06-21  Martin Baulig  <martin@ximian.com>
1766
1767         * reflection.c
1768         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1769         fixes #76484.
1770
1771 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1772
1773         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1774
1775 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1776
1777         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1778         nor TYPEREFs.
1779         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1780         Inflate result if necessary.
1781         (mono_class_get_full): Remove old version.  Rename from
1782         'mono_class_get' and add 'context' argument.  Pass it to
1783         ..._create_from_typespec.
1784         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1785         (mono_ldtoken): Revert change below.
1786
1787 2006-06-20  Martin Baulig  <martin@ximian.com>
1788
1789         * class.c (mono_ldtoken): Don't pass the generic context to
1790         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1791
1792 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1793
1794         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1795         and later freeing it. Fixes #78638.
1796
1797 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1798
1799         * icall.c (mono_class_get_throw): Revert over-zealous error
1800         throwing, the caller for mono_class_get_throw will cope with
1801         errors when classes are not properly initialized already.
1802
1803         The code still copes with loader exceptions though.
1804
1805         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1806         
1807 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1808
1809         Fixes the `make run1' version of RuntimeAbort (to be commited,
1810         source is in Bugzilla).
1811         
1812         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1813         FALSE on class loading failure instead of returning true.
1814
1815         * class.c (mono_class_create_from_typedef): It is possible for
1816         mono_metadata_interfaces_from_typedef_full to fail if a class is
1817         not found, cope with this.
1818         
1819
1820 2006-06-14  Dick Porter  <dick@ximian.com>
1821
1822         * socket-io.c: 
1823         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1824         4.1.1
1825
1826 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1827
1828         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1829
1830 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1831
1832         * icall.c: Another fix for building mono in Visual Studio.
1833
1834 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1835
1836         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1837         
1838 2006-06-09  Martin Baulig  <martin@ximian.com>
1839
1840         * debug-mono-symfile.c: Put this back and really fix it this
1841         time. Sorry for all the trouble.
1842
1843 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1844
1845         * icall.c (mono_class_get_throw): Fix a warning.
1846         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1847         ReflectionTypeLoadException if needed. Fixes #78606.
1848
1849         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1850         (mono_class_init): Ditto.
1851
1852         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1853         ref_only exceptions.
1854         (mono_loader_clear_error): Make this work even if there is no error.
1855
1856 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1857
1858         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1859         Marshal.GetComSlotForMethodInfo using internal call.
1860
1861 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1862
1863         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1864         a function for signalling it.
1865
1866         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1867         a referenced assembly is not found.
1868
1869         * loader.c (mono_loader_error_prepare_exception): Add support for 
1870         LOADER_ERROR_ASSEMBLY. Fix formatting.
1871
1872 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1873
1874         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1875         for VARIANT marshalling on windows and increment corlib version
1876         since Variant struct was added.
1877
1878 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1879
1880         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1881         stack trace line information:
1882
1883         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1884         (Martin) when looking up B which is between A and C, return A not C.
1885
1886         Bug is #78573.
1887
1888         Thanks to Alexander Olk for tracking this down.
1889
1890 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1891
1892         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1893         
1894         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1895         avoid clobbering its value.
1896         (mono_string_to_lpstr): Fix a warning on windows.
1897
1898 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1899
1900         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1901
1902         * reflection.c loader.c: Removed references to 'dummy' flag.
1903
1904         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1905
1906         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1907         it gets GC tracking.
1908
1909         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1910         GC tracking.
1911         
1912         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1913
1914         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1915
1916         * appdomain.c: Bump corlib version.
1917
1918 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1919
1920         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1921         CEE_STIND_REF when working with object references.
1922
1923 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1924
1925         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1926         Fixes #78539.
1927
1928 2006-05-30  Miguel de Icaza  <miguel@novell.com>
1929
1930         * loader.c (method_from_memberref): Fix argument value for
1931         mono_loader_set_error_method_load (I was passing the MonoClass
1932         instead of the class name char *).
1933
1934 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1935
1936         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1937         CEE_STIND_REF when working with object references.
1938
1939 2006-05-30  Martin Baulig  <martin@ximian.com>
1940
1941         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
1942         mono_method_full_name() change and replace the ':' with a '.'
1943         here.
1944
1945 2006-05-30  Martin Baulig  <martin@ximian.com>
1946
1947         * debug-mono-symfile.c
1948         (mono_debug_symfile_lookup_location): Fix the algorithm:
1949         when looking up B which is between A and C, return A not C.
1950
1951 2006-05-29  Martin Baulig  <martin@ximian.com>
1952
1953         * mono-debug.h
1954         (MonoDebugMethodInfo): Make the typedef public.
1955         (MonoDebugSourceLocation): New public struct.
1956
1957         * mono-debug.c
1958         (mono_debug_source_location_from_address): Removed.
1959         (mono_debug_source_location_from_il_offset): Removed.
1960         (mono_debug_il_offset_from_address): Removed.
1961         (mono_debug_address_from_il_offset): Removed.
1962         (mono_debug_lookup_method): New public function.
1963         (mono_debug_lookup_source_location): New public function; replaces
1964         the old mono_debug_source_location_from_*() functions; see the
1965         inline documentation.
1966         (mono_debug_free_source_location): New public function.
1967         (mono_debug_print_stack_frame): New public function; see the
1968         inline documentation.
1969
1970         * debug-mono-symfile.c
1971         (mono_debug_find_source_location): Renamed into
1972         mono_debug_symfile_lookup_location(); only take a
1973         `MonoDebugMethodInfo *' and an `offset' argument; added inline
1974         documentation.
1975         (mono_debug_find_method): Renamed into
1976         mono_debug_symfile_lookup_method().
1977
1978 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
1979
1980         * assembly.c (mono_assembly_open_full): Dont overwrite the status
1981         returned by mono_image_open_full ().
1982
1983         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
1984         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
1985         #78517.
1986
1987         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
1988         #78518.
1989
1990 2006-05-27  Miguel de Icaza  <miguel@novell.com>
1991
1992         * class.c (mono_class_from_typeref): handle missing images
1993         earlier, deals with bug #78418.   Refactor code; 
1994
1995         Fix a warning introduced in my previous commit (some stale code
1996         from before I revisited my patch).
1997
1998         * class.c (mono_class_create_from_typedef): On failure, remove the
1999         class from the MonoImage->class_cache as the class is not
2000         initialized;   Fixes the leak pointed out by Paolo.
2001
2002 2006-05-25  Dick Porter  <dick@ximian.com>
2003
2004         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2005         DeleteCriticalSections until I figure out which one may still be
2006         sometimes locked when mono_thread_cleanup is called.
2007
2008 2006-05-24  Dick Porter  <dick@ximian.com>
2009
2010         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2011         of mono_thread_manage and back into its own function, so it can be
2012         called after the finalizer thread has finished.
2013
2014         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2015
2016 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2017
2018         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2019         Fixes #78495.
2020
2021         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2022         with non-blittable elements.
2023         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2024
2025 2006-05-24  Martin Baulig  <martin@ximian.com>
2026
2027         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2028         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2029
2030         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2031         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2032         `mono_debugger_event_handler' to NULL.
2033
2034 2006-05-24  Martin Baulig  <martin@ximian.com>
2035
2036         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2037
2038 2006-05-24  Martin Baulig  <martin@ximian.com>
2039
2040         * mono-debug-debugger.h
2041         (mono_debugger_create_notification_function): Added
2042         `MonoCodeManager *' argument.
2043
2044 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2045
2046         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2047
2048 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2049
2050         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2051         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2052         implementation.
2053
2054 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2055
2056         * icall.c: precise GC support: objects can't be stored in unmanaged
2057         memory anymore, even if they are kept alive by other references: since
2058         they can move the GC needs to be able to always find them.
2059
2060 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2061
2062         * object.c: precise GC support for static fields. Support
2063         for moving GCs: write barriers and pinned allocation for interned
2064         strings.
2065
2066 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2067
2068         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2069         structure.
2070
2071 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2072
2073         * class.c, gc.c: sgen and precise GC updates.
2074
2075 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2076
2077         * marshal.h, marshal.c: added write barrier wrapper and precise type
2078         fixes.
2079
2080 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2081
2082         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2083         support.
2084
2085 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2086
2087         * reflection.c: precise and sgen GC updates.
2088
2089 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2090
2091         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2092
2093 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2094
2095         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2096
2097 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2098
2099         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2100         MONO_TYPE_OBJECT. Fixes #78462.
2101
2102 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2103
2104         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2105         and blittable types.
2106
2107 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2108
2109         * class.c (mono_class_get_exception_for_failure): Implement parts
2110         of a TODO: if the loader error is set (instead of the class
2111         error), we return a Loader exception that can be properly thrown
2112         elsewhere.
2113
2114         This was exposed by some Winforms 2.0 code that I tried to run
2115         (Atsushi pointed me to it).
2116
2117 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2118
2119         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2120         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2121         
2122         * marshal.c (emit_marshal_vtype): Add limited support for 
2123         UnmanagedType.LPStruct. Fixes #78427.
2124
2125         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2126         Applied a patch from kangaroo to fix #77523.
2127
2128 2006-05-17  Martin Baulig  <martin@ximian.com>
2129
2130         * threads.c
2131         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2132         (debugger_thread_created): Removed.
2133         (debugger_thread_exited): Removed.
2134
2135 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2136
2137         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2138
2139         * object-internals.h (MonoReflectionResource): Sync with managed version.
2140
2141 2006-05-12  Wade Berrier <wberrier@novell.com>
2142
2143         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2144
2145 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2146
2147         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2148         functions try to allocate from the image mempool.
2149
2150 2006-05-12  Dick Porter  <dick@ximian.com>
2151
2152         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2153
2154 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2155
2156         * object.c: The FieldGetter and FieldSetter methods require the full
2157         name of the class, not only the name. Fixes bug #78277.
2158
2159 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2160
2161         * loader.c (method_from_memberref): Do not pass the NULL klass to
2162         mono_loader_set_error_() methods.  Pass the non-NULL value
2163         (class). 
2164
2165 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2166
2167         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2168         (mono_assembly_close): Null out assembly->image->references after freeing it.
2169
2170         * image.c (mono_image_close): Free image->references.
2171         
2172         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2173
2174 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2175
2176         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2177         before checking if it's NULL (g_assert).
2178
2179 2006-05-10  Martin Baulig  <martin@ximian.com>
2180
2181         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2182         I thought I already killed that two months ago, but now it somehow reappeared.
2183
2184 2006-05-10  Martin Baulig  <martin@ximian.com>
2185
2186         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2187
2188 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2189
2190         * reflection.c: Allocate memory for dynamically created methods in the image
2191         mempools.
2192
2193 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2194
2195         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2196         don't use the ad pointer before checking if it's NULL (g_assert).
2197
2198 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2199
2200         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2201         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2202
2203         * marshal.c: Allocate all signatures from mempools.
2204
2205         * marshal.c: Allocate some more signatures from mempools.
2206
2207 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2208
2209         * object.c (mono_load_remote_field): The code used to provide a
2210         temporary variable for returning results if the user did not
2211         provide a result pointer.  But our temporary variable was allocted
2212         on the satck.
2213
2214         Fix calling code to always pass a result area.   Coverity ID 103.
2215
2216 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2217
2218         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2219         value, not the old. Fixes #78312.
2220         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2221
2222         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2223         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2224         per-image cache.
2225
2226         * assembly.c (mono_assembly_close): Free image->references.
2227
2228         * assembly.c (mono_assembly_names_equal): Fix a warning.
2229         (mono_assemblies_cleanup): Cleanup more global data.
2230
2231         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2232
2233         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2234         ptr_cache and image->modules.
2235
2236         * image.c (mono_image_init): Allocate array_cache lazily.
2237         
2238 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2239
2240         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2241         behavior was changed recently and has bad side effects.
2242
2243 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2244
2245         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2246         
2247         * assembly.c (mono_assembly_close): Remove a debug printf.
2248
2249         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2250
2251         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2252         to also allow for temporary references between mono_image_open ()/close ().
2253
2254         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2255
2256 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2257
2258         * marshal.c: Fix support for dynamic methods.
2259
2260         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2261
2262         * marshal.c (mono_marshal_cleanup): New cleanup function.
2263
2264         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2265         image mempools.
2266
2267         * class.c (mono_class_init): Fix leaking class->nested_classes.
2268
2269         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2270
2271         * image.c (mono_image_init): Initialize the new cashes.
2272
2273         * image.c (mono_image_close): Destroy the new cashes.
2274
2275         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2276
2277         * mempool.c (mono_mempool_strdup): New helper function.
2278
2279         * class-internals.h: Add prototype for mono_loader_unlock ().
2280
2281         * domain.c (mono_jit_info_table_find): Fix a warning.
2282         (mono_debugger_check_runtime_version): Ditto.
2283
2284         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2285         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2286         functions to these modules.
2287
2288         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2289         metadata modules.
2290         
2291         * marshal.c (mono_free_bstr): Fix a warning.
2292
2293         * assembly.c (mono_assembly_open_full): Fix another small leak.
2294
2295         * object.c: Fix some unload leaks in the remoting code.
2296
2297         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2298         function.
2299
2300         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2301
2302         * reflection.c: Fix some unload leaks in dynamic assemblies.
2303
2304 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2305
2306         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2307         * marshal.h: Add BSTR support on Win32
2308         * icall.c: Add BSTR icalls
2309         * metadata.h: Add BSTR enums
2310
2311 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2312
2313         Work to catch the crash from #76795 and turn it into an
2314         exception.   As I stubbed out pieces of the VisualBasic support,
2315         I found a number of places where the code was failing and I added
2316         checks to those places. 
2317         
2318         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2319         function return a status code.  If we fail to parse the signature
2320         from mono_metadata_parse_generic_inst, return FALSE.
2321
2322         * loader.c (mono_get_method_from_token): If we fail to load the
2323         method (mono_class_get) return NULL.   
2324
2325         * (method_from_memberref): Return NULL if we are unable to parse
2326         the method signature
2327
2328         (mono_loader_error_prepare_exception): Since we now use the
2329         loader_error flag internally to stop processing, and obtaining
2330         exceptions that might be thrown will walk this code path the
2331         proper way of going from a MonoLoaderError into a
2332         MonoException was convoluted.   This new routine encapsulates the
2333         process of turning the error into an exception and *clearing* the
2334         error afterwards.
2335         
2336 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2337
2338         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2339         with missing assemblies), and to cope with:
2340
2341                 * Missing fieldref from a non-existing assembly.
2342                 * Missing methodref from a non-existing assembly.
2343
2344         The first batch of work to address *some* of the issues from 76661.
2345         
2346         * object.c (mono_class_create_runtime_vtable): If we fail to
2347         initialize the class raise the exception here. 
2348
2349         * metadata.c (mono_class_get_overrides_full): If any methods fail
2350         to load return the failure to the caller.
2351
2352         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2353         flagging assemblies that failed to load.   
2354
2355         Do not crash if we are unable to load the assembly.
2356
2357         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2358         assemblies. 
2359
2360         * loader.c (mono_loader_set_error_type_load): Change the
2361         convention to always pass unallocated strings, so we make our own
2362         copies (I know our own code had duplicated strings before, but
2363         this keeps the normal conventions).
2364         (method_from_memberref): Call mono_loader_set_error_method_load
2365         for all possible failures of loading the class. 
2366         Remove assert, turn into a loader error.
2367
2368         (mono_loader_error_to_exception): Move this routine from mini
2369         (mini_loader_error_to_exception) there was no need to have that in
2370         mini. 
2371
2372         * class.c (mono_class_from_typeref): If we were not able to load
2373         the assembly with mono_assembly_load_reference, call the
2374         mono_loader_set_error_type_load to register the problem.
2375
2376         (mono_class_setup_fields): If we fail to load the type from
2377         mono_metadata_parse_type_full, call mono_class_set_failure and
2378         break from the loop.
2379
2380         If class->exception_type is set, we do not layout the fields as
2381         that might crash the runtime, and instead return (from breaking
2382         from the previous loop).
2383
2384         (mono_class_setup_vtable): This now returns a boolean indicating
2385         whether the table was properly setup.   The decision is driven by
2386         mono_class_get_overrides_full which might run into non-existing
2387         methods. 
2388         
2389         (mono_class_init): Returns TRUE on success or FALSE if there was a
2390         problem in loading the type (incorrect assemblies, missing
2391         assemblies, methods, etc).
2392
2393         When we call mono_class_setup_fields we also check for a potential
2394         error inside this call (either a class exception or a general
2395         loader exception).
2396
2397         (mono_class_create_from_typedef): If the parent fails to load
2398         (calling mono_class_get_full) return NULL.
2399         
2400         ** Important **
2401
2402         calls to mono_metadata_parse_type_full should be checked
2403         everywhere and set the mono_class_set_failure
2404         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2405
2406         The current patch checks the places where my manually constructed
2407         tests show the errors are showing up, but we should do it
2408         everywhere. 
2409
2410         ** Important2 **
2411
2412         mono_class_init return values should be tested everywhere, like
2413         the previous case this is something that we should audit
2414         everywhere and not only on the cases exposed by the tests I
2415         created. 
2416
2417 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2418
2419         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2420         boolean parameter and instead pass the information on `options'
2421         parameter (FileOptions).
2422
2423         * icall.c: Register the new signature for MonoIO.Open.
2424
2425         * debug-helpers.c (dis_one): Trying to understand how coverity
2426         works.  Fix Run 5, item 78.
2427
2428 2006-04-26  Dick Porter  <dick@ximian.com>
2429
2430         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2431         dereference.
2432
2433 2006-04-25  Martin Baulig  <martin@ximian.com>
2434
2435         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2436
2437         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2438         debugger_thread_created().
2439         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2440         special way.
2441         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2442         (mono_debugger_finalize_threads): New function; undo the effects
2443         of mono_debugger_init_threads().
2444         (mono_debugger_create_all_threads): Removed.
2445
2446 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2447
2448         * image.c (mono_image_close): Tidy up trace messages.
2449
2450         * assembly.c (mono_assembly_close): Ditto.
2451
2452         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2453         no longer references an already freed assembly. Fixes #78168.
2454
2455 2006-04-21  Dick Porter  <dick@ximian.com>
2456
2457         * threads.c (mono_thread_detach): Fix reference counting when
2458         detaching threads.
2459
2460 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2461
2462         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2463         #78155.
2464
2465 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2466
2467         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2468         (mono_type_to_stind): Ditto.
2469
2470         * marshal.c: Use the new helper functions to simplify code.
2471
2472         * image.c (mono_image_close): Add some code for help debug assembly unloading
2473         problems.
2474
2475         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2476         image mempool.
2477
2478         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2479         assembly was already loaded in another appdomain. Fixes #78083.
2480
2481 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2482
2483         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2484         referenced assemblies.
2485         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2486
2487         * domain.c (mono_domain_free): Add a trace message.
2488
2489         * appdomain.c (add_assemblies_to_domain): Ditto.        
2490
2491         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2492         field.  
2493
2494 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2495
2496         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2497
2498 2006-04-12  Martin Baulig  <martin@ximian.com>
2499
2500         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2501         `USE_INCLUDED_LIBGC'.   
2502
2503 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2504
2505         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2506         the patch contains ../ and a small directory name later. Hopefully fixes
2507         #78035.
2508
2509 2006-04-10  Martin Baulig  <martin@ximian.com>
2510
2511         Clean up the debugger's thread-handling code.
2512
2513         The debugger's thread-handling code has been moved from
2514         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2515         over the `threads' hash, keep track of exiting threads and also
2516         use proper locking.
2517
2518         We can now debug XSP and XSP based applications with the debugger.
2519
2520         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2521
2522         * threads.h
2523         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2524         (mono_install_thread_callbacks): Likewise.      
2525
2526         * threads.c (mono_thread_callbacks): Removed.
2527         (debugger_thread_created, debugger_thread_exited): New static functions.
2528         (start_wrapper): Call debugger_thread_created().
2529         (thread_cleanup): Call debugger_thread_exited().
2530         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2531         (mono_debugger_init_threads): New public function.
2532         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2533         iterate directly over the `threads' hash and also use proper locking.
2534
2535         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2536
2537         * mono-debug-debugger.h
2538         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2539
2540 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2541
2542         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2543         argument type=array. Fixes #78057.
2544
2545 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2546
2547         * culture-info-table.h : regenerated. Fixed bug #69652.
2548
2549 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2550
2551         * loader.c metadata.c: Reapply a variant r59116.
2552         
2553         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2554
2555         * class.c (mono_class_setup_interface_offsets): New internal function.
2556
2557         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2558         interfaces too. Fixes #77398.
2559
2560         * reflection.c (encode_cattr_value): Add support for 
2561         parameter type=object, argument type=array.
2562         (load_cattr_value): Ditto. Fixes #77916.
2563
2564         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2565         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2566
2567         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2568         a byval char array and CharSet is Ansi.
2569
2570         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2571
2572 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2573
2574         * metadata.c: Add some locking comments.
2575         
2576         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2577         mempool.
2578         (mono_metadata_free_method_signature): Don't free the signature itself.
2579
2580         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2581
2582         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2583         reference the same MonoImage.
2584         (mono_assembly_load_from_full): Add an assert.
2585
2586 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2587
2588         * image.c (mono_image_close): Don't put the image we are about to free into the
2589         loaded_images_guid_hash.
2590
2591         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2592         to reduce code duplication.
2593
2594         * marshal.c: Register the native functions called by this module as icalls, to
2595         somewhat centralize the creation of MonoMethodSignature's.
2596
2597         * loader.c (mono_method_signature): Add a cache for method signatures.
2598
2599         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2600         the parameter attributes of a method.
2601         (mono_metadata_parse_method_signature_full): Refactored the computation of
2602         parameter attributes into a separate function. Also avoid one allocation in
2603         most cases.
2604
2605         * assembly.c (mono_assembly_close): Ditto.
2606
2607         * image.c (mono_image_close): Log trace messages with INFO level.
2608
2609         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2610
2611         * image.c reflection.c: Correct reference counting of image modules.
2612         
2613         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2614         of this function from the image mempool.
2615         
2616         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2617         to allow more cached types to be used.
2618
2619         * mono-debug.c (mono_debug_add_method): Appled patch from
2620         David S. Miller  <davem@sunset.davemloft.net>: Access 
2621         minfo->lexical_blocks[] entry elements using read32().
2622
2623 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2624
2625         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2626         methods as it is allocated from the mempool.
2627
2628         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2629         image mempool.
2630
2631         * metadata-internals.h: Add comments describing the reference counting scheme
2632         used for MonoImage and MonoAssembly.
2633
2634         * image.c assembly.c reflection.c: Rework reference counting of images and 
2635         assemblies so they are freed when the runtime is shut down. Free some 
2636         additional memory structures when an image is unloaded.
2637         
2638 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2639
2640         * class.c loader.c reflection.c: Allocate more data structures in
2641         the image mempool.
2642
2643 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2644
2645         * icall.c
2646         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2647         build on pre glib 2.4 systems.
2648
2649 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2650
2651         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2652
2653         * icall.c: Fix some warnings.
2654
2655 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2656
2657         * culture-info-table.h : regenerated.
2658
2659 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2660
2661         * threads.c, object-internals.h, verify.c: changed the culture caching
2662         code to use a normal MonoArray for storage so the GC can keep track of
2663         them easily. Fixed bits of the cache logic, too and simplified the
2664         code.
2665
2666 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2667
2668         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2669         thread for non-Boehm GCs.
2670
2671 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2672
2673         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2674         needed to keep track of the data for static fields.
2675
2676 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2677
2678         Fix #75172
2679         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2680         for interface classes.  Use 'num_methods' instead.
2681         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2682         before using '->vtable_size' field.
2683
2684 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2685
2686         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2687         doesn't contain managed pointers, so use a normal hashtable.
2688
2689 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2690
2691         * reflection.c, class-internals.h, domain.c: fixed handling of types
2692         used as values for objects in custom attributes (bug #77915):
2693
2694 2006-03-24  Martin Baulig  <martin@ximian.com>
2695
2696         * class.c (mono_class_setup_fields): Added support for generic
2697         instances; fixes #77580.
2698
2699 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2700
2701         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2702
2703 2006-03-24  Dick Porter  <dick@ximian.com>
2704
2705         * file-io.c (get_file_attributes): More stat macro breakage.
2706         Fixes bug 77759.
2707
2708 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2709
2710         * profiler.c: added the file=filename option in the default profiler
2711         to output the profile data to filename.
2712
2713 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2714
2715         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2716         bug #77877.
2717
2718 2006-03-22  Martin Baulig  <martin@ximian.com>
2719
2720         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2721         allocated `MonoClassField *' in `fb->handle'.
2722
2723 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2724
2725         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2726         allocate interface ID to save memory and allow better ID reuse on
2727         appdomain unload. setup_generic_vtable () removal from Martin.
2728
2729 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2730
2731         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2732         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2733         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2734         write barriers for reference stores with managed objects accessed with
2735         C structures in the runtime and in embedding programs.
2736
2737 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2738
2739         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2740         'interface_id' and 'max_interface_id' fields of MonoClasses
2741         representing open generic types.
2742
2743 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2744
2745         * object.h, object.c, icall.c: added functions to deal with
2746         storing valuetypes that contain references in managed objects.
2747         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2748         fixes and comments around uses of mono_array_addr ().
2749
2750 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2751
2752         * object.h, icall.c, monitor.c: object.GetHashCode ()
2753         implementation that supports the moving garbage collector.
2754
2755 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2756
2757         * icall.c, threads-types.h, threads.c: implemented finalizer for
2758         LocalDataStoreSlot.
2759
2760 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2761
2762         * metadata.c (mono_type_size): Add a fixme.
2763         (mono_type_stack_size): Ditto.
2764
2765         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2766         'type_forwarders' field.
2767
2768         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2769         attribute from net 2.0.
2770
2771         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2772         from class.c.
2773
2774         * class.c (mono_class_setup_fields): Fix a warning.
2775         
2776         * class.c (mono_class_from_name): Add support for assemblyref entries
2777         in the EXPORTEDTYPE table.
2778
2779         * reflection.c: Add support for handling type forwarders under net 2.0.
2780
2781         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2782         
2783 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2784
2785         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2786         overwriting entries in ModuleBuild->types, also clean up the code
2787         a little. Fixes #77774.
2788
2789 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2790
2791         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2792         load friend assembly info when present.
2793
2794 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2795
2796         Fix crasher on gtest-158.cs.
2797         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2798         the return value if the MonoClass we want is yet in an
2799         inconsistent state.
2800         * class.c (mono_class_create_from_typedef): Add an comment
2801         explaining an order dependency between mono_class_setup_parent and
2802         mono_class_setup_mono_type.
2803
2804 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2805
2806         * class.c: documentation updates and events bug fix.
2807
2808 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2809
2810         * class.c: some cleanup, locking fixes.
2811
2812 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2813
2814         * class.c: fix the generics code to setup nested
2815         type info to the instantiated type (bug #77770).
2816
2817 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2818
2819         * marshal.c: fixed a few type correctness issues.
2820
2821 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2822
2823         * loader.c: the Set/Get/Addrtess array methods should be public.
2824
2825 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2826
2827         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2828         
2829         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2830         info->wrapper.
2831
2832 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2833
2834         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2835
2836         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2837
2838         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2839         (mono_mempool_alloc0): Ditto.
2840
2841 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2842
2843         * socket-io.c:
2844         (create_object_from_sockaddr): it was allocating 4 extra bytes
2845         for the AF_UNIX data. Fixes bug #77747.
2846
2847 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2848
2849         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2850
2851 2006-03-09  Dick Porter  <dick@ximian.com>
2852
2853         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2854         Fixes bug 76966 again.
2855
2856 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2857
2858         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2859         names from r57532
2860         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2861
2862 2006-03-07  Martin Baulig  <martin@ximian.com>
2863
2864         * object.c
2865         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2866
2867 2006-03-07  Martin Baulig  <martin@ximian.com>
2868
2869         * class.c
2870         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2871         regression introduced in r56970; see gtest-252.cs.
2872
2873         * loader.c (mono_get_method_constrained): Correctly handle generic
2874         methods; see gtest-253.cs.
2875
2876 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2877
2878         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2879
2880 2006-03-04  Martin Baulig  <martin@ximian.com>
2881
2882         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2883         compute the parent type at runtime, just like we're already doing
2884         it for interfaces.
2885
2886         * reflection.c
2887         (mono_reflection_bind_generic_parameters): Don't compute the
2888         parent type anymore.
2889
2890         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2891
2892 2006-03-04  Martin Baulig  <martin@ximian.com>
2893
2894         * mono-debug-debugger.h
2895         (mono_debugger_create_notification_function): Allocate memory at
2896         runtime and return a pointer to it.
2897
2898 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2899
2900         * assembly.c: Fix windows build.
2901         
2902         * assembly.c: Fix build.
2903
2904         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2905
2906         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2907         
2908 2006-03-03  Dick Porter  <dick@ximian.com>
2909
2910         * process.c
2911         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2912         Check parameters before dereferencing them.  Fixes Aaron's part of
2913         bug 77393.
2914
2915 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2916
2917         Fix performance regression.
2918         * loader.c (find_method_in_class): Add 'from_class' argument.
2919         Rename 'klass' argument to 'in_class'.  The signature is compared
2920         against the method in 'in_class', and the corresponding method is
2921         returned from 'from_class'.
2922         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2923         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2924         type definition and generic instantiation in parallel.
2925         (mono_get_method_constrained): Update to changes.
2926
2927 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2928
2929         * threads.c: make sure the domain is correct, too when doing
2930         mono_thread_attach ().
2931
2932 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
2933
2934         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
2935         windows. Fixes #77683.
2936
2937 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2938
2939         * object.h, *: introduced specific way to set elements of an array
2940         of references to be used as write barrier. Still need to audit the
2941         uses of mono_array_addr.
2942
2943 2006-03-01  Miguel de Icaza  <miguel@novell.com>
2944
2945         * object-internals.h: New field to cache the assmebly name, patch
2946         from Tambet Ingo (tambet@ximian.com)
2947
2948 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2949
2950         * decimal.h, class-internals.h, metadata-internals.h,
2951         file-io.h: mark a few function declarations as internal, to
2952         reduce the number of PLT entries.
2953
2954 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2955
2956         * file-io.c: fix typo in warning message.
2957
2958 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
2959
2960         * loader.c: on unix, lookup the "*A" version of a function
2961         if charset is auto as a second option before failing.
2962
2963 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2964
2965         * class.h (mono_class_inflate_generic_method): Revert to two
2966         argument version.
2967         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
2968         (mono_class_inflate_generic_method_full): Add.
2969         * class.c (mono_class_inflate_generic_method_full): Rename from
2970         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
2971         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
2972         * loader.c, reflection.c: Update to changes.
2973
2974 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
2975
2976         * icall.c: const fixes and small improvements.
2977
2978 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2979
2980         * threadpool.c: for asynchronous connect(), enable the same workaround
2981         for BSD 6 as for the Mac. Fixes bug #77637.
2982
2983 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
2984
2985         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
2986         formatted classes. Fixes #77524.
2987
2988 2006-02-24  Raja R Harinath  <rharinath@novell.com>
2989
2990         * class.c (inflate_generic_type): Add a couple more
2991         micro-optimizations.
2992         (inflate_generic_context): Don't use the 'gmethod' from
2993         'inflate_with'.
2994         (mono_class_inflate_generic_method): If the method has generic
2995         parameters, but the passed-in context doesn't have a 'gmethod',
2996         create one.  Use the possibly simplified generic instantiation
2997         from the declaring class instead of the one passed in.
2998
2999 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3000
3001         Make generic method signature and method header handling lazy.
3002         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3003         (inflate_generic_header): Likewise.
3004         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3005         parameter to avoid inflating types.
3006         (mono_get_inflated_method): Empty out.
3007         * class.h (mono_class_inflate_generic_method): Update to changes.
3008         * loader.c (mono_get_method_from_token): Don't parse signature for
3009         generic methods, nor methods of generic classes.
3010         (mono_method_signature): Rename from 'mono_method_signature'.
3011         Inflate signature on demand.
3012         (mono_method_get_header): Inflate method header on demand.
3013         * reflection.c: Update to changes.
3014
3015 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3016
3017         * metadata.c (mono_metadata_inflate_generic_inst): If the
3018         instantiation is closed, don't bother expanding it in the new
3019         context.
3020         * class.c (inflate_generic_class): If the generic instantiation
3021         doesn't change after inflation, return the argument itself.
3022         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3023         Add bounds checks.
3024         (inflate_generic_context): If neither the generic class nor the
3025         generic method instantiations change, return the original context.
3026         * reflection.c (mono_method_get_object): Do
3027         'mono_get_inflated_method' before accessing the ->klass field.
3028         (inflate_mono_method): Don't create a MonoGenericMethod unless
3029         necessary.
3030         (inflate_method): Don't pass a constructed type as the declaring
3031         type of a methodbuilder.
3032
3033 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3034
3035         * object.c: fix memory overwrite.
3036
3037 2006-02-22  Dick Porter  <dick@ximian.com>
3038
3039         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3040         it doesn't work any more.
3041         (mono_threads_request_thread_dump): Fix unused variable warnings.
3042
3043 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3044
3045         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3046         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3047         the public header file.
3048
3049 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3050
3051         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3052
3053 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3054
3055         * class-internals.h, object.c: reduce the size of MonoVTable
3056         and store the interface_offsets array at negative offsets.
3057
3058 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3059
3060         * metadata.c: tweak table descriptors data structures to reduce
3061         size and runtime relocations.
3062
3063 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3064
3065         * marshal.c: fix some types and opcodes to be type-safe
3066         in marshaling wrappers.
3067
3068 2006-02-21  Ankit Jain  <jankit@novell.com>
3069
3070         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3071
3072 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3073
3074         * metadata.c (get_constraints): Relax debugging checks for monodis.
3075
3076 2006-02-21  Ankit Jain  <jankit@novell.com>
3077
3078         * metadata.c (mono_metadata_load_generic_params): Move the code
3079         checking for ambiguous generic params from here to mono/dis/get.c
3080         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3081
3082 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3083
3084         Fix assertion triggered when compiling nemerle.
3085         * class.c (mono_get_shared_generic_inst): Rename from
3086         get_shared_inst and make non-static.
3087         * loader.c (mono_get_shared_generic_method): New.  Used to create
3088         the MonoGenericContext-equivalent of a MonoGenericContainer.
3089         (mono_get_method_from_token): Initialize the 'context' field of
3090         the created MonoGenericContainer.
3091         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3092         * metadata.c (get_constraints): Add sanity check.
3093         * class-internals.h: Add new internal methods.
3094
3095         * reflection.c (verify_safe_for_managed_space): New sanity check.
3096         Currently checks that owner-less generic parameters aren't allowed
3097         in managed space.
3098         (mono_type_get_object): Use it.
3099         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3100         that are now in mono_type_get_object.
3101         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3102
3103 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3104
3105         * metadata.c (mono_type_create_from_typespec): Rename from
3106         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3107         argument and caching of types in the generic container.
3108         (unwrap_arrays, find_generic_param): Remove.
3109         * metadata-internals.h: Update.
3110         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3111
3112 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3113
3114         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3115
3116         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3117         return values. Fixes #77581.
3118
3119         * class.c (mono_fnptr_class_get): Switch name and name_space.
3120
3121         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3122         classes and add support for [In, Out] attributes.
3123         (mono_marshal_free_asany): Ditto. Fixes #77524.
3124
3125 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3126
3127         * class.c (mono_class_from_generic_parameter): Make more robust to
3128         incomplete MonoGenericContainers from monodis.
3129
3130 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3131
3132         * class-internals.h: added some more exception types.
3133         * class.c, metadata.c: added a few checks to handle missing
3134         types.
3135
3136 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3137
3138         Use owner-less generic-params some more.
3139         * class.c (my_mono_class_from_generic_parameter): Remove.
3140         (mono_class_from_generic_parameter): Handle null image,
3141         param->name and param->owner.
3142         (mono_class_from_mono_type): Update.
3143         (mono_class_create_from_typespec): Remove 'container' parameter.
3144         If that parameter is non-null, the result is always inflated by
3145         'mono_class_get_full' anyway.
3146         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3147         parameter.
3148         (mono_class_get_full): Update.
3149
3150         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3151         instance is not open, don't bother inflating.
3152         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3153         parse metadata for inflated classes.
3154         (_mono_class_get): Change GenericContext* parameter to
3155         GenericContainer*.
3156         (mono_class_create_from_typespec): Likewise.  Simplify, and
3157         implement trivially.  All the cases are handled in
3158         mono_class_from_mono_type.  Don't inflate returned class.
3159         (mono_class_get_full): Delegate GENERICINST optimization to
3160         inflate_generic_type.
3161         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3162
3163 2006-02-16  Dick Porter  <dick@ximian.com>
3164
3165         * socket-io.c (create_object_from_sockaddr): Fix typo.
3166         (create_sockaddr_from_object): Check array lengths before
3167         potentially accessing items off the end.
3168         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3169         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3170         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3171         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3172         length checks to avoid wraparound overflows.
3173         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3174         contents of the array of sockets
3175         (hostent_to_IPHostEntry2)
3176         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3177         Check return value of inet_ntop ().
3178         (addrinfo_to_IPHostEntry): Fix typo
3179
3180 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3181
3182         Type metadata parsing doesn't use generic-instantiation information.
3183         * metadata.c (mono_metadata_parse_array_full): Change
3184         MonoGenericContext* parameter to MonoGenericContainer*.
3185         (mono_metadata_parse_type_full): Likewise.
3186         (mono_type_create_from_typespec_full): Likewise.
3187         (mono_metadata_parse_mh_full): Likewise.
3188         (mono_metadata_parse_generic_inst): Likewise.
3189         (do_mono_metadata_parse_generic_class): Likewise.
3190         (do_mono_metadata_parse_type): Likewise.
3191         * metadata-internals.h: Update to changes.
3192         * class.c (mono_class_find_enum_basetype): Likewise.
3193         (mono_class_setup_fields): Likewise.
3194         (mono_class_create_from_typespec): Likewise.
3195         * loader.c (method_from_methodspec): Likewise.
3196         (mono_get_method_from_token): Likewise.
3197         (mono_method_get_header): Likewise.
3198
3199 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3200
3201         * marshal.c: handle additional GENERICINST case (patch from
3202         Thong Nguyen <tum@veridicus.com>).
3203         Fix a few cases where LDIND_I/STIND_I was used for references.
3204
3205 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3206
3207         * reflection.c (mono_reflection_get_token): Remove unused variable.
3208
3209 2006-02-16  Martin Baulig  <martin@ximian.com>
3210
3211         * reflection.c (mono_reflection_get_token): Add support for fields
3212         in instantiated generic types.
3213
3214         * icall.c
3215         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3216
3217 2006-02-15  Martin Baulig  <martin@ximian.com>
3218
3219         * icall.c
3220         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3221         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3222         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3223         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3224
3225 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3226
3227         * class.c, metadata.c, metadata.h, object.c, icall.c,
3228         marshal.c: changed mono_type_get_underlying_type () to do
3229         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3230         Fixed handling of instantiated generic valuetypes (bug #75479).
3231
3232 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3233
3234         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3235         Delegate to mono_metadata_decode_value, and work on the returned value.
3236
3237         * icall.c (ves_icall_MonoType_GetGenericArguments):
3238         Add consistency check here too.
3239         
3240 2006-02-15  Ankit Jain  <jankit@novell.com>
3241
3242         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3243         char/short etc.
3244
3245 2006-02-15  Ankit Jain  <jankit@novell.com>
3246
3247         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3248         signed values, used only for representing lower bounds of arrays.
3249         (mono_metadata_parse_array_full): Use new
3250         mono_metadata_decode_signed_value to decode lower bounds.
3251
3252 2006-02-14  Martin Baulig  <martin@ximian.com>
3253
3254         * reflection.c
3255         (mono_reflection_get_token): Support "MonoGenericMethod" and
3256         "MonoGenericCMethod" and allow generic instances / methods.
3257
3258 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3259
3260         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3261         to obtain the terminal size using an ioctl.
3262
3263         * object.c (mono_nullable_init): Revert this as nullable reference
3264         types are not valid.
3265         (mono_nullable_box): Ditto.
3266
3267 2006-02-09  Dick Porter  <dick@ximian.com>
3268
3269         * threads.c (mono_thread_detach): Drop a reference to the thread
3270         we're detaching.
3271
3272 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3273
3274         * object.c (mono_nullable_init): Handle nullable reference types.
3275         (mono_nullable_box): Ditto. Fixes #77446.
3276
3277 2006-02-07  Martin Baulig  <martin@ximian.com>
3278
3279         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3280
3281 2006-02-07  Ankit Jain  <jankit@novell.com>
3282
3283         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3284         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3285         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3286         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3287         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3288         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3289
3290 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3291
3292         * class.c (mono_class_create_generic): Set type_token as well.
3293
3294         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3295         compatible with MS.
3296
3297 2006-02-02  Martin Baulig  <martin@ximian.com>
3298
3299         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3300         has never been used so far.
3301
3302 2006-02-02  Martin Baulig  <martin@ximian.com>
3303
3304         * mono-debug-debugger.h: Changed comment at the top of this file;
3305         the header is not installed, but it's safe to #include it from
3306         within the JIT.
3307
3308         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3309         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3310
3311 2006-02-02  Martin Baulig  <martin@ximian.com>
3312
3313         * mono-debug.h
3314         (MonoSymbolTable): Removed the `metadata_info' field.
3315
3316         * mono-debug.c
3317         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3318
3319         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3320         (mono_debugger_add_builtin_types): Removed.
3321         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3322         (mono_debugger_create_notification_function): We now operate on a
3323         pre-allocated area; take a `gpointer' and return `void'.
3324
3325         * mono-debug-debugger.c
3326         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3327         (mono_debugger_add_builtin_types): Removed.
3328
3329 2006-02-02  Martin Baulig  <martin@ximian.com>
3330
3331         * threads.c (mono_debugger_create_all_threads): New public method.
3332
3333 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3334
3335         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3336         breaks on several platforms.
3337
3338 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3339
3340         * assembly.c: the VS.NET build doesn't supply default values for
3341         MONO_ASSEMBLIES and MONO_CFG_DIR.
3342
3343 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3344
3345         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3346         helper function.
3347
3348         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3349
3350         * loader.c (method_from_memberref): Fix a warning.
3351
3352         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3353
3354         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3355         with explicit layout. Fixes #77433.
3356
3357 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3358
3359         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3360         max_interface_id is initialized before using it. Fixes #77398.
3361         (ves_icall_Type_GetInterfaces): Ditto.
3362
3363 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3364
3365         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3366         allocate memory for parameter attributes when parsing memberref
3367         signatures.
3368         * loader.c (mono_loader_set_error_method_load): Don't warn.
3369         (method_from_memberref): Ensure MissingMethodException gets thrown
3370         if method is not found.  Make warning more informative.
3371
3372 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3373
3374         Fix #77397
3375         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3376         return true if is byref.
3377         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3378         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3379         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3380
3381 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3382
3383         Fix tests/find-method.2.il
3384         * loader.c (find_method, find_method_in_class): Remove is_inflated
3385         argument.  Revert 2006-01-18 change.
3386         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3387         is generic, search for method in its generic definition.
3388         * class.c (mono_class_setup_vtable_general): Print generic
3389         arguments of generic types in debugging printf.
3390
3391 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3392
3393         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3394
3395         * threads.c (mono_threads_request_thread_dump): New helper function.
3396
3397 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3398
3399         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3400
3401 2006-01-25  Ankit Jain  <jankit@novell.com>
3402
3403         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3404         move definition to ..
3405         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3406         
3407 2006-01-25  Ankit Jain  <jankit@novell.com>
3408             Raja R Harinath  <rharinath@novell.com>
3409
3410         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3411         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3412         as necessary.
3413
3414 2006-01-25  Martin Baulig  <martin@ximian.com>
3415
3416         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3417         `MonoDebuggerThread' into debug-debugger.c.
3418
3419 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3420
3421         * profiler.c: fix printing of data.
3422
3423 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3424
3425         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3426           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3427
3428 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3429
3430         * object.c: fix deadlock related to string interning.
3431
3432 2006-01-23  Martin Baulig  <martin@ximian.com>
3433
3434         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3435
3436         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3437
3438 2006-01-23  Martin Baulig  <martin@ximian.com>
3439
3440         * mono-debug.h: Moved the prototypes of some functions which are
3441         used by the JIT here from mono-debug-debugger.h.
3442
3443 2006-01-21  Martin Baulig  <martin@ximian.com>
3444
3445         * Makefile.am: Don't install mono-debug-debugger.h.
3446
3447 2006-01-21  Martin Baulig  <martin@ximian.com>
3448
3449         * mono-debug-debugger.h: Enforce the private status of this header
3450         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3451         Moved some stuff from mono-debugger-jit-wrapper.h here.
3452
3453 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3454
3455         * class.c (mono_class_from_typeref): Add a sanity test to help
3456         catch lack of assembly load/search hooks.
3457
3458 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3459
3460         * marshal.c (emit_struct_conv): Relax the fields with same offset
3461         check even more. Fixes #77230.
3462
3463 2006-01-18  Martin Baulig  <martin@ximian.com>
3464
3465         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3466         argument; if false, we compare the uninstantiated signatures.
3467         (method_from_memberref): Compare the uninstantiated signatures;
3468         fixes #76417.
3469
3470 2006-01-18  Robert Jordan  <robertj@gmx.net>
3471
3472         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3473         Clear the weak link. Fixes bug #77170.
3474
3475         * gc.c (mono_gchandle_free):
3476         Reflect *-gc.c changes (tiny optimization).
3477
3478 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3479
3480         * metadata.c (mono_metadata_signature_dup): Applied patch from
3481         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3482         Fixes #77288.
3483
3484 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3485
3486         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3487         marshalling from native to managed code. Fixes #77230.
3488
3489 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3490
3491         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3492         connect. Fixes bug #77020.
3493
3494 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3495
3496         * class.c: fixed id assignement for nested interfaces (bug #77275).
3497         Added also better info for --print-vtable debugging.
3498
3499 2006-01-12  Martin Baulig  <martin@ximian.com>
3500
3501         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3502         interfaces on-the-fly; fixes #76625.
3503
3504         * class-internals.h
3505         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3506         don't need that anymore.
3507
3508 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3509
3510         * socket-io.c
3511         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3512         To avoid initing the nested_classes when not needed I turned the
3513         PeerCredData as a toplevel internal class, as it has to be shared
3514         anyways. 
3515
3516         Fixes the CASA issue.
3517
3518 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3519
3520         * domain.c: Accessors for MonoJitInfo
3521
3522         * profiler-private.h: Add jitinfo to the end jit hook
3523
3524         * profiler.[ch]: Define new hooks, called after jitting which give
3525         the MonoJitInfo that was compiled
3526
3527 2006-01-10  Martin Baulig  <martin@ximian.com>
3528
3529         * class.c (mono_class_setup_events): Add support for generic
3530         classes; fixes #76440.
3531
3532 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3533
3534         Fix #77160.
3535         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3536         on passed-in method.
3537
3538 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3539
3540         * object.c (mono_runtime_invoke_array): Add Nullable support.
3541
3542         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3543
3544 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3545
3546         * file-io.c: Don't consider sockets as directory and avoid an endless
3547         loop. Fix bug #76966.
3548
3549 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3550
3551         * object.c (mono_nullable_init): New helper function.
3552         (mono_nullable_box): Ditto.
3553
3554         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3555
3556         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3557
3558         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3559         
3560 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3561
3562         * class.c (mono_class_is_assignable_from): Make T assignable to 
3563         Nullable<T>.
3564
3565 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3566
3567         * appdomain.c: Bump corlib version to 46.
3568         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3569         serialization purpose) and changed ves_icall_System_Reflection_
3570         Assembly_get_code_base signature to accept a boolean (to escape, or 
3571         not, the assembly code base).
3572
3573 2005-12-23  Dick Porter  <dick@ximian.com>
3574
3575         * icall.c: 
3576         * threads-types.h: 
3577         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3578         CreateEvent icall now returns "created" boolean parameter.
3579
3580 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3581
3582         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3583         #76967.
3584
3585         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3586         when attr_klass is an interface. Fixes #77045.
3587
3588 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3589
3590         * marshal.c (emit_struct_conv): Fix previous patch.
3591         
3592         * marshal.c (emit_struct_conv): Add a check for fields with the same
3593         offset.
3594
3595 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3596
3597         Fix regression in Mono.C5.
3598         * class.c (mono_class_create_generic): If 'klass' is an interface
3599         set up the interface offsets.
3600         (mono_class_is_assignable_from): Don't throw away generic arguments.
3601
3602 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3603
3604         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3605         type parameters.
3606
3607 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3608
3609         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3610         dead store.
3611         (do_mono_metadata_parse_generic_class): Don't pass the current
3612         generic context when parsing the type being instantiated: it
3613         cannot use it, anyway.
3614
3615         * loader.c (method_from_memberref): Don't inflate a signature if
3616         it doesn't contain any type parameters.
3617
3618 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3619
3620         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3621
3622 2005-12-14  Martin Baulig  <martin@ximian.com>
3623
3624         * class.c
3625         (mono_type_get_name_recurse): Don't return null for type
3626         parameters and open generic classes.
3627         (mono_class_setup_methods): Don't exclude generic instances.
3628         (mono_get_unique_iid): Use different IDs for different
3629         instantiations of the same generic type.
3630         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3631         open generic instances; create a normal vtable for closed generic
3632         instances.
3633         (mono_class_setup_vtable_general): We're now also called for
3634         closed generic instances.
3635
3636         * reflection.c
3637         (mono_reflection_bind_generic_parameters): Correctly use
3638         mono_metadata_lookup_generic_inst() everywhere.
3639
3640 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3641
3642         * object.c (mono_class_create_runtime_vtable): Call 
3643         mono_class_setup_vtable ().
3644
3645         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3646         function.
3647         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3648         #76959.
3649
3650         * loader.c (mono_loader_set_error_type_load): Print the type load
3651         warnings to the console so they are more visible to the user.
3652         (mono_loader_set_error_method_load): Ditto.
3653
3654         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3655         is still broken.
3656         
3657         * reflection.c (ensure_runtime_vtable): Fix build.
3658
3659         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3660         doesn't work in all cases.
3661
3662 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3663
3664         * object.c (mono_array_new_full): Treat a single dimensional array
3665         with 0 lower bounds as an szarray. Fixes #76973.
3666
3667         * reflection.c (custom_attr_visible): Really fix this.
3668
3669 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3670
3671         * reflection.c (custom_attr_visible): Allow nested public attributes
3672         as well.
3673
3674         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3675         interface check.
3676
3677 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3678
3679         * class.c (set_generic_param_owner): Delete.
3680         (mono_class_create_from_typedef): Don't set ->owner field of
3681         generic parameters to "param containers" of enclosing classes.
3682         * reflection.c (mono_reflection_initialize_generic_parameter):
3683         Likewise.
3684
3685 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3686
3687         * reflection.c (custom_attr_visible): Fix build.
3688
3689 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3690
3691         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3692         private attributes.
3693         
3694         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3695         handling of null parameter defaults.
3696
3697 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3698
3699         * class.c (mono_class_from_generic_parameter): Don't set
3700         klass->generic_container.
3701         (my_mono_class_from_generic_parameter): Likewise.
3702
3703 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3704
3705         * reflection.c (load_public_key): Fix a warning.
3706         (method_encode_code): Fix unaligned accesses.
3707
3708 2005-12-07  Martin Baulig  <martin@ximian.com>
3709
3710         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3711
3712         * reflection.c
3713         (write_generic_param_entry): Encode our custom attrs.
3714
3715         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3716
3717 2005-12-07  Martin Baulig  <martin@ximian.com>
3718
3719         * reflection.c (encode_new_constraint): Removed; we don't use the
3720         `NewConstraintAttribute' anymore.
3721
3722 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3723
3724         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3725         not fire a TypeResolve event when Assembly.GetType () is called.
3726
3727 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3728
3729         Beginning of support for nullable types in the runtime. Parts of
3730         this patch are from Martin.
3731
3732         * appdomain.c (MONO_CORLIB_VERSION): Bump
3733
3734         * domain.c (mono_init_internal): get the nullable type
3735
3736         * class.c (mono_class_is_nullable): New method
3737         (mono_class_get_nullable_param): New mehod
3738         (mono_class_create_generic): In types T? set cast_class to T
3739
3740         * class-internals.h (MonoDefaults): new nullable default class
3741         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3742         new methods.
3743
3744 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3745
3746         * metadata.c (select_container): New.  Refactor code to select the
3747         appropriate GenericContainer given the type of generic parameter
3748         we are looking for.
3749         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3750         not a MonoGenericContext.  Use select_container.  Update parameters.
3751         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3752         and MONO_TYPE_MVAR.
3753         (unwrap_arrays): Remove duplicate tests.
3754         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3755         generic instantiated class to find any arguments that are generic
3756         parameters.
3757         (mono_type_create_from_typespec_full): Use find_generic_param to
3758         avoid evicting some generic instantiations from the typespec
3759         cache.
3760
3761 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3762
3763         * reflection.c: fixed writing of doubles on ARM FPA.
3764
3765 2005-12-02  Robert Jordan  <robertj@gmx.net>
3766
3767         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3768
3769 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3770
3771         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3772         least on SUSE 10 they are not the same (on debian, they are just the
3773         same thing).
3774
3775 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3776
3777         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3778         DeclaringType for VARs and MVARs.
3779         * class.c (set_generic_param_owner): Fix initialization of owner
3780         fields.
3781
3782 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3783
3784         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3785
3786 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3787
3788         * threadpool.c: workaround for a bug that shows up on the Mac:
3789         select()+connect() on a blocking socket is not like it should
3790         be, so we proceed to connect() in that case, wasting the I/O
3791         threadpool thread until connect succeedes. Fixes bug #75436.
3792
3793 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3794
3795         * threadpool.c: fix typo when setting file descriptor states.
3796
3797 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3798
3799         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3800         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3801         create a temporary signature container.
3802         (mono_metadata_parse_generic_param): Update to changes.
3803         (mono_type_create_from_typespec_full): Update to changes.
3804         * loader.c (method_from_memberref): Don't use a
3805         MonoGenericContainer while parsing a memberref signature.
3806         (method_from_methodspec): Remove dead-store of the 'container'
3807         variable.  It's overwritten before use.
3808
3809         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3810         checks tighter.
3811         (mono_metadata_parse_generic_param): Likewise.
3812         * loader.c (find_method_in_class): Does not need a
3813         MonoGenericContainer.  Use 'mono_method_signature' rather than
3814         'mono_method_signature_full'.
3815         (find_method, mono_get_method_constrained, method_from_memberref):
3816         Update to changes.
3817
3818         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3819         owner-less generic-parameters are never evicted from the typespec
3820         cache.
3821
3822         * loader.c (method_from_memberref): Don't use the current context
3823         when parsing signatures.
3824         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3825
3826         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3827         side-effects in g_assert.
3828         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3829         that we don't potentially lose information.
3830
3831 2005-11-26  Dick Porter  <dick@ximian.com>
3832
3833         * icall.c:
3834         * threads.c: icalls to implement basic (ie, not named)
3835         System.Threading.Semaphore.
3836
3837 2005-11-24  Dick Porter  <dick@ximian.com>
3838
3839         * process.c
3840         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3841         Use GetProcessId() if it's available.
3842
3843 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3844
3845         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3846
3847 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3848             Ankit Jain  <jankit@novell.com>
3849
3850         * loader.c (mono_get_method_from_token): Initialize 'method' field
3851         of all generic parameters before parsing the signature.  Remove
3852         code that "fixed"-up MVAR references.
3853
3854 2005-11-23  Ankit Jain  <jankit@novell.com>
3855
3856         * metadata.c (mono_metadata_has_generic_params):
3857         (mono_metadata_load_generic_param_constraints):
3858         (mono_metadata_load_generic_params): Move duplicate code ...
3859         (mono_metadata_get_generic_param_row): ... here. Returns the
3860         first row-id in GenericParam table for a given owner (token).
3861         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3862         prototype.
3863
3864 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3865             Ankit Jain  <jankit@novell.com>
3866
3867         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3868         comparing VARs too.
3869         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3870         type->data.generic_param only if the type is an MVAR.
3871         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3872         leak owner-less VARs and MVARs into managed space.
3873
3874 2005-11-21  Martin Baulig  <martin@ximian.com>
3875
3876         * class-internals.h
3877         (MonoMethod): Moved the `generic_container' here from
3878         `MonoMethodNormal' since we now also need it for
3879         `MonoMethodPInvoke';
3880         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3881         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3882         an union containing both `MonoMethodNormal' and
3883         `MonoMethodPInvoke'.
3884
3885         * loader.c
3886         (mono_get_method_from_token): Allow implementing generic methods
3887         as interncalls.
3888
3889         * threads.c
3890         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3891         icall.
3892
3893 2005-11-17  Dick Porter  <dick@ximian.com>
3894
3895         * icall.c: 
3896         * process.h: 
3897         * process.c: Split the Process Start_internal icall into
3898         ShellExecuteEx_internal and CreateProcess_internal, which are
3899         called depending on whether UseShellExecute is true.  Fixes bug
3900         76670.
3901
3902         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3903
3904 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3905
3906         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3907         'msize' parameters, use the information in 'mspec' instead.
3908         (emit_object_to_ptr_conv): Ditto.
3909
3910         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3911         fields out of order. Fixes #76733.
3912
3913 2005-11-17  Ankit Jain  <jankit@novell.com>
3914
3915         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3916
3917 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3918
3919         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3920           bug #76575.
3921
3922 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3923
3924         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3925         for types with non-auto layout. Fixes #76717.
3926
3927 2005-11-16  Ankit Jain  <jankit@novell.com>
3928
3929         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
3930         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
3931         if generic_context is null.
3932           (mono_metadata_generic_param_equal): param->owner can be null.
3933           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
3934         null.
3935
3936 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3937
3938         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
3939         the correct value.
3940
3941 2005-11-15  Martin Baulig  <martin@ximian.com>
3942
3943         * object.c (set_value): Use mono_class_from_mono_type() instead of
3944         the hack for generic instances; fixes #76136.
3945
3946 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
3947
3948         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
3949         fields.
3950
3951         * image.c (load_metadata_ptrs): Initialize the new fields.
3952
3953         * reflection.c (create_dynamic_mono_image): Ditto.
3954
3955         * reflection.c (build_compressed_metadata): Use the new fields.
3956
3957         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
3958         icall.
3959
3960         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
3961         icall.
3962         
3963 2005-11-15  Ankit Jain  <jankit@novell.com>
3964             Raja R Harinath  <harinath@gmail.com>
3965
3966         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
3967         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
3968         new per-generic_container cache if the cached MonoType's context matches
3969         the current context.
3970           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
3971         to the expected context.
3972           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
3973
3974 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3975
3976         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
3977         we changed the signature of an icall.
3978         * icall.c: Modify to mono_double_ParseImpl return true/false 
3979         depending on the success, instead of throwing the exception. This will
3980         help us in Double.TryParse methods.
3981         
3982 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
3983
3984         * marshal.c (emit_marshal_object): Throw an exception when
3985         marshalling 'object' instead of crashing. Fixes #76696.
3986
3987 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3988
3989         * class-internals.h: Add prototype for mono_type_get_full_name ().
3990
3991 2005-11-11  Dick Porter  <dick@ximian.com>
3992
3993         * threads.c (mono_thread_manage): Make sure the main thread has
3994         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
3995
3996 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3997
3998         * loader.c (mono_loader_set_error_type_load): Log a warning to the
3999         console about the missing type.
4000         (mono_loader_set_error_method_load): Ditto.
4001
4002 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4003
4004         * mono-config.c (mono_get_config_dir): Set the system defaults if
4005         none is specified.
4006
4007         * assembly.c (mono_set_dirs): New API entry point to set the
4008         assembly and the config directory in one call
4009
4010 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4011
4012         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4013         the ftnptr was created from a delegate in a domain other than the
4014         current domain. Fixes #75377.
4015
4016         * exception.h exception.c: Add mono_get_exception_not_supported ().
4017
4018 2005-11-08  Martin Baulig  <martin@ximian.com>
4019
4020         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4021
4022 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4023
4024         * security-manager.h: Added definitions to deal with strongname key 
4025         pairs bigger (and smaller) than 1024 bits.
4026         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4027         adjust wrt the public key length being used.
4028
4029 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4030
4031         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4032           Windows build (r51396-51397).
4033
4034 2005-11-03  Martin Baulig  <martin@ximian.com>
4035
4036         * class.c (mono_class_setup_vtable_general): Also add generic
4037         methods to the vtable; fixes #76581.
4038
4039 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4040
4041         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4042         sure that we lookup GetString method from the System.Text.Encoding
4043         class, not the derived class or we get an empty method.
4044
4045         Fixed class #76612.
4046
4047 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4048
4049         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4050         if it has been previously set (embedders). 
4051
4052         Make mono_set_rootdir available also on Unix.
4053
4054 005-10-24  Robert Jordan  <robertj@gmx.net>
4055
4056         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4057
4058 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4059
4060         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4061         only calls which are made to native code use this flag.
4062
4063         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4064
4065 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4066
4067         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4068         Add support for FieldBuilders.
4069
4070 2005-10-29  Martin Baulig  <martin@ximian.com>
4071
4072         * mono-debug.c
4073         (mono_debug_using_mono_debugger): New public method; returns
4074         whether we're running inside the debugger.
4075
4076 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4077
4078         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4079         for Method/Constructor/FieldBuilders.
4080
4081 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4082
4083         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4084         and fields as well.
4085
4086 2005-10-26  Martin Baulig  <martin@ximian.com>
4087
4088         * mono-debug-debugger.c
4089         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4090
4091 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4092
4093         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4094         integer to isspace.
4095
4096 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4097
4098         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4099         when passing valuetypes byref. Fixes #76502.
4100
4101 2005-10-19  Jackson Harper  <jackson@ximian.com>
4102
4103         * profiler.c: Don't put a . in front of types that are not in a
4104         namespace.
4105
4106 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4107
4108         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4109
4110 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4111
4112         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4113         #76436.
4114         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4115
4116 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4117
4118         * assembly.c metadata-internals.h icall.c: Define an additional
4119         parameter for mono_assembly_name_parse_full, so we can avoid creating
4120         S.R.AssemblyName.Version when no version info wasn't passed.
4121         
4122 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4123
4124         * class.c (mono_type_get_full_name): Reimplement method that was
4125         removed. 
4126
4127         * image.c: Some docs
4128
4129 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4130
4131         * profiler.c (output_newobj_profile): Fix printing of Total memory
4132         on x86.
4133
4134 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4135
4136         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4137
4138 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4139
4140         * threads.c: remove debug output.
4141
4142 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4143
4144         * threads.c (mono_thread_manage): Fix crashes if more than 64
4145         threads need to be aborted. Hopefully fixes #75899.
4146
4147         * assembly.c (mono_stringify_assembly_name): New helper function.
4148
4149         * class.c: Use mono_stringify_assembly_name instead of the similar
4150         static function.
4151
4152         * assembly.h assembly.c: Add support for calling a postload search 
4153         hook if an assembly cannot be loaded.
4154
4155         * appdomain.c: Register new search hooks which call the AssemblyResolve
4156         events in AppDomain. Fixes #75231
4157
4158 2005-10-07  Martin Baulig  <martin@ximian.com>
4159
4160         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4161         methods without debug info.
4162
4163 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4164
4165         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4166         wrappers.
4167
4168 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4169
4170         * file-io.c: now that we return symlinks, use lstat and, when the file
4171         is a symbolic link, stat, to get the file attributes. Also avoid the
4172         conversion to/from utf16/external.
4173
4174 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * class.c (mono_class_layout_fields): Compute klass->has_references
4177         correctly if an embedded valuetype is not yet initialized. Fixes
4178         #76331.
4179
4180 2005-10-04  Martin Baulig  <martin@ximian.com>
4181
4182         * metadata.c
4183         (mono_metadata_load_generic_param_constraints): New public
4184         function; splitted the constraints loading out from
4185         mono_metadata_load_generic_params().
4186
4187         * class.c (mono_class_create_from_typedef): Call
4188         mono_metadata_load_generic_param_constraints() after setting up
4189         the type and creating our parent; fixes #75329.
4190
4191 2005-10-04  Martin Baulig  <martin@ximian.com>
4192
4193         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4194         non-dynamic parent classes.
4195
4196 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4197
4198         * file-io.c : win32 build fix (ETXTBSY seems not found).
4199
4200 2005-10-04  Martin Baulig  <martin@ximian.com>
4201
4202         * reflection.c
4203         (mono_image_get_methodspec_token): Make the cache actually work;
4204         fixes #75974.
4205
4206 2005-10-04  Martin Baulig  <martin@ximian.com>
4207
4208         * class.c (mono_class_name_from_token): Removed the unneccessary
4209         `MonoGenericContext *' argument.
4210
4211 2005-10-04  Martin Baulig  <martin@ximian.com>
4212
4213         * loader.c
4214         (method_from_methodspec): Make the caching work again; fixes the
4215         performance regression from #76262.
4216
4217 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4218
4219         * file-io.c:
4220         * file-io.h:
4221         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4222         GetFileSystemEntries that performs the same work but without going
4223         into io-layer, locking, etc.
4224
4225 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4226
4227         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4228         ThreadState_Stopped as well. Fixes #76047.
4229
4230 2005-09-29  Martin Baulig  <martin@ximian.com>
4231
4232         * class.c
4233         (inflate_generic_context): If the new context has a `gmethod', set
4234         its `container' that that gmethod's `container'.
4235
4236         * metadata.c
4237         (mono_metadata_parse_generic_param): Simplify things;
4238         `generic_container = generic_context->container;' is just fine.
4239
4240         * loader.c (method_from_methodspec): Code cleanups.
4241
4242 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4243
4244         * decimal.c: fix warning (and let gcc generate correct
4245         code on ARM with optimizations).
4246
4247 2005-09-28  Martin Baulig  <martin@ximian.com>
4248
4249         * loader.c
4250         (method_from_memberref): Added `MonoGenericContext *class_context'
4251         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4252         (method_from_methodspec): If we're a memberref, use the enclosing
4253         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4254
4255 2005-09-28  Martin Baulig  <martin@ximian.com>
4256
4257         * object.c (mono_runtime_invoke_array): Added support for
4258         MONO_TYPE_GENERICINST; fixes #75917.
4259
4260 2005-09-27  Martin Baulig  <martin@ximian.com>
4261
4262         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4263         `k->byval_arg.type' to determine the actual type.
4264
4265         * loader.c (method_from_methodspec): Removed some hacks.
4266
4267 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4268
4269         * class-internals.h (mono_field_is_deleted): Do the test for
4270         rtspecialname before we check the actual name of the field. This
4271         prevents us from dereferencing a pointer into the string table,
4272         saving us from accessing a few pages
4273
4274         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4275         macros. This will allow a deadlock debugger to easily be plugged
4276         in.
4277
4278 2005-09-27  Martin Baulig  <martin@ximian.com>
4279
4280         * loader.c (method_from_methodspec): Create a "signature"
4281         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4282
4283 2005-09-27  Martin Baulig  <martin@ximian.com>
4284
4285         * class.c
4286         (inflate_generic_class): Correctly set the new context's
4287         container.
4288
4289         * loader.c
4290         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4291         instead of a `MonoGenericContext *'.
4292         (mono_method_signature_full): Take a `MonoGenericContainer *'
4293         instead of a `MonoGenericContext *'.
4294
4295         * metadata.c
4296         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4297         instead of a `MonoGenericContext *'.
4298         (mono_metadata_parse_method_signature_full): Likewise.
4299
4300 2005-09-26  Martin Baulig  <martin@ximian.com>
4301
4302         * class.c
4303         (mono_class_from_generic_parameter): Set `klass->generic_container'
4304         (mono_class_from_generic_parameter): Likewise.
4305         (mono_bounded_array_class_get): We inherit the generic container
4306         from the element class.
4307
4308         * loader.c
4309         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4310         argument rather than computing it here.
4311         (method_from_memberref): Correctly set the generic context before
4312         parsing the signature.  Fixes #75681.
4313
4314 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4315
4316         * object.c (mono_class_has_special_static_fields): Fix warnings.
4317
4318 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4319
4320         * assembly.c: Add parse_public_key function, to
4321         par the public keys. Also added mono_assembly_name_parse_full,
4322         to define it the parsed key should be freed or not.
4323         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4324         to parse a long format assembly name.
4325         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4326         private, since calling it to preserve the key requires
4327         freeing it manually.
4328         
4329 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4330
4331         * locales.c : removed HAVE_ICU part.
4332
4333 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4334
4335         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4336         field_is_special_static if the klass has no special static fields.
4337
4338         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4339         (MonoCachedClassInfo): Likewise.
4340
4341         * object.c (mono_class_has_special_static_fields): New helper function.
4342
4343 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4344
4345         * class.c (mono_class_create_from_typedef): Don't call 
4346         interfaces_from_typedef_full for enums.
4347         (mono_class_create_from_typedef): Compute the base types of enums directly
4348         without calling mono_class_setup_fields ().
4349         (mono_class_find_enum_basetype): New helper function.
4350
4351         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4352         one place inside the string heap.
4353         
4354 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4355
4356         * class.c: locking fixes, code cleanups, some docs added.
4357         Allocate some data structures in the image mempool.
4358
4359 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4360
4361         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4362         the example code.
4363         
4364 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4365
4366         * class-internals.h, class.c, reflection.c: reduce memory taken by
4367         MonoClass.
4368
4369 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4370
4371         * metadata.c, metadata.h, loader.h: documentation updates, code and
4372         API cleanups.
4373
4374 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4375
4376         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4377         the example code.
4378
4379         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4380         page faults caused by the runtime while reading metadata.
4381
4382 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4383
4384         * socket-io.c: the field names were changed 3 months ago and no one
4385         realized until bug #76077 got filed!
4386
4387 2005-09-20  Martin Baulig  <martin@ximian.com>
4388
4389         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4390
4391 2005-09-20  Martin Baulig  <martin@ximian.com>
4392
4393         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4394         write the rank into the class entry.
4395
4396 2005-09-20  Martin Baulig  <martin@ximian.com>
4397
4398         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4399
4400 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4401
4402         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4403
4404         * icall.c (custom_attrs_defined_internal): New icall.
4405
4406         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4407         function.
4408         (mono_custom_attrs_construct_by_type): New helper function.
4409
4410 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4411
4412         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4413         terminate the resulting string. Fixes #76123.
4414
4415 2005-09-16  Martin Baulig  <martin@ximian.com>
4416
4417         * mono-debug.c
4418         (mono_debug_add_method): Ignore inflated methods for the moment.
4419
4420 2005-09-14  Martin Baulig  <martin@ximian.com>
4421
4422         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4423
4424 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4425
4426         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4427         return a success/failure indication.
4428         (mono_metadata_interfaces_from_typedef_full): Ditto.
4429         (get_constraints): Ditto.
4430
4431 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4432
4433         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4434         
4435         * marshal.c (emit_marshal_array): Add support for returning string
4436         arrays from delegates. Fixes #76063.
4437
4438         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4439
4440 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4441
4442         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4443         icall.
4444
4445 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4446
4447         * reflection.c icall.c: Fix after mono_get_exception_type_load
4448         signature change.
4449
4450         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4451         (mono_assembly_load_reference): Use the new helper.
4452
4453         * class-internals.h (MonoLoaderError): New structure containing 
4454         information about type loading errors.
4455
4456         * class-internals.h loader.c: Add APIs to store per-thread loader
4457         error information.
4458
4459         * loader.c class.c: Set the loader error if needed.
4460
4461         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4462
4463 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4464
4465         * decimal.c: fixed to handle the broken ARM fp format.
4466
4467 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4468
4469         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4470         broken.
4471
4472 2005-09-06  Martin Baulig  <martin@ximian.com>
4473
4474         * domain.c (supported_runtimes): Added v2.0.50727.
4475
4476 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4477
4478         * culture-info.h: reduce the size of some structures.
4479
4480 2005-09-05  Martin Baulig  <martin@ximian.com>
4481
4482         Reflect latest API changes in the August CTP.
4483
4484         * icall.c
4485         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4486         ("MonoType.HasGenericArguments"): Removed.
4487         ("MonoMethod.BindGenericParameters"): Renamed to
4488         "MakeGenericMethod".
4489         ("MethodBuilder.BindGenericParameters"): Renamed to
4490         "MakeGenericMethod".    
4491
4492 2005-09-05  Martin Baulig  <martin@ximian.com>
4493
4494         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4495
4496 2005-09-05  Martin Baulig  <martin@ximian.com>
4497
4498         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4499
4500         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4501         generic_container is non-NULL.
4502
4503 2005-09-05  Martin Baulig  <martin@ximian.com>
4504
4505         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4506
4507         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4508
4509 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4510
4511         * reflection.c (encode_locals,
4512         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4513         for large generic types.
4514
4515 2005-09-05  Martin Baulig  <martin@ximian.com>
4516
4517         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4518
4519         * class.c (mono_dup_array_type): New public method.
4520         (mono_metadata_signature_deep_dup): New public method.
4521         (dup_type): Correctly duplicate array and function types.
4522
4523 2005-09-05  Martin Baulig  <martin@ximian.com>
4524
4525         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4526
4527         * reflection.c (get_default_param_value_blobs): Handle generic types
4528         and generic methods.
4529
4530 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4531
4532         * class.c: Fixed error reporting (method/class were inversed) for 
4533         inheritance demands.
4534         * security-manager.c|h: Added the AppDomain when calling the managed
4535         System.Security.SecurityManager.InheritanceDemand method.
4536
4537 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4538
4539         * reflection.c (encode_marshal_blob): 'marshaltype' and
4540         'marshaltyperef' are alternate sources for the custom marshaler
4541         name.
4542
4543 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4544
4545         * class.c: fix creation of array classes with rank == 1
4546         (patch by Ankit Jain <jankit@novell.com>).
4547
4548 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4549
4550         * object.c: fix check for creating the bound data for arrays vs
4551         szarrays.
4552
4553 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4554
4555         * object.c: configuration file name is now based on the executable name,
4556         not the image name. Fixes bug #75931.
4557
4558 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4559
4560         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4561         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4562
4563 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4564
4565         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4566
4567 2005-08-24  Ankit Jain  <jankit@novell.com>
4568             Raja R Harinath  <rharinath@novell.com>
4569
4570         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4571           called by it recursively.
4572           (mono_class_init): Remove special case in pending_init handling, since it's
4573           superseded by the fix to mono_class_from_typeref.
4574
4575 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4576
4577         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4578         BROKEN_THREAD_START stuff.
4579
4580 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4581
4582         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4583         trampoline.
4584
4585         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4586         
4587         * object.c (mono_delegate_ctor): Replace the original function address with
4588         a delegate trampoline.
4589
4590 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4591
4592         * icall.c: add boolean argument to base64_to_byte_array and 
4593         InternalFromBase64String to control whether a whitespace-only string
4594         is allowed (or should casue a FormatException to be thrown). We need
4595         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4596         to match the MS behaviour in both profiles.
4597         * appdomain.c: Bump corlib version.
4598
4599 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4600
4601         This patch implements a big portion of publisher policy
4602         support, used to bind assembly versions and redirect
4603         one assembly from version A to version B.
4604
4605         * assembly.c:
4606         New GSList loaded_assembly_bindings, for storing the cached
4607         assembly bindings.
4608         (assembly_binding_maps_name): New static function for checking if a 
4609         assembly binding information maps an assembly name.
4610         (mono_assembly_binding_info_free): New function for freeing
4611         assembly binding information resources.
4612         (get_publisher_policy_info): New static function for retrieving 
4613         assembly binding information from a MonoImage.
4614         (compare_versions): New static function for comparing an assembly
4615         binding information data and the version of an assembly name.
4616         (check_policy_versions): New static function for checking if an
4617         assembly binding info mapping an assembly name is valid for it.
4618         (mono_assembly_load_publisher_policy): New static function for
4619         loading the 'policy.major.minor.MyAssembly' image for an assembly
4620         with an assembly name 'aname'.
4621         (mono_assembly_bind_version): New static function for updating
4622         assembly redirection.
4623         (mono_assembly_apply_binding): New static function for applying
4624         assembly binding.
4625         (search_binding_loaded): New static function for searching 
4626         loaded assembly binding infos in the cache domain.
4627         (mono_assembly_load_full): Don't apply assembly binding for
4628         reflection only assemblies.
4629
4630         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4631         which contains information about assembly binding. Also
4632         declare signature for mono_config_parse_publisher_policy ()
4633         function, used to retrieve pub policy info.
4634         
4635         * mono-config.c:
4636         (publisher_policy_start): New static function used to parse publisher 
4637         policy config files.
4638         (publisher_policy_parser): New static MonoParseHandler containing 
4639         the functions used when parsing config files.
4640         (mono_config_parse_publisher_policy): New function for parsing
4641         publisher policy files.
4642         
4643 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4644
4645         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4646
4647         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4648
4649         * object.c (mono_get_addr_from_ftnptr): New helper function.
4650
4651         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4652
4653         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4654
4655 2005-08-19  Dick Porter  <dick@ximian.com>
4656
4657         * threads.c, threads.h, appdomain.c, appdomain.h,
4658         profiler-private.h, monitor.c, object.c, object-internals.h,
4659         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4660         store the thread ID, so it can hold a 64 bit value if needed.
4661
4662 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4663
4664         * reflection.c (mono_reflection_create_dynamic_method): Store the
4665         handle class into the method references as well so ldtoken works in
4666         dynamic methods.
4667
4668         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4669         types.
4670
4671 2005-08-19  Ankit Jain <jankit@novell.com>
4672
4673         Fix #75847.
4674         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4675           here rather than using the method signature of a arbitrary function
4676           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4677           two arguments.
4678           Hack done with Harinath.
4679
4680 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4681
4682         * threadpool.c: disable printing stack traces when we get a exception
4683         in a threadpool thread. I need to do more testing to figure out which
4684         cases actually print this. Fixes bug #75828.
4685
4686 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4687
4688         * icall.c: there might be ignored whitespace after the last '='. This
4689         fixes length computation and bug #75840.
4690
4691 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4692
4693         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4694         well. Fixes #75809.
4695
4696         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4697         #75784.
4698         
4699         * reflection.c (create_custom_attr_data): Ditto.
4700
4701 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4702
4703         * locales.c, culture-info.h : removed RegionLCIDMap.
4704         * culture-info-tables.h : regenerated.
4705
4706 2005-08-16  Martin Baulig  <martin@ximian.com>
4707
4708         * class.c (mono_type_get_name_recurse): Small fix.
4709
4710 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4711
4712         * locales.c : indentation fixie.
4713
4714 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4715
4716         * object-internals.h,
4717           locales.h,
4718           locales.c,
4719           culture-info.h,
4720           icall.c : added RegionInfo table support.
4721         * culture-info-table.h : regenerated for region support.
4722
4723 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4724
4725         * reflection.c (resolve_object): handle all kinds of MonoMethod
4726         including generic ones
4727
4728 2005-08-12  Ankit Jain <jankit@novell.com>
4729
4730         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4731           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4732
4733 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4734
4735         * process.c: Don't close a thread handle when it's NULL. This is a
4736         workaround for bug #75733.
4737
4738 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4739
4740         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4741
4742 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4743
4744         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4745
4746 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4747
4748         * threadpool.c: if a work item in the thread pool has a callback that
4749         catches a exception, don't propagate it after invoking the callback.
4750         Fixes bug #75336.
4751
4752 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4753
4754         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4755
4756         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4757
4758         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4759
4760         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4761
4762 2005-08-03  Ankit Jain  <jankit@novell.com>
4763
4764         Fix #75683.
4765         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4766           PInvoke calling convention is 0.
4767
4768 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4769
4770         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4771         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4772
4773 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4774
4775         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4776         to handle threads not started by the GC (patch by Michael Meeks
4777         <michael.meeks@novell.com>).
4778
4779 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4780
4781         * reflection.c: Make buffer used in emitting types larger for some
4782         big generic types (patch by Michal Moskal).
4783
4784 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4785
4786         * mono-debug.c: Fix some (not all) alignment problems.
4787
4788 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4789
4790         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4791         Invoke mono_image_load_from_data_full passing the refonly
4792         parameter.
4793
4794         * assembly.c
4795         (mono_assembly_open_from_bundle): Add the refonly argument, 
4796         in order to pass it to other methods it calls to.
4797         (do_mono_assembly_open): Add the refonly argument, in order 
4798         to pass it to other methods it calls to.
4799         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4800         the refonly parameter to it.
4801
4802         * image.c: Add loaded_images_refonly_hash and
4803         loaded_images_refonly_guid_hash to cache the reflection
4804         only loaded images.
4805         (mono_images_init): Initialize the hash tables used for
4806         caching the reflection only images.
4807         (load_modules): Invoke mono_image_open_full passing the refonly
4808         parameter to load the modules the correct way.
4809         (build_guid_table): Add the refonly argument, to re-build the 
4810         correct hash table.
4811         (do_mono_image_open): Added the refonly argument, in order to
4812         define it for the loaded image.
4813         (mono_image_loaded_full): New function, which receives an
4814         additional parameter to look for the image in the refonly or
4815         non-refonly section.
4816         (mono_image_loaded): Updated, using mono_image_loaded_full.
4817         (mono_image_loaded_by_guid_full): The same case that happens
4818         with mono_image_loaded_full.
4819         (mono_image_loaded_by_guid): Likewise.
4820         (register_image): Use the ref_only variable inside MonoImage
4821         to decide in which hash table store the current image.
4822         (mono_image_open_from_data_full): Rename
4823         mono_image_open_from_data to mono_image_open_from_data_full,
4824         adding the refonly argument, to define the ref_only variable 
4825         inside MonoImage.
4826         (mono_image_open_from_data): Return 
4827         mono_image_open_from_data_full.
4828         (mono_image_open_full): Rename mono_image_open to
4829         mono_image_open_full, receiving the new refonly argument,
4830         to pass it to inner methods.
4831         (mono_pe_file_open): Update this function, to open
4832         a MonoImage as a non-refonly image.
4833         (mono_image_close): Use the refonly variable inside
4834         MonoImage to remove the image from the correct caches.
4835
4836         * image.h: Add the signatures of mono_image_open_full,
4837         mono_image_open_from_data_full, mono_image_loaded_full,
4838         mono_image_loaded_by_guid_full.
4839
4840         * metadata-internals.h: Add the ref_only field to 
4841         MonoImage.
4842         
4843 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4844
4845         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4846         Fix the last behavior, which used to load the assemblies and
4847         extract MonoReflectionAssemblyName information, instead of
4848         extract it from the metadata tables. Needed for Reflection
4849         Only assemblies.
4850         
4851 2005-07-29  Martin Baulig  <martin@ximian.com>
4852
4853         * mono-debug-debugger.c
4854         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4855         not initialized.
4856
4857         * mono-debug.c
4858         (mono_debug_address_from_il_offset): Check whether we have
4859         debugging support before attempting to take the lock.
4860         (mono_debug_source_location_from_address): Likewise.
4861         (mono_debug_source_location_from_il_offset): Likewise.
4862         (mono_debug_il_offset_from_address): Likewise.
4863         (mono_debug_address_from_il_offset): Likewise.
4864
4865 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4866
4867         * class.c (mono_class_from_name_case): Add support for dynamic images.
4868         Fixes #75650.
4869
4870         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4871         for #75479.
4872
4873 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4874         
4875         * reflection.c (mono_method_get_object): Fix warning.
4876
4877 2005-07-28  Martin Baulig  <martin@ximian.com>
4878
4879         * mono-debug.c
4880         (mono_debug_add_wrapper): Also write the wrapper type.
4881
4882 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4883
4884         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4885         
4886         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4887         data indicates the class has none.
4888
4889 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4890
4891         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4892         loader lock with the debugger lock. Prevents deadlocks for beagle.
4893
4894         Beagle can now run on an smp box for a weekend without any
4895         issues. Woohoo!
4896
4897 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4898
4899         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4900         in a module. Fixes #75629.
4901
4902 2005-07-26  Martin Baulig  <martin@ximian.com>
4903
4904         * mono-debug.c (mono_debug_add_wrapper): New static method.
4905         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4906         interncall or a wrapper.
4907
4908         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4909         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4910         (MONO_DEBUGGER_VERSION): Bump to 51.
4911
4912         * mono-debug-debugger.c
4913         (mono_debugger_add_type): Removed this empty function.
4914         (mono_debugger_add_method): Likewise.
4915
4916 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4917
4918         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4919         before accessing method->slot.
4920
4921 2005-07-21  Jb Evain  <jbevain@gmail.com>
4922
4923         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4924         Fixes #75010.
4925
4926 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4927
4928         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
4929         #75587.
4930
4931 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
4932
4933         * image.h image.c: Add mono_image_get_guid () API function.
4934
4935 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
4936
4937         There were issues when multiple threads tried to load
4938         assemblies. A deadlock was created between assemblies_mutex and
4939         mono_domain_assemblies_lock. This fixes the issue by making the
4940         assembly ref counting be lock free. See bug 75586.
4941         
4942         * image.c (mono_image_close): The add ref function here was using
4943         Interlocked operations while the unref was using a mutex and a
4944         --. I don't think this was ever a bug that would be exposed in a
4945         non-pendantic way (ie, by an embedder doing a ref on one thread
4946         and an unref on another), but for the sake of correctness, this is
4947         now Interlocked.
4948
4949         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
4950         (mono_assembly_load_reference): Call mono_assembly_addref rather
4951         than touching the refcount ourselves.
4952         (mono_assembly_close): Use InterlockedDecrement to unref the
4953         assembly. Don't acquire the lock unless it is actually needed.
4954
4955 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4956
4957         * class.c (mono_class_layout_fields): Fix calculation of has_references
4958         for generic types.
4959
4960 2005-07-12  Martin Baulig  <martin@ximian.com>
4961
4962         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4963
4964         * metadata.c
4965         (mono_type_hash): Provide better hashing for generic instances.
4966         (mono_generic_inst_hash): Improve hashing.
4967         (mono_generic_class_hash): Likewise.
4968
4969         * reflection.c (mymono_metadata_type_hash): Improve hashing for
4970         generic instances.
4971
4972 2005-07-12  Martin Baulig  <martin@ximian.com>
4973
4974         * reflection.c (mono_reflection_create_runtime_class): Remove the
4975         hack for generic type definitions and non-`Run' assemblies.
4976         (mono_reflection_bind_generic_parameters): Also use
4977         `klass->wastypebuilder' to check for TypeBuilders.
4978
4979 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4980
4981         * class.c (mono_class_layout_fields): Fix calculation of has_references
4982         for generic types.
4983
4984         * class.c (inflate_generic_class): Fix a leak.
4985         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
4986         for generic types.
4987
4988 2005-07-11  Martin Baulig  <martin@ximian.com>
4989
4990         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
4991         on error.
4992
4993 2005-07-11  Martin Baulig  <martin@ximian.com>
4994
4995         * loader.c (find_method): Also lookup in
4996         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
4997
4998 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4999
5000         * appdomain.c (mono_domain_unload): Don't free the error message
5001         before passing it to mono_get_exception_...
5002
5003         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5004         
5005 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5006
5007         * threads.c: try to better guess an available RT signal (bug #75387).
5008
5009 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5010
5011         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5012         and CACHE_OBJECT.
5013
5014 2005-07-07  Martin Baulig  <martin@ximian.com>
5015
5016         * class.c (mono_type_get_name_full): Return NULL for
5017         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5018         fixes #75408.
5019
5020 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5021
5022         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5023         exit the appdomain as well being aborted.
5024
5025         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5026         change back to the root domain after calling managed code. This enables
5027         appdomains using threadpools to be unloaded.
5028
5029 2005-07-07  Martin Baulig  <martin@ximian.com>
5030
5031         * class-internals.h
5032         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5033         into `MonoDynamicGenericClass' since we only need it for dynamic
5034         types.
5035
5036         * reflection.c (mono_class_bind_generic_parameters): We don't need
5037         to compute the `parent' here.
5038
5039 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5040
5041         * culture-info-table.h : regenerated.
5042
5043 2005-07-06  Martin Baulig  <martin@ximian.com>
5044
5045         * icall.c
5046         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5047
5048         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5049
5050 2005-07-06  Martin Baulig  <martin@ximian.com>
5051
5052         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5053         we're doing a signature-only comparision; fixes #74945.
5054
5055 2005-07-06  Martin Baulig  <martin@ximian.com>
5056
5057         * class-internals.h (MonoGenericClass): Moved some things out into
5058         a new `MonoInflatedGenericClass' type.  
5059         (MonoInflatedGenericClass): New type; the `klass' of a
5060         `MonoGenericClass' is now computed lazyly in
5061         mono_get_inflated_generic_class().      
5062
5063         * class.c (mono_get_inflated_generic_class): New public function.
5064         (mono_class_inflate_generic_method): Removed the unused
5065         `MonoClass *' argument.
5066         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5067         all the methods.
5068         (mono_class_create_generic): Make this static and merge it with
5069         mono_class_create_generic_2(); we're now called automatically from
5070         mono_get_inflated_generic_class().
5071
5072         * loader.c (mono_method_signature): Call
5073         mono_get_inflated_method() here.
5074
5075 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5076
5077         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5078         type of fields with RVA.
5079
5080         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5081         for this pseudo class.
5082         (my_mono_class_from_generic_parameter): Likewise.
5083         (mono_class_init): Allow interfaces to have cctors.
5084
5085 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5086
5087         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5088         lazily for AOT methods.
5089
5090 2005-07-05  Martin Baulig  <martin@ximian.com>
5091
5092         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5093         returns FALSE for a successful match, not TRUE.
5094
5095 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5096
5097         * loader.c (mono_method_get_index): Optimize this a bit.
5098
5099 2005-07-04  Martin Baulig  <martin@ximian.com>
5100
5101         * class.c
5102         (class_compute_field_layout): Move the check for generic type
5103         definitions into mono_class_layout_fields().  Fixes #74684.
5104         (mono_class_from_generic_parameter): Correctly compute
5105         `klass->parent'; fixes #75457.
5106
5107         * reflection.c (register_assembly, register_module): Make sure
5108         `domain->rejobject_hash' is already created.
5109
5110 2005-07-02  Martin Baulig  <martin@ximian.com>
5111
5112         * class-internals.h
5113         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5114         `MonoDynamicGenericClass'.      
5115
5116 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5117
5118         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5119         returned by a field getter is null, since null is a valid value.
5120
5121 2005-07-01  Martin Baulig  <martin@ximian.com>
5122
5123         * reflection.c (mono_reflection_generic_class_initialize): Update
5124         the `dgclass->fields [i].parent' to the correct class.
5125         (mono_image_get_fieldref_token): Use the declaring type, not the
5126         reflected type.
5127
5128 2005-07-01  Martin Baulig  <martin@ximian.com>
5129
5130         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5131
5132 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5133
5134         * threads.c (thread_cleanup): assert that thread != NULL
5135         (wait_for_tids_or_state_change): We were using the wrong variable
5136         when accessing wait->threads. `i' was always out of the bounds of
5137         the array.
5138
5139 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5140
5141         * loader.c: map user32 and kernel32 to libMonoSupportW
5142
5143 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5144
5145         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5146
5147 2005-06-28  Martin Baulig  <martin@ximian.com>
5148
5149         * loader.c (method_from_methodspec): Fix #75334.
5150
5151 2005-06-28  Martin Baulig  <martin@ximian.com>
5152
5153         Fix #74953 - Arrays now implement the generic IList<T> interface
5154         on the 2.0 platform.
5155
5156         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5157
5158         * reflection.c (mono_class_bind_generic_parameters): New public
5159         function; similar to mono_reflection_bind_generic_parameters(),
5160         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5161
5162         * domain.c (mono_init_internal): Try to initialize.
5163         `mono_defaults.generic_array_class' here; this'll only succeed if
5164         we're using the 2.0 corlib.
5165
5166         * icall.c
5167         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5168         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5169         (mono_lookup_internal_call): Added support for nested classes.
5170
5171         * loader.c
5172         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5173         we're an interncall and have generic arguments.
5174
5175         * class.c
5176         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5177         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5178         instance of System.Array.InternalArray<T> for arrays, so they
5179         implement the generic IList<T> interface.
5180
5181 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5182
5183         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5184         (chastamar@yahoo.com). Fixes #75374.    
5185
5186 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5187
5188         * culture-info-table.h: regenerated.
5189
5190 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5191
5192         * icall.c: handle spaces correctly for base64 strings.
5193
5194 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5195
5196         * *.c: Kill some warnings.
5197
5198 2005-06-23  Duncan Mak  <duncan@novell.com>
5199
5200         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5201         that this builds on Solaris 10 (x86).
5202
5203 2005-06-23  Martin Baulig  <martin@ximian.com>
5204
5205         * class.c
5206         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5207         generic type definitions.
5208
5209 2005-06-23  Martin Baulig  <martin@ximian.com>
5210
5211         Fix #75331.
5212
5213         * metadata.c (mono_class_get_overrides): Renamed to
5214         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5215         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5216         pass it to mono_get_method_full().
5217
5218 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5219
5220         * reflection.c (mono_reflection_create_runtime_class): take the
5221         mono_domain_lock in this method. Prevents deadlocks
5222
5223 2005-06-22  Martin Baulig  <martin@ximian.com>
5224
5225         * loader.c (method_from_methodspec): Fix #75330.
5226
5227 2005-06-22  Martin Baulig  <martin@ximian.com>
5228
5229         * reflection.c (type_get_qualified_name): Use
5230         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5231         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5232         argument; use it if we don't have an assembly name.
5233
5234 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5235
5236         * object.c: In mono_message_init, set "copy out" flag for in
5237         parameters with the [Out] flag.
5238
5239 2005-06-21  Martin Baulig  <martin@ximian.com>
5240
5241         * class.c
5242         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5243         and MONO_TYPE_PTR.
5244
5245 2005-06-21  Martin Baulig  <martin@ximian.com>
5246
5247         * class.c (mono_class_init): Don't initialize `class->fields' for
5248         generic instances since they're initialized again in
5249         compute_field_layout(). 
5250         (compute_field_layout): Set the field's `generic_info' here; fix
5251         #75320. 
5252
5253 2005-06-21  Martin Baulig  <martin@ximian.com>
5254
5255         * class-internals.h
5256         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5257
5258         * metadata.c (mono_metadata_generic_method_equal): Also
5259         distinguish the `generic_class'; fixes #75334.
5260
5261 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5262
5263         * domain.c:
5264         * appdomain.c:
5265         * domain-internals.h:
5266         * reflection.c: 'domain_assemblies' field is now protected by its own
5267         lock. Don't call into managed code to run the AssemblyLoad event if we
5268         now there are no registered delegates for it.
5269
5270 2005-06-20  Martin Baulig  <martin@ximian.com>
5271
5272         * class.c (mono_class_is_assignable_from): Use a custom version of
5273         mono_class_has_parent() to make things work for generic instances;
5274         fix #75300.
5275
5276 2005-06-20  Martin Baulig  <martin@ximian.com>
5277
5278         * loader.c (method_from_methodspec): Apply a patch from
5279         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5280
5281 2005-06-20  Martin Baulig  <martin@ximian.com>
5282
5283         * class.c (mono_class_init): Reverted Zoltan's last change; it
5284         breaks generics.
5285
5286 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5287
5288         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5289
5290 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5291
5292         * socket-io.c: fix the index in the socket array for writable/error
5293         sockets. Fixes bug #75306.
5294
5295 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5296
5297         * class.c (mono_class_init): Allow interfaces to have static ctors.
5298
5299 2005-06-17  Martin Baulig  <martin@ximian.com>
5300
5301         * loader.c (method_from_methodspec): Use `context->container' when
5302         parsing the `gmethod->inst'.
5303
5304 2005-06-17  Martin Baulig  <martin@ximian.com>
5305
5306         * class.c (mono_type_get_name_recurse): Don't add the assembly
5307         name for type arguments.
5308
5309 2005-06-15  Martin Baulig  <martin@ximian.com>
5310
5311         * reflection.c (mono_image_get_inflated_method_token): Encode
5312         correct klass; fixes #75260.
5313
5314 2005-06-13 Michal Moskal <malekith@nemerle.org>
5315
5316         * icall.c: Make GetCorrespondingMethod/Constructor take
5317         MonoReflectionMethod method not MonoMethod. Removed
5318         MonoType.GetCorrespondingField, and make
5319         MonoGenericType.GetCorrespondingField take name not
5320         MonoClassField.
5321
5322 2005-06-13  Michal Moskal <malekith@nemerle.org>
5323
5324         * reflection.c (field_encode_signature, encode_locals):
5325          Make sizes of buffers for types larger (for big generic types).
5326          (create_generic_typespec,
5327          mono_reflection_sighelper_get_signature_local,
5328          mono_reflection_sighelper_get_signature_field):
5329          Add asserts for too small buffers.
5330
5331 2005-06-15  Martin Baulig  <martin@ximian.com>
5332
5333         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5334         if our parent is not a dynamic type.
5335
5336 2005-06-15  Martin Baulig  <martin@ximian.com>
5337
5338         * class-internals.h (MonoTypeNameFormat): New enum.
5339
5340         * class.c
5341         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5342         (mono_type_get_full_name): Removed.
5343         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5344         argument instead of the boolean's.
5345
5346         * icall.c (ves_icall_System_MonoType_getFullName):
5347         Added `gboolean assembly_qualified'.    
5348
5349         * reflection.h
5350         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5351
5352         * reflection.c (mono_reflection_parse_type): Parse the new type
5353         name format.
5354
5355 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5356
5357         * icall.c: no need to convert from utf16 to utf8 and then back again
5358         after the call to GetLogicalDrives.
5359
5360 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5361
5362         * icall.c: frombase64. Fix problems exposed by new tests.
5363
5364 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5365
5366         * icall.c: added internal calls for converting char [] and strings in
5367         base64 into byte [].
5368
5369 2005-06-10  Martin Baulig  <martin@ximian.com>
5370
5371         * class.c (mono_class_create_generic_2): Read the nested classes
5372         from the metadata rather than from `gklass->nested_classes' since
5373         `gklass' might not be initialized yet.
5374
5375 2005-06-09  Duncan Mak  <duncan@novell.com>
5376
5377         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5378         all public headers. Fixes #74919.
5379
5380 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5381
5382         * domain.c: The key for proxy_vtable_hash is now a pointer
5383         array. Added new GHashFunc and GCompareFunc functions for this.
5384
5385         * class.h: The list of interfaces in MonoRemoteClass is known in
5386         advance and can't grow (we create a new MonoRemoteClass if needed),
5387         so now the interface array can be allocated together with
5388         MonoRemoteClass.
5389         
5390         * object.c: Added a new method create_remote_class_key.
5391         Fixed mono_remote_class so it does not depend on
5392         mono_upgrade_remote_class.
5393         Removed extend_interface_array.
5394         Added new method clone_remote_class(), which makes a copy of a remote
5395         class and adds a new interface or class to it.
5396         mono_upgrade_remote_class() now creates a new remote class (or gets
5397         it from the cache) if an vtable upgrade is needed. In this way
5398         we make sure that other objects sharing the same remote class
5399         don't get the new vtable with unwanted interfaces.
5400         
5401         * object-internals.h:
5402         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5403         
5404         * marshal.c: Track changes in mono_upgrade_remote_class().
5405
5406 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5407         * icall.c: Add runtime methods for obtaining members of inflated
5408         class, which were created from supplied non-inflated members. It
5409         is used in internal Get{Method,Constructor,Field} methods in
5410         System.Type
5411
5412 2005-06-09  Martin Baulig  <martin@ximian.com>
5413
5414         * reflection.c
5415         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5416
5417 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5418         * reflection.c (mono_image_basic_init): Define
5419         Version in MonoDynamicAssembly. 
5420         
5421 2005-06-08  Martin Baulig  <martin@ximian.com>
5422
5423         Fix #75136.
5424
5425         * loader.c
5426         (mono_method_signature_full): New public method; takes a
5427         `MonoGenericContext *'.
5428         (find_method): Use mono_method_signature_full() and pass the
5429         klass'es context to it.
5430
5431         * class.c (mono_class_is_inflated_method): Use
5432         mono_method_signature_full() and pass the context to it.
5433
5434 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5435
5436         * object.c: add proper locking in mono_remote_class_vtable(),
5437         fixes possible memory corruption.
5438
5439 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5440
5441         * marshal.c (mono_remoting_marshal_init): set
5442         initialized after initialization.
5443
5444 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5445
5446         * locales.c : hush.
5447
5448 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5449
5450         * object.c (extend_interface_array): fix really silly
5451         memory corrupting / comparison bug.
5452
5453 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5454
5455         * reflection.c: Functions added to support the creation
5456         of CustomAttributeData, which includes Attribute data
5457         used by ReflectionOnly methods.
5458
5459         * reflection.h:  mono_reflection_get_custom_attrs_data and
5460          mono_custom_attrs_data_construct added (functions exposed).
5461
5462          * icall.c: Added mono_reflection_get_custom_attrs_data
5463          as icall.
5464         
5465 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5466
5467         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5468         lupus's request.
5469
5470 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5471
5472         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5473
5474         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5475         dynamic DllImportAttribute.
5476
5477         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5478         dynamic DllImportAttribute.
5479
5480         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5481         Fixes #75162.
5482
5483 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5484
5485         * threads.c: avoid segfault when an unstarted thread is aborted.
5486
5487 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5488
5489         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5490         Returns the name and version of the runtime for reporting.
5491
5492 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5493
5494         * appdomain.c: bump corlib version.
5495         * object-internals.h: new field in MonoReflectionAssembly.
5496
5497 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5498
5499         * object-internals.h: Carlos forgot to add this field.
5500
5501 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5502
5503         * icall.c: Added create_version to create instances
5504         of Version of MonoReflectionAssemblyName. This change helps
5505         the AssemblyName tests to keep running fine.
5506         
5507 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5508   
5509         * object.c (mono_method_return_message_restore): A somehow less
5510         intrusive fix for #75138.
5511
5512 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5513
5514         * object.c (mono_method_return_message_restore): Fix computation
5515         of expected number of out args.
5516
5517 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5518
5519         * reflection.c (mono_image_get_method_info): Fix the case when the
5520         charset is empty.
5521
5522 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5523
5524         * object.c: Added missing null check in
5525           mono_method_return_message_restore.
5526
5527 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5528
5529         * reflection.c (mono_image_get_method_info): Handle the case when
5530         dllentry is empty.
5531
5532 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5533
5534         * object.c: When creating the vtable for a proxy, take into account
5535         all inherited interfaces, not only the ones registered in
5536         iclass->interfaces. This fixs bug #74996.
5537         Also, in mono_method_return_message_restore, verify that the array
5538         of out args has the expected lengh.
5539
5540 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5541
5542         * socket-io.c: update the timeout in Poll when the call is interrupte.
5543
5544 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5545
5546         * socket-io.c: support abort/suspend in Select_internal after last
5547         change.
5548
5549 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5550
5551         * threadpool.c: remove warning.
5552
5553 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5554
5555         * icall.c:
5556         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5557         removing the 1024 limit from select(). Runtime part of the fix for
5558         bug #71203.
5559
5560 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5561
5562         * socket-io.c: when resolving the addresses for the same
5563         host returned by gethostname(), get the local IPs from the interface
5564         list. Loopback addresses are discarded if the are interfaces up with
5565         non-loopback ones. Fixes bug #63265.
5566
5567 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5568
5569         * appdomain.c, verify.c, object-internals.h, reflection.c:
5570         bumped corlib number to 36, and added new extra_flags field
5571         to ReflectionMethodBuilder and friends.  Fixes #75060.
5572
5573 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5574
5575         * gc.c: register a new weak link only if the object is non-null
5576         (fixes bug#75047).
5577
5578 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5579
5580         * culture-info.h : short time pattern too.
5581
5582 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5583
5584         * culture-info.h : expand long time pattern string length.
5585
5586 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5587
5588         * culture-info-table.h : update (more French date format; #72788).
5589
5590 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5591
5592         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5593         the method is static. Fixes #75029.
5594
5595 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5596
5597         * reflection.c: Update the table_idx field of method builders after
5598         saving the module, since it can change. This is a workaround for
5599         bug #74914. 
5600
5601 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5602
5603         * culture-info-table.h : update (additional French date format).
5604
5605 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5606
5607         * icall.c (ves_icall_type_Equals): Revert last change.
5608         
5609         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5610
5611         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5612
5613 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5614
5615         * class-internals.h: Added executioncontext_class field to 
5616         MonoDefaults structure.
5617         * domain.c: Cache System.Threading.ExecutionContext class in 
5618         mono_defaults.
5619         * object.c: Capture the ExecutionContext for asynchroneous calls in
5620          mono_async_result_new.
5621         * object-internals.h: Added execution_context and original_context 
5622         fields to MonoAsyncResult. Added execution_context to MonoThread.
5623         * security-manager.c|.h: Added mono_get_context_capture_method to 
5624         return the capture method (if required by the security manager or by
5625         the framework version used).
5626         * threadpool.c: Apply capture (if present) ExecutionContext in 
5627         mono_async_invoke and revert to original context after it completes.
5628
5629 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5630
5631         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5632
5633 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5634
5635         * culture-info-table.h : zh-CHT related workaround.
5636
5637 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5638
5639         * marshal.c (emit_marshal_custom): Add some error checking and call the
5640         methods in the ICustomMarshaler interface. Fixes #74875.
5641         
5642         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5643         native->managed wrappers.
5644
5645 2005-05-12  Martin Baulig  <martin@ximian.com>
5646
5647         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5648         here and use the loader lock.
5649
5650         * mono-debug.c: Properly lock when the debugger is not attached.
5651         (mono_debug_init): Release the initial lock if we're not running
5652         in the debugger.
5653
5654 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5655
5656         * marshal.c (emit_marshal_custom): Pass through NULL values without
5657         calling the custom marshalling routines.
5658
5659         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5660         conversion in structures. Fixes #74882.
5661
5662 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5663
5664         * culture-info-table.h : zh-* cultures were missing.
5665
5666 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5667
5668         * threads.c: Added a new event background_change_event which is signaled
5669         when a thread changes its background mode.
5670         Moved here several checks previously done in managed code. The checks
5671         require the thread lock, and using the thread lock in managed code
5672         can result in deadlocks.
5673         Merged Start_internal and Thread_internal into a single method. Now 
5674         Thread_internal does all work of creating and starting a thread.
5675         Added icalls for setting and getting the state of the object. Moved from
5676         managed code to avoid locking there.
5677         Added wait_for_tids_or_state_change() which is called instad of
5678         wait_for_tids when waiting for non-backround threads to end. This method
5679         will return if one of the threads ends or the background_change_event
5680         is signaled.
5681         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5682         the background mode. This method signals the background_change_event
5683         event.
5684         * icall.c:
5685         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5686         removed Start_internal.
5687         
5688 2005-05-11  Martin Baulig  <martin@ximian.com>
5689
5690         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5691         to order of some fields to get proper alignment on 64-bit machines.
5692
5693 2005-05-11  Martin Baulig  <martin@ximian.com>
5694
5695         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5696         changes as they're broken and completely fuck up the debugger.
5697
5698         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5699
5700 2005-05-10  Martin Baulig  <martin@ximian.com>
5701
5702         * reflection.c (mono_reflection_generic_class_initialize): Don't
5703         call mono_class_setup_parent() here.
5704
5705 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5706
5707         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5708         send/receive timeout use an integer in milliseconds. We were using a
5709         struct timeval.
5710
5711 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5712
5713         * locales.c:
5714         (internal_get_cultures): reserve the first slot of the array for the
5715         InvariantCulture, which will be filled in managed code.
5716
5717 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5718
5719         * reflection.c (mono_image_fill_module_table): Initialize the
5720         GENERATION field as well.
5721
5722 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5723
5724         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5725         Monitor.Enter on the object.
5726
5727 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5728
5729         * threads.c: Enable the wait for running threads when exiting.
5730         * icall.c: Suspend all threads before exiting.
5731
5732 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5733
5734         * assembly.c (mono_assembly_load_reference): Fix warning.
5735
5736 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5737
5738         * threadpool.c: changed the default number of threads per cpu. From now
5739         on, the default will be 20 + (5 * number of cpus) instead of 50.
5740
5741 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5742
5743         * loader.c (mono_method_get_signature_full): Add locking here.
5744
5745 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5746
5747         * appdomain.c: Moved methods for parsing and freeing assembly
5748         names to assembly.c.
5749         * assembly.c, domain-internals.h: Created public methods for parsing
5750         assembly names. Fixed mono_assembly_load_with_partial_name:
5751         it now finds the best match, taking into account the version,
5752         token and culture specified in the partial name. Also return
5753         the latest version if no version information is specified.
5754
5755 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5756
5757         * threadpool.c: replace check for SocketAsyncCall class.
5758
5759 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5760
5761         * threadpool-internals.h:
5762         * Makefile.am: added threadpool-internals.h
5763
5764         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5765         that happen in threadpool threads (tested on MS).
5766         (mono_thread_pool_remove_socket): new function that dispatch any pending
5767         AIO call on a socket that is closing. By now only epoll really needs it,
5768         as select/poll wake up when the socket closes.
5769
5770
5771         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5772
5773 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5774
5775         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5776
5777 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5778
5779         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5780
5781 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5782
5783         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5784         has an abort request, convert it into a suspend request.
5785
5786 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5787
5788         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5789         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5790         is not supported yet.
5791
5792 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5793
5794         * image.c: register assemblies loaded from data (bundles) in the loaded
5795         assemblies hash. Fixes bug #74772.
5796
5797 2005-04-29  Martin Baulig  <martin@ximian.com>
5798
5799         * class.c (mono_type_get_name_recurse): Update to the new naming
5800         schema from the latest .NET 2.x beta2.
5801         (mono_class_setup_vtable_general): If we're a generic instance,
5802         copy the vtable from our generic type definition and inflate all
5803         the methods in it.
5804
5805         * loader.c (find_method): Update to the new naming schema from the
5806         latest .NET 2.x beta2.
5807
5808 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5809
5810         * class.c (mono_class_init): Add a mono_loader_unlock to the
5811         #74734 fix.
5812
5813 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5814
5815         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5816         suspend_all_other_threads () call for the time being, since it can hang.
5817
5818         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5819         the background threads to exit, since it can also hang.
5820
5821         * class.c (mono_class_init): Applied patch from Ankit Jain 
5822         (radical@gmail.com). Avoid pending init errors when a field refers
5823         to a nested class using a typeref. Fixes #74734.
5824
5825         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5826         this for dynamic modules.
5827
5828 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5829
5830         * threads.c: don't wait for threads that are in the process of aborting
5831         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5832         and waiting for background threads to finish. This makes xsp and
5833         mod-mono-server exit without random length delays and/or hangs.
5834
5835 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5836
5837         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5838
5839 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5840
5841         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5842         dynamic types to prevent infinite loops. Fixes #74727.
5843
5844         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5845         ..._is_assignable_to.
5846
5847 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5848
5849         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5850
5851 2005-04-25  Martin Baulig  <martin@ximian.com>
5852
5853         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5854
5855         * domain.c
5856         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5857
5858         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5859
5860         * reflection.c (build_compressed_metadata): Set metadata header
5861         version to 2.0.
5862
5863 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5864
5865         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5866         number into an integral and a decimal part. Fixes #70473.
5867
5868         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5869
5870 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5871
5872         * culture-info-table.h : reflected the latest locale-builder output.
5873
5874 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5875
5876         * threadpool.c: check for SuspendRequested too when deciding if
5877         mono_thread_interruption_checkpoint should be called.
5878
5879 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5880
5881         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5882         * threads.c: remove interruption_mutex and use Interlocked instead. When
5883         suspending all the threads, wait for all the suspended events at once.
5884         If we're shutting down and get an APC that is going to be queued,
5885         call mono_thread_execute_interruption immediately, as the thread might
5886         be sleeping on a pthread condition or mutex.
5887
5888         * icall.c: call mono_runtime_set_shutting_down before suspending the
5889         threads.
5890
5891         Fixes bug #74693. And now xsp is happier when exiting.
5892
5893 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5894
5895         * loader.c (mono_stack_walk): Fix #74690.
5896
5897 2005-04-22  Martin Baulig  <martin@ximian.com>
5898
5899         * mono-debug.h (MonoDebugMethodJitInfo): Added
5900         `MonoDebugMethodJitInfo *jit'.
5901
5902         * mono-debug.c (mono_debug_read_method): Cache the
5903         MonoDebugMethodJitInfo in `address->jit'.
5904         (mono_debug_free_method_jit_info): New public method.
5905
5906 2005-04-22  Martin Baulig  <martin@ximian.com>
5907
5908         * class.c (mono_class_is_assignable_from): Disallow
5909         type parameter -> interface.
5910
5911 2005-04-21  Dick Porter  <dick@ximian.com>
5912
5913         * threads.c (mono_thread_create): Turn an assertion into an error.
5914
5915 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5916
5917         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5918         
5919         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5920         Fix some gcc 4.0 warnings.
5921
5922 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5923
5924         * file-io.c: fix alt dir separator char on unix systems
5925         and cleanup (fixes bug #71214).
5926
5927 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
5928
5929         * marshal.c: Use CALLVIRT instead of CALL when dispatching
5930         a call to a remote domain, since the method may be an
5931         interface method in the client domain. This fixes bug #74192.
5932
5933 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5934
5935         * threadpool.c: recv/send are now performed before going back to managed
5936         code to save one transition.
5937
5938 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5939
5940         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
5941
5942         * metadata/threadpool.c: removed hack to workaround the bug above.
5943
5944         Fixes bug #74618.
5945
5946 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
5947
5948         * reflection.c reflection.h: Fix handling of parameter defaults in
5949         dynamic methods. Also fixes handling of parameter attributes.
5950         Fixes #74609.
5951
5952         * mono-debug.c (mono_debug_close_image): Fix warning.
5953
5954 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5955
5956         * socket-io.h: replaced old unused field with new 'blocking'.
5957         * threadpool.c: restore socket blocking state on windows(tm).
5958
5959 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
5960
5961         * icall.c: don't return the codebase in the AssemblyName[] returned by
5962         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
5963         * object-internals.h: Removed FIXME (fields were presents) and fixed
5964         versioncompat declaration.
5965
5966 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5967
5968         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
5969         not closed, so don't cleanup when it happens.
5970
5971 2005-04-13  Chris Toshok  <toshok@ximian.com>
5972
5973         * mono-debug-debugger.h: change prototype for
5974         mono_debugger_lookup_type.
5975
5976         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
5977         this function, although it should probably be named
5978         mono_debugger_init_type.
5979
5980 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5981
5982         * threadpool.c: fix non-AIO case.
5983
5984 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
5985
5986         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
5987         the built-in profiler to measure just JIT compilation times.
5988
5989 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5990
5991         * threadpool.c: the epollfd might be closed by another thread at
5992         any time, so ignore EBADF at treat it as a "we're closing" sign.
5993
5994 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5995
5996         * threadpool.c: release the semaphores with a count equals to the number
5997         of working threads in both IO and regular pools. Fixed typo that messed
5998         up the count of IO pool threads. Don't initialize the pipe handles if
5999         we're using epoll.
6000
6001 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6002
6003         * threadpool.c: some systems don't like a NULL when deleting the socket
6004         from epoll.
6005
6006 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6007
6008         * threadpool.c: fix semaphore allocation.
6009
6010 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6011
6012         * threadpool.c: added epoll() based implementation for asynchronous IO
6013         that is used instead of the default poll() when available.
6014         It can be disabled by setting MONO_DISABLE_AIO.
6015
6016 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6017
6018         * threadpool.c: windows needs 'closesocket' and instead of returning
6019         0 when the stream is closed while in select, it returns -1. Fixes bug
6020         #74573.
6021
6022 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6023
6024         * class.c (class_compute_field_layout): Fix the regression caused by
6025         the previous try.
6026
6027 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6028
6029         * threadpool.c: separate pool for socket async. IO.
6030         * threadpool.h: mono_max_worker_threads is not a global any more.
6031
6032 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6033
6034         * class.c (class_compute_field_layout): Fix #74549.
6035
6036 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6037
6038         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6039         use 2 connected sockets instead.
6040
6041 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6042
6043         * mono-config.c: Add new entry point for mkbundle
6044         mono_config_parse_memory. 
6045
6046 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6047
6048         * threadpool.c: removed another unused function.
6049
6050 2005-04-08  Ankit Jain  <radical@corewars.org>
6051
6052         * reflection.c (get_default_param_value_blobs): Add 'types'
6053         parameter to get the types encoded in the constant table.
6054         (mono_param_get_objects): Use the type from the constant table,
6055         not the type of the parameter, when creating default values.
6056         Handle null default values correctly.
6057
6058 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6059
6060         * file-io.c:
6061         * file-io.h:
6062         * threadpool.c:
6063         * threadpool.h:
6064         * icall.c:
6065         * socket-io.c: removed dead code for async IO.
6066
6067 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6068
6069         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6070
6071         * threadpool.c: intercept socket async. calls and pass them to a thread
6072         that is polling and dispatching the job items to the threadpool as
6073         socket become ready. Fixes bugs #71217, #71933.
6074
6075         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6076         between char and short/ushort arrays.
6077
6078         * socket-io.c: remove dead code.
6079
6080 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6081
6082         * locales.c,
6083           icall.c : removed InternalToUpper_Comp() and
6084           InternalToLower_Comp().
6085
6086 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6087
6088         * char-conversions.h : The tables were incorrectly generated. Should
6089           be generated against invariant culture.
6090
6091 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6092
6093         * object.c (mono_runtime_invoke_array): Fix return value when 
6094         passing pre-created valuetype objects to ctors.
6095
6096         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6097         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6098         Fixes #74338.
6099
6100 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6101
6102         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6103         only used with --security and hides the wrong corlib version error.
6104
6105 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6106
6107         * class.c: Changed mono_class_name_from_token so that types
6108         outside of a namespace don't have an initial period.  Improved
6109         the g_warning message used in _mono_class_get when loading
6110         fails.
6111         * assembly.c: In mono_assembly_load_reference, when an assembly
6112         can't be found, "No such file or directory" is misleading and
6113         unhelpful because a few paths were checked for the presence of
6114         the assembly.  When that happens (ENOENT), display a nicer
6115         message indicating the directories that were searched.  In all
6116         cases, the warning is made easier to read for non-hackers.
6117
6118 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6119
6120         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6121         project/solution.
6122         * appdomain.h|domain.c: Removed inline from functions.
6123         * appdomain.c: Reduced warnings when compiling on windows.
6124         * icall.c: Fixed output_debug declaration to gunichar2*.
6125         * mono-config.c: Reduced warnings when compiling on windows.
6126         * rand.c: Added missing "windows.h". Added missing return value.
6127         * rawbuffer.c: Added missing winsock2.h for windows.
6128         * sysmath.h: Added mono-compiler.h header to allow/ease 
6129         compilation with non-GCC compilers.
6130         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6131         Removed cast warnings.
6132
6133         Adapted from the work of J Lothian (for VC6).
6134
6135 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6136
6137         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6138         from default_path.
6139
6140 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6141
6142         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6143         the 2.0 profile.
6144
6145 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6146
6147         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6148         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6149         stuff, and it would probably use $(prefix)/share rather than
6150         $(prefix)/lib.
6151
6152 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6153
6154         * console-io.c: added 2 includes that might be missing.
6155
6156 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6157
6158         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6159         profile.
6160
6161         * reflection.c (create_custom_attr): Allocate the params array using
6162         alloca so it gets GC tracking.
6163
6164 2005-03-23  Chris Toshok  <toshok@ximian.com>
6165
6166         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6167         out some spew.
6168
6169 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6170
6171         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6172         changes to pick up any changes in prefix, etc.
6173
6174 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6175
6176         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6177         
6178         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6179         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6180
6181 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6182
6183         * class-internals.h object-internals.h class.c reflection.c: Extend the
6184         mono_lookup_dynamic_token () function to return the class of the
6185         token as well. 
6186
6187         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6188         well. Fixes #73848.
6189
6190 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6191
6192         * security-manager.c: Skip inheritance checks for intra-corlib
6193         class inheritance and method overrides. This skips a lot of checks
6194         and (anyway) permissions cannot work until corlib is loaded.
6195
6196 2005-03-23  Martin Baulig  <martin@ximian.com>
6197
6198         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6199         MONO_TYPE_GENERICINST.  
6200
6201 2005-03-23  Martin Baulig  <martin@ximian.com>
6202
6203         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6204
6205 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6206
6207         * class.c: added locking comments to some functions.
6208         Cache the interface offsets arrays (saves about 20 KB
6209         of runtime memory in a typical app).
6210         Reduce the time overhead in mono_class_setup_supertypes ().
6211
6212 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6213
6214         * icall.c: speedup and fix leaks in GetMethodsByName and
6215         GetPropertiesByName.
6216
6217 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6218
6219         * reflection.c: some locking fixes.
6220
6221 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6222
6223         * metadata.c: added missing break in case statement.
6224
6225 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6226
6227         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6228         typedbyref return values. Fixes #73941.
6229
6230 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6231
6232         * security-manager.c|h: Added demandunmanaged method and 
6233         suppressunmanagedcodesecurity class to MonoSecurityManager.
6234         Renamed aptc class to allowpartiallytrustedcallers.
6235
6236 2005-03-17  Martin Baulig  <martin@ximian.com>
6237
6238         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6239
6240 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6241
6242         * file-io.c: disabled file async. IO using aio_*. It uses the
6243         threadpool now. Workaround for bug #73718.
6244
6245 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6246
6247         * assembly.h, mono-config.c: added code to deal with bundled configs
6248         for bundled assemblies.
6249
6250 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6251
6252         * *.c, private.h: cleanup, removing old private.h header file.
6253
6254 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6255
6256         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6257         and throw_on_unmappable_char attributes.
6258
6259 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6260
6261         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6262         _ProcessName_internal.
6263
6264 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6265
6266         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6267         #73631.
6268
6269         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6270         are no longer used.
6271
6272 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6273
6274         * object.c (compute_class_bitmap): Add support for generics. Fixes
6275         #73527.
6276
6277 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6278
6279         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6280
6281 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6282
6283         * filewatcher.c: commented out the code for windows watcher, as we don't
6284         use it (we use the managed implementation instead).
6285
6286 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6287
6288         * object-internals.h (MonoThread): Remove 'unused1' field.
6289
6290         * appdomain.c: Bump corlib version.
6291
6292         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6293
6294         * reflection.c (mono_reflection_create_runtime_class): Remove the
6295         AssemblyBuilder.Save optimization since it causes too many problems.
6296
6297 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6298
6299         * exception.c|h: Added mono_get_exception_reflection_type_load to
6300         create a ReflectionTypeLoadException object.
6301         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6302         to return NULL is a InheritanceDemand fails during reflection. Updated
6303         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6304         ReflectionTypeLoadException if an InheritanceDemand fails during 
6305         reflection. Added icall mapping for GetLinkDemandSecurity.
6306         * security-manager.c|h: Added ves_icall_System_Security_
6307         SecurityManager_GetLinkDemandSecurity internal call to return the
6308         class and methods permissions set for a LinkDemand. Removed unused
6309         fields in MonoSecurityManager.
6310
6311 2005-03-10  Martin Baulig  <martin@ximian.com>
6312
6313         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6314         it's a generic instance.
6315
6316 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6317
6318         * reflection.c (mono_get_object_from_blob): Applied patch from
6319         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6320
6321         * class.c (mono_class_is_assignable_from): Another try at fixing 
6322         #73469 without breaking anything.
6323
6324 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6325
6326         * class.c: (mono_class_is_assignable_from): Revert the last changes
6327         since they don't work with generics.
6328         
6329         * class.c (mono_class_is_assignable_from): Fix build bustage.
6330
6331         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6332         the managed IsAssignableFrom method. Fixes #73469.
6333
6334         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6335         function.
6336
6337 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6338
6339         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6340         memory when the remoting callback does not sets the out arguments.
6341         Fixes #73007.
6342
6343         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6344         by mistake.
6345
6346         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6347
6348         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6349
6350         * appdomain.c: Bump corlib version.
6351
6352 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6353
6354         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6355         function.
6356
6357         * threads.c (mono_thread_attach): Detect threads which are not started
6358         by the GC pthread wrappers.
6359
6360 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6361
6362         * icall.c: Added new icall for RNG.
6363         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6364         single handle on Linux to access /dev/urandom and fix #73183.
6365
6366 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6367
6368         * object.c: setting the new vtable in a transparent proxy object must
6369         not change the GC descriptor.
6370
6371 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6372
6373         * object.c: fixed compilation without GCJ support.
6374         * reflection.c: for runtime-created types ensure klass->has_references
6375         is correct (bug #73215).
6376
6377 2005-03-02  Martin Baulig  <martin@ximian.com>
6378
6379         * class.c (mono_class_is_assignable_from): Make this work if
6380         `oklass' is a generic instance; fixes #72831.
6381
6382 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6383
6384         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6385         with hasthis set.
6386         
6387         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6388
6389         * marshal.c: Reorganize native->managed marshalling code to also use
6390         the emit_marshal_... functions.
6391
6392 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6393
6394         * object.c: typed allocs have issues with bitmap sizes > 30,
6395         so check for max_set >= 30.
6396
6397 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6398
6399         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6400         managed code. Fixes #73012.
6401
6402         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6403
6404         * metadata.c reflection.c: Load/Emit elem_mult as well.
6405         
6406         * metadata.h (MonoMarshalSpec): Add comment.
6407
6408         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6409
6410         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6411         num_elem to -1 if not given.
6412
6413         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6414
6415         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6416         given values.
6417
6418 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6419
6420         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6421
6422 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6423
6424         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6425
6426         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6427
6428 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6429
6430         * object.c: generalized the reference bitmap creation
6431         and added hooks for the new GC.
6432         * class-internals.c: removed the gc_bitmap field from MonoClass.
6433
6434 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6435
6436         * domain.c: help the compiler to produce better code
6437         in mono_jit_info_table_find ().
6438
6439 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6440
6441         * object.c: make all allocations look typed.
6442
6443 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6444
6445         * socket-io.c: load Mono.Posix if it's not loaded already
6446         (fixes bug#73033).
6447
6448 2005-02-24  Martin Baulig  <martin@ximian.com>
6449
6450         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6451         * reflection.c (dup_type): Likewise.
6452
6453 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6454
6455         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6456         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6457
6458 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6459
6460         * domain.c, threads.c, object-internals.h: make the critical thread
6461         local vars use the fast access mode (even when we're compiled in
6462         a lib). Provide accessors to be used by the jit during codegen.
6463
6464 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6465
6466         * appdomain.c: Changed hook functios behavior to include
6467         support for the reflection only assemblies. Some icalls were changed
6468         to support the mentioned assemblies too. Signatures of static methods
6469         try_assembly_resolve and real_load now have an additional parameter:
6470         refonly.
6471
6472         * assembly.c: General changes to mono_assembly_ methods to support
6473         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6474         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6475         suffix, to support an additional gbool parameter to specify whether
6476         the assembli is reflection only or not. Created some new hook functions 
6477         to add support for reflection only assemblies. Signatures of static 
6478         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6479         have now an additional parameter: refonly.
6480
6481         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6482         indicating whether the assembly is reflection only or not.
6483
6484         * exception.c: Add mono_get_exception_invalid_operation.
6485
6486         * icall.c: Throw an InvalidOperationException when trying to invoke
6487         a property/method/event, or trying to set/get the value of a field.
6488         Also add an icall to retrieve the ref_only flag to the
6489         MonoReflectionAssembly.
6490
6491 2005-02-23  Chris Toshok  <toshok@ximian.com>
6492
6493         Part of fix for #72827.
6494         * mono-debug.c (mono_debug_add_method): add lexical block data to
6495         the info we write.  Kind of a hack at the moment - we copy the
6496         lexical block info from the MonoDebugMethodInfo to the
6497         MonoDebugMethodJitInfo here, before writing it.
6498         (mono_debug_read_method): read the lexical block info.
6499
6500         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6501
6502         * debug-mono-symfile.h: add lexical block support.
6503
6504         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6505         support.
6506
6507 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6508
6509         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6510
6511         * object.c (mono_runtime_free_method): Call mono_free_method () and
6512         put the TODOs there.
6513
6514         * loader.c (mono_free_method): Free up most memory allocated for 
6515         dynamic methods.
6516
6517 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6518
6519         * reflection.c: properly flag a Type argument to a
6520         named custom attr value (bug #72248).
6521
6522 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6523
6524         * reflection.c: reduce code duplication in named custom
6525         attribute encoding.
6526
6527 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6528
6529         * reflection.c: properly encode custom attrs of type object
6530         (bug #72649).
6531
6532 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6533
6534         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6535
6536 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6537
6538         * socket-io.c: load System.dll if it's not loaded already
6539         (bug #72850 and #70477).
6540
6541 2005-02-21  Martin Baulig  <martin@ximian.com>
6542
6543         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6544         generic instances.
6545
6546 2005-02-21  Martin Baulig  <martin@ximian.com>
6547
6548         * reflection.c (mono_image_build_metadata): We also need to
6549         "fixup" the MethodImpl table after we computed the final method
6550         indices.  Call fixup_methodimpl() to do that.
6551         (fixup_methodimpl): New private method.
6552
6553 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6554
6555         * assembly.c: special case mscorlib.dll (bug#72536),
6556         patch from Carlos Alberto Cortez.
6557
6558 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6559
6560         * threads-types.h threads.c: Fix build bustage.
6561
6562         * threads.c: Use a union for long<->double conversions.
6563
6564         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6565         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6566
6567         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6568         containing the checkpoint call with NOT_TAKEN.
6569         
6570         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6571         checkpoint before pushing the arguments, so they won't have to be
6572         spilled to stack.
6573
6574 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6575
6576         * domain.c, assembly.c, domain-internals.h: make some data
6577         const and relocation-free.
6578
6579 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6580
6581         * object.c, appdomain.c, class-internals.h: introduce the
6582         MonoClassRuntimeInfo structure to hold the info needed to
6583         use a class at runtime. Made mono_class_vtable() lock-free
6584         for all the appdomains.
6585
6586 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6587
6588         * metadata-internals.h, image.c: introduce a per-image mempool to
6589         be used for memory that has the same lifetime as the image.
6590
6591 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6592
6593         * domain.c: In mono_init_internal(), instead of selecting the first
6594         runtime version supported by an executable, get a list of all
6595         supported versions and select the one for which an mscorlib exists
6596         (since even if the runtime supports a given version, it doesn't mean
6597         that the framework for that version is installed).
6598         Modified get_runtimes_from_exe to support this behavior.
6599         In supported_runtimes, added information about additional system
6600         assembly versions.
6601         
6602         * assembly.c: Added support for more than one system assembly version
6603         per runtime version. Updated the assembly list.
6604         In mono_assembly_remap_version, removed the initial version check,
6605         since we don't know to which version we need to compare until we
6606         get the version set on which the assembly is based.
6607         Moved the code for loading corlib into the new method
6608         mono_assembly_load_corlib(), so it can be used by the initialization
6609         code.
6610         
6611         * domain-internals.h: Updated data structures and added declaration
6612         for mono_assembly_load_corlib.
6613
6614 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6615
6616         * reflection.c (resolve_object): Fix the creation of the signature in 
6617         the SignatureHelper case.
6618
6619         * assembly.c (mono_assembly_remap_version): Fix binary search.
6620         
6621 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6622  
6623         * class.c: Added inheritance check when a method is overloaded (from a
6624         virtual method or when implementing an interface) and when a class is
6625         inherited. Added functions to set a failure for a class and to 
6626         retreive the exception from a failure.
6627         * class-internals.h: Added fields to MonoClass to keep the exception
6628         information status for inheritance (or other exceptions) to be thrown
6629         later (i.e. not at load time).
6630         * object.c: Throw the inheritance SecurityException when a type is to 
6631         be created with either class or method inheritance violations.
6632         * reflection.c|h: Fix when getting declsec from a class. Removed 
6633         unrequired code for class. Improved sanity in parameter naming.
6634         * security-manager.c|h: Added functions to check for class and method
6635         inheritance.
6636
6637 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6638
6639         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6640         and has_finalize in dynamic types as well.
6641
6642 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6643
6644         * culture-info-table.h : fixed currency format for en-GB (and so on).
6645
6646 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6647
6648         * gc.c: ensure the GC handles never have 0 as a value.
6649
6650 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6651
6652         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6653         a pointer to a struct to unmanaged code. Fixes #72625.
6654
6655 2005-02-16  Martin Baulig  <martin@ximian.com>
6656
6657         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6658
6659 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6660
6661         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6662
6663 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6664
6665         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6666
6667         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6668         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6669         etc. Fixes #71471.
6670
6671         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6672
6673         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6674
6675 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6676
6677         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6678         changes to make the current context a field in MonoThread.
6679
6680 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6681
6682         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6683         the last change.
6684         
6685         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6686         extracted from mono_marshal_get_native_wrapper.
6687
6688         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6689         to create wrappers around native functions.
6690
6691         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6692         delegates for arbitrary function pointers. Fixes #71472.
6693
6694 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6695
6696         * threads.c: cleaned up the code a little.
6697
6698 2005-02-15  Martin Baulig  <martin@ximian.com>
6699
6700         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6701         the data table.
6702
6703         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6704         allocate larger chunks if needed.
6705
6706 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6707
6708         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6709         in by mistake.
6710
6711 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6712
6713         * domain.c: keep the domains in an array and ensure the domain ids
6714         are kept small, so they can be used as indexes to domain-specific data
6715         with a small memory overhead.
6716
6717 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6718
6719         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6720
6721 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6722
6723         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6724
6725 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6726
6727         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6728
6729         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6730         values.
6731
6732         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6733         
6734 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6735
6736         * domain-internals.h: add the hashtable here.
6737
6738         * class-internals.h: Remove `info' from MonoMethod
6739
6740         * domain.c: Add a new hashtable, jit_trampoline_hash
6741
6742 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6743
6744         * object.c: don't set the value of static fields
6745         (fixes bug#72494).
6746
6747 2005-02-11  Martin Baulig  <martin@ximian.com>
6748
6749         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6750         (mono_debug_add_method): Silently ignore the method if it's too big.
6751         (mono_debug_add_type): Likewise.
6752
6753 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6754
6755         * threads.c, appdomain.c: remove #ifdefs from the code.
6756
6757 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6758
6759         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6760         common security informations. This allows us to stay in unmanaged code
6761         when doing LinkDemand and it's special cases (except for the first 
6762         time for initialization). The flags a very much used with --security.
6763         * reflection.c|h: Added code to get declarative security attributes 
6764         for LinkDemand and InheritanceDemand. This required to refactor the
6765         existing code for Demand.
6766         * security-manager.c|h: Added new method fields for the special cases
6767         of LinkDemand.
6768
6769 2005-02-10  Martin Baulig  <martin@ximian.com>
6770
6771         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6772         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6773
6774 2005-02-10  Martin Baulig  <martin@ximian.com>
6775
6776         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6777         debugging code; this is almost a complete rewrite.
6778
6779         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6780
6781 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6782
6783         * domain.c, object.h: expose mono_string_equal () and 
6784         mono_string_hash ().
6785         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6786         it's implemented in managed code.
6787
6788 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6789
6790         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6791         lo leak objects between appdomains.
6792
6793 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6794
6795         * assembly.c: old compilers compilation fix from 
6796         robertj@gmx.net (Robert Jordan).
6797
6798 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6799
6800         * class-internals.h: Little reminder for the future.
6801
6802         * debug-helpers.c: Fix up wrapper_type_names
6803
6804 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6805
6806         * image.c, metadata-internals.h: when loading an image from a file,
6807         mmap all of it and use the same codepaths as when using a
6808         in-memory image: the code is simpler and we use less memory
6809         (both writable and readonly).
6810
6811 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6812
6813         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6814         API to alloc runtime data structures that need to be tracked by the
6815         GC and contain pointers.
6816         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6817         make the code more readable and eventually use a different GC.
6818
6819 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6820
6821         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6822         for out arguments.
6823         
6824 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6825
6826         * object.c: In release_type_locks(), don't release the cctor lock
6827         if it has already been released. This fixes a crash in the
6828         thread5 test.
6829
6830 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6831
6832         * gc.c, marshal.c, icall.c: register a delegate for finalization
6833         only when the native function pointer has been allocated for it.
6834
6835 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6836
6837         * object.c: cleaned up some code, allocate objects that are
6838         pointer free with the atomic malloc variant. Allocate memory
6839         for static data from the mempool if it's pointer-free.
6840         Allocate the bounds array at the end of the array data, when needed.
6841         * object-internals.h, object.h: move a private function in a private
6842         header.
6843         * class.c: handle missing case in tracking references in fields.
6844
6845 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6846
6847         * class.c, class-internals.h: keep track if a type has
6848         reference fields in either the instance or static fields.
6849
6850 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6851
6852         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6853         and renamed to MonoRuntimeInfo. Added fields to store the expected
6854         framework assembly version. Changed mono_get_framework_version and
6855         mono_get_runtime_version for a single mono_get_runtime_info method.
6856         
6857         * assembly.c: Added method to remap system assembly versions to the
6858         current executing runtime version. Removed old mapping code.
6859         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6860         
6861         * icall.c, reflection.c: Track api changes.
6862
6863 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6864
6865         * loader.c (method_from_memberref): Improve error reporting,
6866         produce the class name instead of the typeref/typedef index. 
6867
6868 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6869
6870         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6871
6872 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6873
6874         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6875         stdcall and charset name mangling.  Reorganize the code and add
6876         some tracing stuff.
6877
6878 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6879
6880         * monodiet.c: More iters!
6881
6882         * marshal.c: Iter usage.
6883
6884         * icall.c: Iter usage.
6885
6886         * object.c: Use iters.
6887
6888         * debug-helpers.c: More iters
6889
6890 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6891
6892         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6893         under win32.
6894
6895 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6896
6897         * mono-debug-debugger.c: use iters
6898
6899         * class.c, class-internals.h: mono_class_setup_events is static
6900         now
6901
6902         * All callers: use iters
6903
6904 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6905
6906         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6907         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6908
6909 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6910
6911         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6912
6913         * marshal.h: Add prototypes for ldfld/stfld_remote.
6914
6915         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6916         this is called during startup.
6917         
6918 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6919
6920         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6921         MonoThreadsSync struct private in monitor.c. Changed the way
6922         MonoThreadsSync is allocated so it's faster and there is no
6923         need to keep track of it with a finalizer and it uses less memory.
6924         This also finally allows us to allocate mono objects as ptrfree when
6925         there are no reference fields.
6926
6927 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
6928
6929         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
6930         disappearing link to the GC interface and use them to simplify
6931         the gchandles code.
6932
6933 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6934
6935         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
6936         stfld_remote which call mono_load/store_field_new. This allows methods
6937         calling ldfld/stfld wrappers to be AOTed.
6938
6939         * console-io.c: Include sys/filio.h under solaris.
6940         
6941         * console-io.c: Include curses.h if needed correctly.
6942
6943 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6944         
6945         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
6946         method->klass as well.
6947
6948         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
6949
6950         * class.c (mono_class_init): Switch on lazy initialization of 
6951         methods.
6952
6953         * class.c (mono_class_get_finalizer): Handle the case when the 
6954         finalizer is inherited.
6955
6956 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6957
6958         * console-io.c: <curses.h> is needed by term.h on solaris.
6959
6960 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
6961
6962         * icall.c, class-internals.h, monodiet.c, class.c: Remove
6963         mono_class_setup_properties where possible. Remove this ftn from
6964         the header file, and make it static.
6965
6966 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6967
6968         * loader.c: Add missing setup_... call.
6969
6970         * class.c: Add missing setup_... calls.
6971
6972         * class.c (mono_class_init): Switch on lazy initialization of 
6973         the generic vtable.
6974         
6975         * class.c (mono_class_init): Fix generics broken by the recent changes.
6976
6977         * monodiet.c (handle_type): Add missing setup_... calls.
6978
6979         * class.c: Back out garbage in previous patch.
6980         
6981         * class.c: Add missing setup_... calls.
6982
6983         * class.c (mono_class_get_method_from_name_flags): Avoid calling
6984         mono_class_setup_methods () if possible.
6985
6986         * class-internals.h (MonoClass): Add 'has_cctor' flag.
6987
6988         * class-internals.h (MonoCachedClassInfo): New structure.
6989
6990         * class.c: Initialize properties and events fields of MonoClass lazily.
6991
6992         * class.c: Add infrastructure for lazily initializing the methods and
6993         vtable fields of MonoClass. Not yet used.
6994
6995         * class.c (mono_class_get_finalizer): New helper function.
6996
6997         * class.c: Add infrastructure for loading some class related data from
6998         an AOT file.
6999
7000         * object.c: Add infrastructure for initializing the vtable from data
7001         in the AOT file.
7002
7003         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7004
7005         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7006         appropriate initialization function before accessing parts of the
7007         MonoClass structure.
7008
7009         * marshal.c: Fix warnings.
7010         
7011         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7012
7013         * mono-debug-debugger.c (get_exception_message): Use 
7014         mono_class_get_method_from_name_flags ().
7015
7016 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7017
7018         * reflection.c, appdomain.c: Replace a few manual searches that
7019         Zoltan missed. (Paolo approved this part of my initial patch).
7020
7021 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7022
7023         * profiler.c: disable recording statistical events at report time.
7024
7025 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7026
7027         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7028         to byteswap arrays of enum values, too (bug #72080).
7029
7030 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7031
7032         * appdomain.c (set_domain_search_path): Allow this to be called if
7033         domain->setup is not yet set.
7034
7035         * loader.c (mono_method_get_index): New helper function.
7036
7037         * loader.c reflection.c: Use mono_method_get_index ().
7038
7039         * class.c (mono_class_get_method_from_name_flags): New helper method.
7040
7041         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7042         this.
7043
7044         * class.c (mono_class_get_cctor): New helper method.
7045
7046         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7047         mono_class_get_method () to look up methods.
7048
7049 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7050
7051         * console-io.c: Fix the build, this should work on Windows.
7052
7053 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7054
7055         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7056         be set to null to keep things valid
7057
7058 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7059
7060         * icall.c: added Console 2.0 icalls.
7061         * Makefile.am: added console-io.[ch]
7062         * console-io.[ch]: internal calls for Console 2.0 API.
7063
7064 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7065
7066         * class.c: make sure we consider all the interfaces
7067         when calculating max_interface_id (bug found by
7068         Jeroen Frijters running ikvm).
7069
7070 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7071
7072         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7073         valuetype fields to null.
7074
7075         * object.c (set_value): Ditto. Fixes #71669.    
7076
7077 2005-01-31  Martin Baulig  <martin@ximian.com>
7078
7079         * metadata.c (mono_metadata_has_generic_params): New public
7080         function; checks whether something is a generic method.
7081
7082 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7083
7084         * appdomain.c: fix infinite recursion when adding assemblies.
7085
7086 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7087
7088         * object.c: Fix small typo to return all items for Environment.
7089         GetCommandLineArgs.
7090
7091 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7092
7093         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7094         reflection.c: more domain and assembly-unload related fixes
7095         and memory leaks plugs.
7096
7097 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7098
7099         * 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.
7100
7101 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7102
7103         * loader.c (mono_method_signature): Make this method lazy
7104         (mono_get_method_from_token): Don't computate the signature here.
7105
7106         Doing this saves quite a bit of memory. I got 90 kb on starting up
7107         monodoc. It should also save some disk reads on startup.
7108
7109         * *: MonoMethod->signature might be NULL now. You *MUST* use
7110         mono_method_signature.
7111
7112 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7113
7114         * object.c (mono_runtime_get_main_args): Return an array from the
7115         current domain here. Fixes #71938.
7116
7117 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7118
7119         * monitor.c: formatting changes to comply with the
7120         mono coding style and remove #ifdefs from the code.
7121
7122 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7123
7124         * metadata.c, private.h: remove some unneeded data
7125         and use a more compact representation for table schemas.
7126
7127 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7128
7129         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7130         to get a better distribution in hash tables.
7131         * *.c: use mono_aligned_addr_hash() where appropriate.
7132         * assembly.c: make var static.
7133
7134 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7135
7136         * domain-internals.h: Put MonoJitInfo on a diet.
7137
7138         * domain.c: Fix a warning.
7139
7140 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7141
7142         * gc.c: rework the gc handles code to reuse handles
7143         when freed.
7144
7145 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7146
7147         * domain.c: fixed long standing bug in mono_string_equal() which
7148         was brought to light with the ldstr changes.
7149
7150 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7151
7152         * reflection.c: Remove warning by adding missing include for marshal.h
7153
7154 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7155
7156         * domain.c, object.c: change the ldstr_table to hold
7157         MonoString* as keys: makes the runtime isinterned lookup
7158         faster and simplifies memory management.
7159
7160 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7161  
7162         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7163         possible to add imperative security checks before calling the icall.
7164         * reflection.c: Return security attributes on the original MonoMethod
7165         (and not the wrapped one). This fix permissions on icalls.
7166
7167 2005-01-25  Dick Porter  <dick@ximian.com>
7168
7169         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7170         the check for mktime() support actually test the mktime() return
7171         value.  "Fixes" bug 71682, though the output is still different to
7172         MS.
7173
7174 2005-01-25  Martin Baulig  <martin@ximian.com>
7175
7176         * class.c (mono_class_is_assignable_from): Make this work for
7177         generic instances.
7178
7179 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7180
7181         * marshal.c (mono_string_utf8_to_builder)
7182         (mono_string_builder_to_utf16): We might not have ownership of the
7183         string. In thise case, we need to create a new buffer.
7184
7185         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7186         be null, in which case, use the default capacity.
7187
7188 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7189
7190         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7191         GC events to the profiler.
7192
7193 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7194
7195         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7196         if you don't want the GC to run.
7197
7198 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7199
7200         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7201         start providing a GC API and keeping different implementations in
7202         their own file.
7203         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7204
7205 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7206
7207         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7208         mmap rather than allocating a huge buffer.
7209         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7210         above.
7211
7212 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7213
7214         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7215         and CheckExecutionRights.
7216         * reflection.c|h: Keep the index of the declarative security to be 
7217         used, instead of the pointer, when AOT compiler is used. Also add 
7218         class initialization when requesting demands.
7219         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7220         CheckExecutionRights. Both properties are now FALSE by default, and
7221         unmodifiable, unless the --security option is used.
7222
7223 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7224
7225         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7226         reflection.c: properly refcount images and assemblies, many leaks fixed.
7227
7228 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7229
7230         * threadpool.c: increase the timeout for threads in the thread pool to
7231         10s.  Fixes bug #67159.
7232
7233 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7234
7235         * class-internals.h: Sun's compiler insists on explicit
7236         signed on bit fields to handle then correctly.
7237
7238 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7239
7240         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7241         Make the size of the array fit only the number of invalid path
7242         chars that we have.
7243
7244         * class.c (_mono_class_get): Improve the error reporting when a
7245         class referenced is not found, to assist debugging. 
7246
7247 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7248
7249         * threads.c: fix off-by-one error.
7250         * domain.c: free data allocated in the domain.
7251
7252 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7253
7254         * reflection.c (mono_method_body_get_object): Fill out exception info
7255         as well.
7256
7257         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7258         structure.
7259         
7260 2005-01-19  Martin Baulig  <martin@ximian.com>
7261
7262         * loader.c (mono_get_method_constrained): Make this work again.
7263
7264 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7265
7266         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7267         guint16 to match the managed side.
7268
7269         * reflection.c (mono_reflection_body_get_object): Fill out local
7270         variables array.
7271
7272         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7273         as well.
7274
7275         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7276         'local_var_sig_token'.
7277
7278 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7279
7280         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7281         System.Drawing.
7282
7283         * reflection.c (mono_method_body_get_object): Handle abstract and
7284         runtime methods.
7285
7286 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7287
7288         * marshal.c, loader.c, class-internals.h, reflection.c:
7289         store the emthod data for a wrapper in an array instead of a list.
7290
7291 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7292
7293         * marshal.c: change the code to allocate memory more
7294         conservatively for method wrappers.
7295
7296 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7297
7298         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7299         fields from MonoClass to the marshal info structure where they belong.
7300
7301 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7302
7303         * class.c, object.c, class-internals.h, marshal.c: rearrange
7304         some fields and tweak some types to lower memory usage.
7305
7306 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7307
7308         * threads.c (signal_thread_state_change): Handle the case when the
7309         target thread is the current thread.
7310
7311         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7312
7313         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7314         emit_ptr_to_object_conv. 
7315
7316         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7317         marshalling. Fixes #71352.
7318
7319 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7320
7321         * metadata.h, blob.h: move table enum to blob.h so it can be included
7322         in any header.
7323         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7324         cut the size of MonoImage/MonoDynamicImage.
7325
7326 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7327
7328         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7329
7330 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7331
7332         * reflection.c, reflection.h, icall.c: add a function to check
7333         if an attribute type is defined for a metadata object.
7334
7335 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7336
7337         * object-internals.h: Added some needed fields from StringBuilder class.
7338         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7339
7340 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7341
7342         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7343         threads before shutting down the runtime.
7344
7345         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7346
7347 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7348
7349         * object-internal.h, threads.c: implement stacksize and 
7350         parameterized thread start functionality (requires
7351         matching corlib). Marked broken code for later removal.
7352
7353 2005-01-12  Martin Baulig  <martin@ximian.com>
7354
7355         * class-internals.h (MonoGenericClass): Moved the `initialized'
7356         flag to MonoDynamicGenericClass, removed `init_pending'.
7357         (MonoGenericInst): Added `is_reference' flag.
7358
7359 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7360
7361         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7362         inside the MSDOS header. Fixes #71201.
7363
7364         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7365         gc thread.
7366         (mono_domain_finalize): Ditto.
7367
7368 2005-01-12  Martin Baulig  <martin@ximian.com>
7369
7370         * class.c (mono_get_shared_generic_class): Use the cache for
7371         non-dynamic generic classes.
7372
7373         * class-internals.h (mono_class_create_generic_2): Removed
7374         function prototype, this function is now static inside class.c.
7375
7376         * class.c (mono_class_create_generic_2): Made this static, only
7377         call it from mono_class_init() and mono_class_setup_parent().
7378         (collect_implemented_interfaces_aux): Call mono_class_init() on
7379         the interfaces we collect.
7380         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7381
7382 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7383
7384         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7385         it a real thread handle.
7386
7387         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7388         MonoJitExceptionInfo, since each catch clause needs its own variable.
7389         
7390 2005-01-11  Dick Porter  <dick@ximian.com>
7391
7392         * image.c (mono_pe_file_open): New variant on mono_image_open()
7393         that does not set up the CLI metadata; used for FileVersionInfo so
7394         it can get the data for windows binaries too.
7395         
7396         * process.c (process_read_string_block): Don't read off the end of
7397         the StringTable block.
7398
7399         These both fix bug 70766.
7400
7401 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7402
7403         * gc.c: set some fields to NULL at GC cleanup time.
7404         * threads.c: if we quit the main thread, call exit ().
7405
7406 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7407
7408         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7409
7410 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7411
7412         * threads.h, threads.c, object.c: added accessor and settor for
7413         main_thread. Handle it specially when exiting from it: wait
7414         for other foreground threads to exit.
7415
7416 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7417
7418         * process.c, verify.c: remove some bloat.
7419
7420 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7421
7422         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7423         the calling convention to cdecl under win32.
7424
7425 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7426
7427         * object.c (mono_object_get_size): New function to get the size of
7428         an object instance.
7429
7430         * profiler.c (simple_allocation): Use above.
7431
7432 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7433
7434         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7435         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7436         get an appdomain by it's id and we can't assume the root's id is 0).
7437         * domain-internals.h: Change the function prototype to match.
7438         * icall.c: Change the icall table for AppDomain.
7439
7440 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7441
7442         * locales.c (string_invariant_compare_char): Only compute
7443         GUnicodeTypes in the case where we need them.  Test for ordinality
7444         first and return if so.
7445
7446         From the commit:
7447
7448                 /*
7449                  * FIXME: here we must use the information from c1type and c2type
7450                  * to find out the proper collation, even on the InvariantCulture, the
7451                  * sorting is not done by computing the unicode values, but their
7452                  * actual sort order.
7453                  */
7454
7455 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7456
7457         * loader.c: for P/Invoke methods, allow the "Internal" shared
7458         library name to refer to the calling process symbol namespace.
7459
7460 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7461
7462         * Makefile.am: Add the security manager to the build.
7463         * security-manager.c|h: New. Initialization of the security manager.
7464
7465 2005-01-07  Dick Porter  <dick@ximian.com>
7466
7467         * threads.c: 
7468         * monitor.c: Update thread state during Monitor and WaitHandle
7469         waits.  Fixes bug 71031.
7470
7471 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7472
7473         * reflection.c (property_encode_signature): Correctly handle when the
7474         property has no methods.
7475
7476 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7477
7478         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7479         
7480         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7481         fields from mb, not rmb. Fixes #71017.
7482
7483         * marshal.c (emit_ptr_to_str_conv): Add support for 
7484         ByValTStr -> string conversion. Fixes #71015.
7485
7486         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7487
7488         * mempool.c (mono_mempool_contains_addr): New helper function.
7489
7490 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7491
7492         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7493         HasSematics encoded fields.
7494         
7495         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7496         invalid string marshalling.
7497
7498         * metadata.c: Fix warnings.
7499         
7500 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7501
7502         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7503         profiler support.
7504
7505 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7506
7507         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7508         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7509         tests.
7510
7511 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7512
7513         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7514         so methods containing these can be AOTed.
7515
7516 2005-01-03  Martin Baulig  <martin@ximian.com>
7517
7518         * loader.c (find_method): Removed the hack for generic instances.
7519         (method_from_memberref): If our parent is a generic instance, pass
7520         its generic type definition to find_method() and then inflate the
7521         method.
7522         (mono_get_method_constrained): Pass the generic type definition to
7523         find_method() and inflate the method later.
7524
7525         * class-internals.h (MonoStats): Added `generic_class_count'.
7526
7527         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7528         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7529
7530         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7531         generic type definitions.
7532
7533 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7534
7535         * loader.c icall.c: Fix warnings.
7536
7537 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7538
7539         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7540         blittable types. Fixes #70864.
7541
7542 2004-12-29  Martin Baulig  <martin@ximian.com>
7543
7544         * icall.c
7545         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7546
7547         * reflection.c (mono_method_get_object): Create a
7548         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7549         call mono_get_inflated_method().
7550
7551         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7552
7553 2004-12-27  Martin Baulig  <martin@ximian.com>
7554
7555         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7556         (MonoMethodInflated): Added `inflated' field.
7557
7558         * class.c (mono_class_inflate_generic_method): Don't really
7559         inflate the method here; just set the `is_inflated' flag in the
7560         MonoMethod.
7561         (mono_class_get_inflated_method): Actually inflate the method here
7562         if it's not already inflated; we use the MonoMethodInflated's new
7563         `inflated' field as a cache.
7564
7565 2004-12-26  Martin Baulig  <martin@ximian.com>
7566
7567         * class.c
7568         (inflate_generic_class): Moved some code out of inflate_generic_type().
7569         (mono_class_inflate_generic_method): If we're already inflated,
7570         inflate the context and use the declaring method; ie. make sure
7571         the declaring method of an inflated method is always the generic
7572         method definition.
7573         (mono_class_create_from_typedef): Create
7574         `class->generic_container->context->gclass'.
7575
7576 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7577
7578         * metadata-internals.h, marshal.c, reflection.c: More
7579         MonoGHashTable->GHashTable.
7580
7581         * domain-internals.h, class.c: Change MonoGHashTable's into
7582         GHashTables for some cases where no gc stuff is used
7583
7584         All users: update apis
7585
7586 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7587
7588         * metadata.c (builtin_types): Make this `const'. Makes this get
7589         put into the shareable section.
7590         (mono_metadata_init): Casts to make gcc happy.
7591
7592 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7593
7594         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7595
7596 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7597
7598         * icall.c: Added an internal call to retrieve the position and length
7599         of assembly-level declarative security attributes (RequestMinimum, 
7600         RequestOptional and RequestRefuse). This is used by the Assembly class
7601         to re-create the corresponding permission sets.
7602
7603 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7604
7605         * marshal.c: fix the stelemref wrapper to be type correct
7606         (and faster).
7607
7608 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7609
7610         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7611         to do key & 0x7fffffff. Hashtable already does this. It just
7612         results in longer code.
7613
7614 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7615
7616         * appdomain.c: Bump corlib version.
7617         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7618         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7619         * reflection.c|h: Add functions to get declarative security infos
7620         (blob position and length) for assemblies, classes and methods.
7621
7622 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7623
7624         * reflection.c: sort the constant table (bug #70693).
7625
7626 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7627
7628         * object-internals.h, threads.c, domain.c: add accessors for
7629         the MonoThread and MonoDomain tls keys.
7630
7631 2004-12-18  Martin Baulig  <martin@ximian.com>
7632
7633         * class.c (inflate_generic_type): If we're inflating a generic
7634         instance, set `ngclass->context->container = context->container';
7635         ie. the container we inflated into.
7636
7637         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7638         inflate_generic_type() changes.
7639
7640 2004-12-17  Martin Baulig  <martin@ximian.com>
7641
7642         * class-internals.h
7643         (MonoGenericClass): Replaced `MonoType *generic_type' with
7644         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7645         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7646         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7647
7648 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7649
7650         * exception.c (mono_exception_from_token): New helper function.
7651
7652 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7653
7654         * assembly.c (mono_assembly_load_with_partial_name): Call 
7655         mono_assembly_loaded before invoking the preload hooks. Fixes
7656         #70564.
7657
7658         * object-internals.h (MonoThread): Change culture_info and 
7659         ui_culture_info into an array.
7660
7661         * threads.c: Cache culture info objects from more than one appdomain.
7662
7663         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7664         current UI culture.
7665
7666 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7667
7668         * threads.h threads.c appdomain.c: Clear the culture_info field of
7669         all threads during unloading if they point to an object in the dying
7670         appdomain.
7671
7672 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7673
7674         * culture-info.h (TextInfoEntry): New struct
7675         * object-internals.h: sync with managed
7676         * locales.c: fill the `text_info_data' field
7677         * culture-info-tables.h: update
7678
7679 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7680
7681         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7682         collector.
7683
7684 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7685
7686         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7687         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7688
7689 2004-12-12  Martin Baulig  <martin@ximian.com>
7690
7691         * mono-debug-debugger.c (write_type): If we're an enum and the
7692         builtin types have already been initialized, call mono_class_init().
7693
7694 2004-12-11  Martin Baulig  <martin@ximian.com>
7695
7696         * metadata.c (mono_metadata_load_generic_params): Added
7697         `MonoGenericContainer *parent_container' argument; automatically
7698         compute `container->is_method'; pass the correct owner to
7699         get_constraints().      
7700
7701         * reflection.c (compare_genericparam): Sort the GenericParam table
7702         according to increasing owners. 
7703
7704 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7705
7706         * profiler.c: allow disabling the default profiler.
7707
7708 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7709
7710         * decimal.c, icall.c: allow disabling System.Decimal support.
7711
7712 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7713
7714         * reflection.c: Add support for null attribute arguments.
7715
7716 2004-12-09  Martin Baulig  <martin@ximian.com>
7717
7718         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7719         names to get rid of compiler warnings.
7720
7721 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7722
7723         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7724         mono_marshal_load_type_info (). Fixes #69625.
7725         (mono_marshal_get_ptr_to_struct): Likewise.
7726
7727 2004-12-08  Martin Baulig  <martin@ximian.com>
7728
7729         * mono-debug.h: Bumped version number to 47.
7730
7731         * mono-debug-debugger.c
7732         (mono_debugger_event_handler, mono_debugger_event): Take two
7733         guint64 arguments insteed of a gpointer and a guint32.  
7734
7735 2004-12-08  Martin Baulig  <martin@ximian.com>
7736
7737         * debug-mono-symfile.h
7738         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7739         `address' to `native_offset'.
7740
7741 2004-12-08  Martin Baulig  <martin@ximian.com>
7742
7743         * class.c (mono_class_create_from_typespec): Only inflate if we
7744         either have `context->gclass' or `context->gmethod'.
7745
7746 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7747
7748         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7749
7750         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7751
7752         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7753
7754         * reflection.c (mono_assembly_get_object): Remove the workaround put
7755         in for the release.
7756         
7757         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7758
7759         * appdomain.c: Bump corlib version.
7760
7761         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7762         be visible in other appdomains.
7763
7764 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7765
7766         * threads.c: Interlocked inc and dec for longs were messed up,
7767         use a KISS based impl for this. Fixes 70234
7768
7769 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7770
7771         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7772
7773 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7774
7775         * icall.c: fix to follow policy not to allow struct
7776         arguments in icalls.
7777
7778 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7779
7780         * process.c: make the patch that handles spaces in file paths work
7781         on mono/windows too.
7782
7783 2004-12-06  Martin Baulig  <martin@ximian.com>
7784
7785         * class.c (mono_class_create_generic): Call
7786         mono_class_setup_supertypes() if we're dynamic.
7787         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7788
7789 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7790
7791         * object-internals.h: Add new fields to MonoThread.
7792
7793         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7794
7795         * icall.c threads-types.h threads.c: Add new icalls.
7796
7797         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7798
7799         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7800         managed side.
7801
7802         * appdomain.c: Bump corlib version.
7803
7804         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7805         internal assemblies. Fixes #69181.
7806
7807 2004-12-05  Martin Baulig  <martin@ximian.com>
7808
7809         * class.c (mono_class_inflate_generic_signature): Make this a
7810         no-op if `context' is NULL or we don't have any type parameters;
7811         also copy `sentinelpos'.        
7812
7813 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7814
7815         * image.c: Add unbox_wrapper_cache.
7816
7817         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7818
7819         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7820         function generator.
7821         
7822         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7823         Fixes #70173.
7824
7825         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7826         
7827 2004-12-04  Martin Baulig  <martin@ximian.com>
7828
7829         * loader.c (mono_method_get_signature_full): New public function;
7830         like mono_method_get_signature(), but with an additional
7831         `MonoGenericContext *' argument.
7832
7833         * class.c (mono_class_inflate_generic_signature): Formerly known
7834         as inflate_generic_signature(); make this public.
7835
7836 2004-12-04  Martin Baulig  <martin@ximian.com>
7837
7838         * metadata.c
7839         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7840         instead of a `MonoGenericContainer *'.  
7841         (mono_metadata_parse_array_full): Likewise.
7842         (mono_metadata_parse_signature_full): Likewise.
7843         (mono_metadata_parse_method_signature_full): Likewise.
7844         (mono_metadata_parse_generic_inst): Likewise.
7845         (mono_metadata_parse_generic_param): Likewise.
7846         (mono_metadata_parse_mh_full): Likewise.
7847         (mono_type_create_from_typespec_full): Likewise.
7848
7849 2004-12-03  Martin Baulig  <martin@ximian.com>
7850
7851         * class-internals.h (MonoGenericContainer): Replaced the
7852         `MonoGenericContext * pointer with a `MonoGenericContext'
7853         structure and made it the first element.
7854
7855 2004-12-03  Martin Baulig  <martin@ximian.com>
7856
7857         * class.c
7858         (inflate_generic_type): Set the `context->container' when creating
7859         a new MonoGenericContext.
7860         (mono_class_inflate_generic_method): Likewise.
7861         (mono_class_create_from_typespec): Just use `context->container'
7862         to get the container.
7863
7864         * loader.c (method_from_methodspec): Set `context->parent' from
7865         `context->container' - and if that's a method container, use its
7866         parent.  Also set the `context->container' when creating a new
7867         MonoGenericContext.
7868         (mono_get_method_from_token): Use just `context->container' to get
7869         the container.
7870
7871         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7872         `gclass->context->container'.
7873
7874         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7875         the `context->container' when creating a new MonoGenericContext.
7876
7877 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7878
7879         * reflection.c (compare_genericparam): Sort params with identical
7880         owner by their number. Fixes gen-111 on sparc.
7881
7882 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7883
7884         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7885         around the domain changes.
7886
7887         * appdomain.c (mono_domain_unload): Handle the case when the thread
7888         calling Unload is itself being aborted during unloading. Fixes #70022.
7889
7890         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7891
7892         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7893         checkpoint_func as an icall so it gets a wrapper.
7894         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7895         in the cross-appdomain wrappers too.
7896
7897         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7898
7899         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7900
7901         * reflection.c: Fix some memory leaks.
7902         
7903 2004-12-02  Martin Baulig  <martin@ximian.com>
7904
7905         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7906
7907         * metadata.c (generic_class_cache): New static hashtable.
7908         (mono_metadata_lookup_generic_class): New public method.
7909
7910 2004-12-02  Martin Baulig  <martin@ximian.com>
7911
7912         * class.c (mono_class_create_from_typedef): Call
7913         mono_class_setup_parent() and mono_class_create_mono_type() before
7914         parsing the interfaces.
7915
7916 2004-12-02  Martin Baulig  <martin@ximian.com>
7917
7918         * metadata.c (generic_inst_cache): New static hashtable.
7919         (mono_metadata_lookup_generic_inst): New public function.
7920         (mono_metadata_inflate_generic_inst): New public function.
7921         (mono_metadata_parse_generic_inst): New public function.
7922         (do_mono_metadata_parse_generic_class): Use the new
7923         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7924         since this'll also use the cache.
7925
7926         * reflection.c (mono_reflection_bind_generic_method_parameters):
7927         Use mono_metadata_lookup_generic_inst() to use the new cache.
7928
7929         * class.c (inflate_mono_type): Use
7930         mono_metadata_inflate_generic_inst() to inflate a generic
7931         instance; this'll also use the new cache.
7932
7933         * loader.c (method_from_methodspec): Use
7934         mono_metadata_parse_generic_inst() and
7935         mono_metadata_inflate_generic_inst() rather than parsing it
7936         manually, so we can use the new cache.
7937
7938 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7939
7940         * threads.c (wait_for_tids): Do not incorrectly free threads when 
7941         the wait times out.
7942
7943 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
7944
7945         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
7946         iter->args based on whether parameters are passed in registers (i.e.
7947         MONO_ARCH_REGPARMS is defined)
7948
7949 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
7950
7951         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
7952         the exception message. Fixes #70070.
7953         (method_from_methodspec): Fix warnings.
7954
7955 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7956
7957         * process.c: (complete_path) return the path quoted
7958
7959 2004-12-01  Martin Baulig  <martin@ximian.com>
7960
7961         * class-internals.h (MonoGenericInst): New structure.
7962         (MonoGenericClass): Replaced `type_argc', `type_argv' and
7963         `is_open' with `MonoGenericInst *inst'.
7964         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
7965         `is_open' with `MonoGenericInst *inst'.
7966
7967 2004-11-30  Martin Baulig  <martin@ximian.com>
7968
7969         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
7970
7971         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
7972         to `generic_class_cache'.
7973
7974         * metadata.c
7975         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
7976         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
7977         (mono_generic_inst_is_valuetype): Renamed to
7978         mono_generic_class_is_valuetype().
7979
7980         * class-internals.h
7981         (MonoGenericInst): Renamed to MonoGenericClass.
7982         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
7983         (MonoClass): Renamed `generic_inst' to `generic_class'.
7984         (MonoGenericContext): Renamed `ginst' to `gclass'.
7985
7986         * object-internals.h
7987         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
7988
7989         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
7990         mono_reflection_generic_class_initialize().
7991
7992         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
7993         now known as "System.Reflection.MonoGenericClass".
7994         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
7995
7996 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
7997
7998         * class-internals.h: Added a flag field to MonoClass to cache the
7999         declarative security attributes actions associated with the class.
8000         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8001         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8002         applicable to the JITted method.
8003         * reflection.c|h: Added functions to extract (as flags) which security
8004         actions are available (declaratively) for a method, class or assembly.
8005         * metadata.c|h: Added functions to search the declarative security
8006         table in the metadata.
8007         
8008 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8009
8010         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8011         EXPORTEDTYPES are already in the class name cache, so there is no
8012         need to add extra code here to look at them. Just removes a bit of
8013         cruft.
8014
8015         (ves_icall_System_Environment_get_TickCount): No need for #if
8016         WINDOWS. We already have the code in io-layer.
8017
8018 2004-11-28  Martin Baulig  <martin@ximian.com>
8019
8020         * loader.c
8021         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8022         Fixes gen-112.cs.
8023
8024 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8025
8026         * assembly.c (do_mono_assembly_open): Instead of having a
8027         conditional WITH_BUNDLE, incorporate support for bundles here, by
8028         having a global `bundles' variable holding a pointer to the actual
8029         bundles. 
8030
8031         (mono_register_bundled_assemblies): New API call used by the
8032         bundle code. 
8033
8034         See mkbundle.1 for details.
8035         
8036 2004-11-27  Martin Baulig  <martin@ximian.com>
8037
8038         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8039         the vtable for generic methods.
8040
8041 2004-11-26  Martin Baulig  <martin@ximian.com>
8042
8043         * metadata.c
8044         (mono_metadata_generic_method_hash): New public function.
8045         (mono_metadata_generic_method_equal): Likewise.
8046
8047         * class-internals.h
8048         (MonoGenericContainer): Added `GHashTable *method_hash'.
8049
8050         * reflection.c (ReflectionMethodBuilder): Added
8051         `MonoGenericContainer *generic_container'.
8052         (reflection_methodbuilder_to_mono_method): Don't create a new
8053         MonoGenericContainer each time we're called.
8054         (mono_reflection_bind_generic_method_parameters): Use
8055         `container->method_hash' to cache the results so we don't create a
8056         different method if we're called several times with the same
8057         arguments.
8058
8059         * loader.c (method_from_methodspec): Use the new
8060         `container->method_hash' here, too.
8061
8062 2004-11-26  Martin Baulig  <martin@ximian.com>
8063
8064         * class.c (inflate_generic_signature): Correctly compute
8065         `res->has_type_parameters'.
8066         (mono_class_vtable): Use the `has_type_parameters' flag to
8067         determine whether we're a generic method.
8068
8069         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8070
8071 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8072
8073         * object.c (mono_runtime_run_main): Fix a small memory leak.
8074
8075 2004-11-25  Martin Baulig  <martin@ximian.com>
8076
8077         * class.c (set_generic_param_owner): Fixed the loop.
8078
8079 2004-11-25  Martin Baulig  <martin@ximian.com>
8080
8081         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8082         generic methods.
8083
8084 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8085
8086         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8087         names. Fixes #69787.
8088
8089 2004-11-24  Martin Baulig  <martin@ximian.com>
8090
8091         * class.c (mono_class_create_generic_2): If we don't have a
8092         `ginst->parent', inflate `gklass->parent' to get our parent.
8093
8094 2004-11-24  Martin Baulig  <martin@ximian.com>
8095
8096         * reflection.c (compare_genericparam): Correctly sort the
8097         GenericParam table; fixes #69779.
8098
8099 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8100
8101         * reflection.c: When writing a PE file, don't create a huge
8102         buffer in memory. Just write the arrays we have to the file.
8103         This reduces memory usage.
8104
8105         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8106         globally.
8107
8108 2004-11-17  Martin Baulig  <martin@ximian.com>
8109
8110         * class.c (mono_class_init): Don't setup `class->parent' for
8111         dynamic instances; moved this to mono_class_generic_2().
8112         (mono_class_create_generic): Also set `klass->inited' for dynamic
8113         generic instances.
8114         (mono_class_create_generic_2): Don't do anything for dynamic
8115         generic instances.  Set `klass->parent' here and also call
8116         mono_class_setup_parent() here. 
8117
8118         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8119         `MonoType *parent' argument; set `ginst->parent' before calling
8120         mono_class_create_generic_2(), so we set the correct parent.
8121
8122 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8123
8124         * reflection.c: allow getting attributes from ModuleBuilder
8125         (used by ikvm).
8126
8127 2004-11-17  Martin Baulig  <martin@ximian.com>
8128
8129         * class.c (mono_class_create_from_typedef): If a type parameter is
8130         inherited from an outer class, set its owner to that class.
8131
8132 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8133
8134         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8135           for (int*) written size. This fixes bug #69592.
8136
8137 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8138
8139         * icall.c: Added IsAuthenticodePresnet internal call.
8140         * image.c|h: New function that check a MonoImage for an Authenticode
8141         signature in the certificate PE data directory.
8142         * security.c|h: New internal call to ask the runtime if an 
8143         Authenticode signature seems referenced in the PE header.
8144
8145 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8146
8147         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8148
8149         * reflection.c (mono_image_create_pefile): Free the assembly streams
8150         after writing out the assembly file.
8151
8152         * object.c (mono_runtime_run_main): Fix small memory leak.
8153
8154         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8155         property access modifiers. Fixes #69389.
8156
8157 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8158
8159         * domain.c, object.c, object-internals.h, domain-internals.h,
8160         object.h, marshal.c: keep dynamic code info per domain.
8161
8162 2004-11-15  Martin Baulig  <martin@ximian.com>
8163
8164         * class.c (mono_type_get_name_recurse): Put type arguments in
8165         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8166         see bug #68387.
8167
8168 2004-11-15  Martin Baulig  <martin@ximian.com>
8169
8170         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8171         (mono_class_setup_vtable): When computing `the_cname' for a
8172         generic instance, don't include the namespace since we'd otherwise
8173         add it twice.
8174
8175 2004-11-15  Martin Baulig  <martin@ximian.com>
8176
8177         * class.c (mono_class_create_generic): Changed return type to void.
8178         (mono_class_create_generic_2): New public function; setup
8179         `class->method', `class->field' and `class->interfaces' here
8180         instead of in mono_class_init().
8181
8182         * class.h (mono_class_create_generic): Moved to class-internals.h.
8183
8184 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8185
8186         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8187         rather than writing to memory, write to this file. Right now,
8188         we are just writting into a buffer, and copying that. However
8189         we can avoid the buffer later.
8190
8191         (mono_dynamic_stream_reset): new function
8192
8193         * icall.c, object-internals.h: update for the above.
8194
8195 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8196
8197         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8198         have been using gc'd memory. First it is slower, unlikely
8199         the comment in the source code said, secondly, it increases
8200         our footprint to do it in the gc.
8201
8202         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8203         the method so that it does not have to copy to managed code.
8204
8205 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8206
8207         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8208
8209 2004-11-12  Martin Baulig  <martin@localhost>
8210
8211         * reflection.c (mono_image_create_token): Allow generic method
8212         definitions here, since they may appear in an `.override'; see
8213         gen-98/gen-99 for an example.
8214
8215 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8216
8217         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8218         #69365.
8219
8220         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8221         descriptive.
8222
8223 2004-11-11  Martin Baulig  <martin@ximian.com>
8224
8225         * class.c (mono_class_setup_vtable): In an explicit interface
8226         implementation, the method name now includes the arity.
8227
8228 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8229
8230         * object.c (mono_array_full_copy): Fix warning.
8231
8232 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8233
8234         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8235         mono_class_get_method_from_name() instead.
8236         
8237         * class-internals.h: Added two new types of wrappers. 
8238         Added MonoRemotingTarget enum. Added new trampoline function type, which
8239         takes an additional MonoRemotingTarget value as parameter, so it is
8240         possible to request a trampoline for a specific target.
8241         
8242         * class.c: Added new mono_class_get_method_from_name() method.
8243         
8244         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8245         general remoting sinks and one specific for cross domain calls.
8246         
8247         * debug-helpers.c: Added new wrapper names.
8248         
8249         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8250         of a remote class.
8251         
8252         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8253         
8254         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8255         with several other methods (mono_marshal_get_xappdomain_dispatch,
8256         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8257         and others) can generate a fast remoting wrapper for cross domain calls.
8258         More information can be found in docs/remoting.
8259         Other changes: Removed mono_find_method_by_name, and used
8260         mono_class_get_method_from_name instead.
8261         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8262         is stored in the remoting invoke hashtable.
8263         
8264         * marshal.h: published the new method for getting the xdomain wrapper,
8265         and also added a method for getting the adequate wrapper for a given
8266         method and target.
8267         
8268         * object-internals.h, object.c: Added a couple of methods for capying and
8269         cloning arrays.
8270         Modified mono_install_remoting_trampoline, which takes the new remoting
8271         trampoline that has a remoting target as parameter.
8272         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8273         will return the most suitable vtable for the target.
8274         Added mono_remote_class_vtable, which returns the vtable of a remote class
8275         (which can be the normal remoting vtable or the xdomain vtable).
8276         
8277         * threads.c: the xdomain invoke and dispatch wrappers must also be
8278         protected against interruptions.
8279
8280 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8281
8282         * icall.c: use memmove in BlockCopyInternal when the source and
8283         destination arrays are the same.
8284
8285 2004-11-09  Martin Baulig  <martin@ximian.com>
8286
8287         * class-internals.h (MonoGenericContainer): Removed `method' and
8288         `signature', replaced them with `is_method' and `is_signature'
8289         flags.  Added `context'.
8290
8291         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8292         instead of a `MonoGenericContainer *'.
8293
8294         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8295         for dynamic type parameters.
8296         (mono_metadata_load_generic_params): Setup `container->context'.
8297
8298         * reflection.c (mono_reflection_setup_generic_class): Setup
8299         `tb->generic_container->context'.
8300         (do_mono_reflection_bind_generic_parameters): Use
8301         mono_class_inflate_generic_type() to correctly inflate types,
8302         rather than using our own hack just for MONO_TYPE_VAR.
8303
8304 2004-11-09  Martin Baulig  <martin@ximian.com>
8305
8306         * class.c (mono_class_inflate_generic_method): Small fix; don't
8307         crash here.
8308
8309         * icall.c
8310         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8311         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8312         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8313         (ves_icall_Type_BindGenericParameters): Likewise.
8314         (ves_icall_Type_get_IsGenericInstance): Likewise.
8315         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8316         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8317         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8318         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8319
8320 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8321
8322         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8323         assembly versions and public key tokens. Fixes #69113.
8324
8325 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8326
8327         * metadata.c: fix bug introduced with the type cache changes
8328         on 2004-11-06.
8329
8330 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8331
8332         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8333         the MonoClass pointer instead of the token in exception clauses.
8334         * reflection.c: updates for the above and make the code not depend
8335         on the structure of MonoExceptionClause.
8336
8337 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8338
8339         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8340         Add support for dynamic assemblies. Fixes #69114.
8341
8342         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8343
8344 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8345
8346         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8347         since most only those methods use it. the code member of
8348         MonoMethodPInvoke was dead, so that can be removed too. Also,
8349         remove inline_count (again, not used), and move slot so that it
8350         can share bits with some other flags. This saves 8 bytes in the
8351         structure and gives us about 50 kb back for mcs helloworld.cs
8352
8353         * *.[ch]: Do naming changes for the above.
8354
8355         * loader.c (mono_method_get_header): Lazily init the header
8356         on first access.
8357         (mono_get_method_from_token): don't init the header here
8358         (mono_free_method): the header may never be allocated
8359
8360         Overall, this saves 150 kb of unmanaged allocations
8361         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8362         memory at runtime.
8363         
8364         * loader.c, loader.h (mono_method_get_header): new accessor.
8365
8366         * *.[ch]: use the above method. Prepares us to lazily load
8367         the header.
8368
8369         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8370         three warnings, which are actual bugs (see 69206).
8371
8372         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8373         unused. Saves a cool 4 bytes / method.
8374
8375 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8376
8377         * metadata.c (builtin_types): Add types for System.Object here.
8378         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8379         for a class or valuetype from klass->this_arg or klass->byval_arg.
8380
8381         On mcs for a hello world, this gets us down from 21836 MonoType's
8382         to 14560.
8383
8384         (mono_metadata_free_type): Account for the above change.
8385
8386 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8387
8388         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8389         exception instead of asserting if name is null.
8390         (ves_icall_System_AppDomain_GetData): Ditto.
8391
8392 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8393
8394         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8395         EnumBuilder.
8396
8397         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8398         Return NULL when the domain does not have entry_assembly set.
8399
8400         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8401         Add a 'resource_modules' argument.
8402         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8403
8404         * reflection.c (mono_reflection_create_runtime_class): Move setting
8405         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8406         for enums too.
8407
8408         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8409         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8410         Throw an ArgumentNullException if 'ptr' is null.
8411
8412         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8413         assemblies here. Fixes #69020.
8414
8415 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8416
8417         * reflection.c (build_compressed_metadata): Fix the previous patch for
8418         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8419         the stack.
8420
8421 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8422
8423         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8424         the cultures is false. Fixes #69090.
8425
8426         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8427         detected by valgrind.
8428         
8429         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8430         TypeResolve multiple times for the same type. Fixes #65577.
8431
8432 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8433
8434         * marshal.c: Avoid using ldftn to call managed functions. It is
8435         much slower than just a call.
8436
8437         * reflection.c (mono_module_get_object): free the basename we
8438         allocate here from glib.
8439         
8440         * reflection.c (ensure_runtime_vtable): make sure to free
8441         overrides.  Also, we were allocating an array of MonoMethod not an
8442         array of MonoMethod*.
8443
8444         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8445
8446         * image.c (mono_image_close): free image->guid here.
8447
8448 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8449
8450         * reflection.c: Fix some spec conformance issues with the PE file
8451         structures so mcs compiled apps run on the Net 2.0 beta.
8452
8453 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8454
8455         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8456         Implement this. Fixes #67264.
8457
8458         * debug-helpers.h debug-helpers.c marshal.c: Move 
8459         mono_find_method_by_name to debug-helpers.c.
8460
8461 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8462
8463         * object.c (mono_release_type_locks): type_initialization_hash is
8464         a GHashTable.
8465
8466         * reflection.c object.c object-internals.h: Fix warnings.
8467
8468         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8469         without accessors. Fixes #61561.
8470
8471         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8472         application base from the root domain if not set. Fixes #65641.
8473         (mono_runtime_init): Fix warning.
8474
8475 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8476
8477         * appdomain.c: call mono_thread_pool_init.
8478         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8479         of worker threads based on the number of CPUs and the environment
8480         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8481         for non-windows (windows) systems.
8482
8483 2004-10-27  Chris Toshok  <toshok@ximian.com>
8484
8485         * mono-debug-debugger.c (write_class): don't call mono_class_init
8486         here, as even with the check for (!klass->init_pending), we get
8487         into a situation where we're hitting cycles in class
8488         initialization.  Fixes #68816.
8489
8490 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8491
8492         * image.c: Avoid overwriting values in the loaded_images_hash when an
8493         assembly is loaded multiple times. Fixes #61152.
8494
8495         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8496         so multiple satellite assemblies for the same name can be loaded.
8497         Fixes #68259.
8498
8499         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8500         not NULL.
8501
8502         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8503         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8504
8505         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8506         pending finalizers are not invoked after the appdomain has been 
8507         unloaded. Fixes #67862.
8508
8509 2004-10-22  Martin Baulig  <martin@ximian.com>
8510
8511         * mono-debug-debugger.c
8512         (mono_debugger_runtime_invoke): Don't box valuetypes.
8513
8514 2004-10-22  Chris Toshok  <toshok@ximian.com>
8515
8516         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8517         don't hide private methods.
8518
8519 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8520
8521         * icall.c: Allows the runtime to "share" (when known) the public key
8522         token of an assembly. This avoid the need to recalculate the token 
8523         (from the public key) in managed code.
8524
8525 2004-10-21  Chris Toshok  <toshok@ximian.com>
8526
8527         * debug-helpers.c (append_class_name): argh, revert last patch.
8528         
8529 2004-10-21  Chris Toshok  <toshok@ximian.com>
8530
8531         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8532         not '/', so that it matches what the debugger uses to look up
8533         methods.
8534
8535 2004-10-21  Martin Baulig  <martin@ximian.com>
8536
8537         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8538         public method; this is called each time an exception is thrown and
8539         allows the debugger to use exception catch points.
8540
8541 2004-10-21  Martin Baulig  <martin@ximian.com>
8542
8543         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8544         the stack pointer and the exception object in some struct and pass
8545         that to the debugger.
8546
8547 2004-10-21  Chris Toshok  <toshok@ximian.com>
8548
8549         * mono-debug-debugger.c (do_write_class): add instance/static
8550         event support.  We don't expose "raise" or "other" yet.
8551         (event_is_static): new method.
8552
8553 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8554
8555         * mono-debug-debugger.c
8556         (mono_debugger_handle_exception): Remove
8557         bogus return value for fussy compilers.
8558
8559 2004-10-20  Martin Baulig  <martin@ximian.com>
8560
8561         * mono-debug-debugger.c
8562         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8563         (mono_debugger_handled_exception): Likewise.
8564
8565 2004-10-20  Martin Baulig  <martin@ximian.com>
8566
8567         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8568         MONO_DEBUGGER_EVENT_EXCEPTION.
8569
8570         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8571         public function to send the debugger a notification for an
8572         exception and inform it about a catch/finally clause.
8573
8574 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8575
8576         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8577         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8578         fix 2.95 build. 
8579
8580         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8581
8582 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8583
8584         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8585         marshalled as [In,Out]. Fixes #58325.
8586
8587 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8588
8589         * reflection.c (mono_method_body_get_object): Implement some fields.
8590
8591 2004-10-12  Martin Baulig  <martin@ximian.com>
8592
8593         * reflection.c (mono_reflection_bind_generic_parameters): Small
8594         fix, correctly retrieve our parent from a generic instance.
8595
8596 2004-10-12  Martin Baulig  <martin@ximian.com>
8597
8598         * metadata.c (mono_metadata_generic_param_equal): We always have
8599         an owner.
8600
8601         * class.c
8602         (mono_class_from_generic_parameter): We need to have an owner.
8603         (my_mono_class_from_generic_parameter): Likewise.
8604
8605         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8606         mono_reflection_create_generic_class() and added a new
8607         mono_reflection_setup_generic_class().  
8608         (mono_reflection_initialize_generic_param): If we're a nested
8609         generic type and inherited from the containing class, set our
8610         owner to the outer class.
8611
8612 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8613
8614         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8615
8616         * reflection.c (mono_method_body_get_object): New function to create
8617         a MethodBody object.
8618
8619         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8620
8621 2004-10-11  Martin Baulig  <martin@ximian.com>
8622
8623         * metadata.c (_mono_metadata_type_equal): Renamed to
8624         do_mono_metadata_type_equal() and made static.
8625
8626 2004-10-11  Martin Baulig  <martin@ximian.com>
8627
8628         * appdomain.c: Bump corlib version number to 28.
8629
8630 2004-10-10  Martin Baulig  <martin@ximian.com>
8631
8632         * class-internals.h
8633         (MonoGenericInst): Added `MonoGenericContainer *container'.
8634         (MonoGenericMethod): Likewise.
8635         (MonoGenericContext): Likewise.
8636         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8637
8638         * metadata.c
8639         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8640         (do_mono_metadata_parse_generic_inst): Likewise.
8641         (mono_metadata_parse_type_full): New public method.  This is the actual
8642         mono_metadata_parse_type() implementation - with an additional
8643         `MonoGenericContainer *' argument.
8644         (mono_metadata_parse_array_full): Likewise.
8645         (mono_metadata_parse_signature_full): Likewise.
8646         (mono_metadata_parse_method_signature_full): Likewise.
8647         (mono_metadata_parse_mh_full): Likewise.
8648         (mono_type_create_from_typespec): Likewise.
8649         (mono_metadata_interfaces_from_typedef_full): New public method;
8650         this is similar to the other _full() methods, but we take a
8651         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8652         (mono_metadata_parse_generic_param): Take an additional
8653         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8654         from that container.
8655         (mono_metadata_generic_param_equal): New static method to compare
8656         two type parameters.
8657         (_mono_metadata_type_equal): New static method; takes an
8658         additional `gboolean signature_only' argument - if true, we don't
8659         compare the owners of generic parameters.
8660         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8661         with a TRUE argument - do a signature-only comparision.
8662
8663         * loader.c: Use the new _full() methods and pass the
8664         MonoGenericContainer to them.
8665
8666         * object-internals.h (MonoReflectionTypeBuilder): Added
8667         `MonoGenericContainer *generic_container' field.
8668         (MonoReflectionMethodBuilder): Likewise.
8669
8670 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8671
8672         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8673         case initial images of dynamic assemblies.
8674
8675         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8676
8677         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8678
8679         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8680         length of event->other array.
8681         (typebuilder_setup_events): Ditto.
8682
8683         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8684         'assembly_by_name' and add an 'assemblies' list.
8685
8686         * assembly.h assembly.c: Add a new search hook for determining whenever
8687         an assembly is already loaded. Use this instead of searching in the
8688         loaded_assemblies list.
8689
8690         * domain.c appdomain.c: Implement the new search hook so loaded 
8691         assemblies are now scoped by appdomain. Fixes #67727.
8692
8693 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8694
8695         * threads.c (mono_thread_attach): Initialize synch_lock field so
8696         mono_thread_detach works again.
8697
8698         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8699         'lib' too. Fixes #63130.
8700
8701 2004-10-06  Jackson Harper  <jackson@ximian.com>
8702
8703         * culture-info-tables.h: regenerated.
8704
8705 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8706
8707         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8708         implemented by other interfaces in the result. Fixes #65764.
8709         
8710         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8711         Handle unloadable modules without crashing.
8712
8713         * image.c (load_modules): Revert the previous patch since modules must
8714         have a fixed index inside the array.
8715         
8716         * image.c (load_modules): Don't include native modules in the modules
8717         array.
8718
8719 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8720
8721         * reflection.h: Add param_defaults field.
8722
8723         * reflection.c: Add support for parameter defaults in dynamic methods.
8724         Fixes #64595.
8725
8726         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8727         an empty string when a type has no namespace. Fixes #64230.
8728
8729 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8730
8731         * tabledefs.h: Added "internal" security actions to support non-CAS
8732         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8733         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8734
8735 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8736
8737         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8738         constructor of abstract class. Fixes #61689.
8739
8740 2004-10-04  Martin Baulig  <martin@ximian.com>
8741
8742         * class-internals.h (MonoGenericContainer): New type.
8743         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8744         `MonoGenericContainer *generic_container'.
8745         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8746         `MonoGenericContainer *generic_container'.
8747
8748         * metadata.c (mono_metadata_load_generic_params): Return a
8749         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8750         removed the `num' argument.
8751
8752 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8753
8754         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8755         for dynamic images.
8756
8757         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8758         machine fields.
8759
8760         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8761
8762         * reflection.c: Save pe_kind and machine values into the generated
8763         image file.
8764
8765         * appdomain.c: Bump corlib version number.
8766
8767         * object-internals.h: Reorganize layout of LocalBuilder.
8768
8769         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8770         New helper function.
8771
8772         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8773         created MonoType for dynamic types. Fixes #66180.
8774
8775 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8776
8777         * threadpool.c: the ares hashtable needs a critical section around it.
8778         this prevents some nasty segfaults
8779
8780 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8781
8782         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8783         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8784         bug 67324).
8785         
8786 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8787
8788         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8789         
8790 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8791
8792         * image.c: Always canonicalize image file names, to avoid loading
8793         the same assembly twice when referenced using a relative path.
8794
8795 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8796
8797         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8798
8799         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8800
8801         * marshal.c: Fix warnings.
8802
8803 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8804
8805         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8806         attempting to marshal the delegate_trampoline as the method_addr.
8807         This patch has a static hashtable of marshalled delegates so that 
8808         we can map delegate_trampoline addresses back to delegates.  This
8809         allows a delegate passed to managed code to be passed back into native
8810         code.  Fixes #67039
8811
8812 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8813
8814         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8815
8816         * reflection.c (method_encode_code): Align method headers properly.
8817         Fixes #66025.
8818
8819 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8820
8821         * marshal.c: In the runtime invoke wrapper, reset the abort
8822         exception if it is cached. This avoids the automatic rethrowal of 
8823         the exception after the catch of the wrapper. Also check for pending
8824         interruptions before calling the managed method. This is done using
8825         the new method emit_thread_force_interrupt_checkpoint, since the
8826         normal checkpoint method is ignored when running the invoke wrapper.
8827         * object.c: If the abort exception is rethrown, set the abort_exc
8828         field of the thread, so it will be rethrown aftere every catch.
8829         * threadpool.c: Only run an interruption checkpoint if what has been
8830         requested is a stop of the thread (aborts will be ignored).
8831         * threads.c: By default, a thread will now never be interrumped while
8832         running the runtime invoke wrapper (this ensures that runtime_invoke
8833         will always return to the caller if an exception pointer is provided).
8834         There is a new special method mono_thread_force_interruption_checkpoint()
8835         to force an interruption checkpoint even if running a protected
8836         wrapper, which is used by the same runtime invoke wrapper to do a check
8837         at a safe point.
8838
8839 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8840
8841         * object.c, object-internals.h: Implemented mono_release_type_locks,
8842         which releases the cctor locks held by a thread.
8843         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8844         by a thread. Added mono_thread_exit() method to be used to safely stop
8845         a thread.
8846
8847 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8848
8849         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8850         Move null check before dereference.  Avoid indexing beyond the end
8851         of the 'modules' array.
8852
8853 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8854
8855         * metadata-internals.h (MonoImage): Add module_count field.
8856         * image.c (load_modules): Set image->module_count.
8857         (mono_image_load_file_for_image): Use image->module_count.
8858         * reflection.c (mono_image_load_module): Append to image->modules array 
8859         of dynamic assembly.
8860         (mono_module_get_object): Fix loop to actually increment index.
8861         Use image->module_count.
8862         * assembly.c (mono_assembly_load_references): Use image->module_count.
8863         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8864         Likewise.
8865
8866 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8867
8868         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8869         Avoid assert on generic types.
8870
8871 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8872
8873         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8874
8875         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8876
8877         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8878         function to convert a MarshalSpec structure to its managed counterpart.
8879
8880         * reflection.c: Fix warnings.
8881         
8882         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8883         field.
8884
8885         * icall.c (mono_create_icall_signature): Fix build.
8886
8887 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8888
8889         * icall.c: Add MakePointType icall.
8890
8891         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8892         warnings.
8893
8894 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8895
8896         * threadpool.c: reuse allocated slots in the queue.
8897
8898 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8899
8900         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8901
8902         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8903
8904         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8905         previous change.
8906
8907         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8908         ThrowOnUnmappableChar.
8909
8910         * icall.c (ves_icall_Type_GetPacking): New icall.
8911
8912 2004-09-24  Martin Baulig  <martin@ximian.com>
8913
8914         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8915
8916 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8917
8918         * appdomain.c:
8919         (mono_domain_set): allow setting a domain that is being unloaded.
8920         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8921         being unloaded.
8922
8923 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8924
8925         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8926         the GetCustomAttributes icall.
8927
8928 2004-09-23  Martin Baulig  <martin@ximian.com>
8929
8930         * object-internals.h (MonoReflectionGenericParam): Replaced
8931         'has_ctor_constraint', `has_reference_type' and `has_value_type'
8932         with `guint32 attrs'.
8933
8934 2004-09-23  Martin Baulig  <martin@ximian.com>
8935
8936         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
8937
8938 2004-09-23  Martin Baulig  <martin@ximian.com>
8939
8940         * object-internals.h (GenericParameterAttributes): New enum.
8941
8942 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8943
8944         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
8945         
8946         * class.c (init_events): Fill out event->other field.
8947
8948         * class.c: Fix warnings.
8949
8950         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
8951
8952 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
8953
8954         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
8955         walk which doesn't supply the IL offset.
8956
8957 2004-09-22  Martin Baulig  <martin@ximian.com>
8958
8959         * reflection.c (mono_reflection_setup_internal_class): If we're
8960         System.ValueType, System.Object or System.Enum, set
8961         `klass->instance_size' and create the vtable.
8962         (mono_reflection_create_internal_class): If we're an enum type,
8963         get the base class from our current corlib.
8964
8965 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
8966
8967         * reflection.h (MonoResolveTokenError): New type.
8968
8969         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
8970         icall.
8971
8972         * icall.c: Add an 'error' argument to the ResolveToken icalls.
8973
8974 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
8975
8976         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
8977         Support also calling constructors, but only for already allocated objects.
8978
8979 2004-09-17  Geoff Norton <gnorton@customerdna.com>
8980
8981         * reflection.c (type_get_qualified_name): If the klass is null
8982         return the typename to avoid a NullRefEx.
8983         (encode_cattr_value): Get the qualified name of the boxed type,
8984         not the underlying enumtype.  Fixes #62984.
8985
8986 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
8987
8988         * marshal.c: Fix problems with previous checkin.
8989
8990 2004-09-21    <vargaz@freemail.hu>
8991
8992         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
8993         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
8994
8995         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
8996
8997 2004-09-21  Geoff Norton <gnorton@customerdna.com>
8998
8999         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9000         should only return a type for pointers, arrays, and passbyref types.
9001         Fixes bug #63841.
9002
9003 2004-09-21  Martin Baulig  <martin@ximian.com>
9004
9005         * domain.c (mono_debugger_check_runtime_version): New public
9006         function.
9007
9008         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9009
9010 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9011
9012         * reflection.c: Added missing sort to the declarative security 
9013         attributes table. MS implementation stops seeing the attributes if the
9014         token number regress in the table (as shown by ildasm and permview).
9015
9016 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9017
9018         * object-internals.h (MonoReflectionModule): Add 'token' field.
9019         
9020         * reflection.c (mono_reflection_get_token): Add support for Module
9021         and Assembly.
9022         (mono_module_get_object): Set 'token' field.
9023         (mono_module_file_get_object): Set 'token' field.
9024
9025         * icall.c: Add new Assembly and Module icalls.
9026
9027         * appdomain.c: Bump corlib version.
9028
9029 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9030
9031         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9032         tokens of metadata objects.
9033
9034         * reflection.h reflection.c (mono_reflection_get_token): New function
9035         to obtain the token of a metadata object.
9036
9037         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9038
9039 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9040
9041         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9042         
9043         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9044
9045 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9046
9047         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9048         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9049         AssemblyBuilder to access the permissions set in the class lib.
9050         * reflection.c: Added security attributes encoding step in 
9051         mono_image_build_metadata.
9052         * tabledefs.h: Added new security actions defined in 2.0:
9053         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9054
9055 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9056
9057         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9058         macro parameter.
9059
9060 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9061  
9062         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9063           finalized. There where random SIGSEVs at program termination, when
9064           an object being finalized was trying to do a string comparison and
9065           the current culture was already finalized.
9066  
9067 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9068
9069         * threads.c: call thread_cleanup before finishing the thread if we get
9070         there.
9071
9072 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9073
9074         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9075         assemblies from the parent. Fixes #65665.
9076
9077 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9078
9079         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9080         modifiers.
9081
9082 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9083
9084         * reflection.h: add prototype for mono_get_dbnull_object
9085         * reflection.c: add prototypes for get_default_param_value_blobs 
9086         and mono_get_object_from_blob for fussier compilers
9087
9088 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9089  
9090         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9091         false deadlock checks in class initialization.
9092  
9093 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9094
9095         * image.c (mono_image_addref): Fix comment.
9096
9097         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9098         possible.
9099
9100 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9101
9102         * reflection.c (mono_param_get_objects): Modified to return
9103         ParameterInfo.DefaultValue object.
9104
9105         (get_default_param_value_blobs):
9106         (mono_get_object_from_blob):
9107         (mono_get_dbnull_object): New helper routines. 
9108
9109         * object.c (mono_get_constant_value_from_blob): New helper routine
9110         carved out from get_default_field_value ()
9111
9112         * object-internals.h (mono_get_constant_value_from_blob): Added
9113         function declaration.
9114
9115 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9116
9117         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9118         referenced assemblies. Fixes #62135.
9119
9120         * exception.h exception.c (mono_get_exception_file_not_found2): New
9121         helper function.
9122
9123 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9124
9125         * class.h class.c: Add mono_type_get_underlying_type ().
9126
9127 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9128
9129         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9130         Fix GetTypes() to support dynamically created assemblies.
9131
9132 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9133
9134         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9135         
9136         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9137         previous patch.
9138
9139         * reflection.h reflection.c loader.c: Allow dynamic construction of
9140         pinvoke methods. Fixes #65571.
9141         
9142         * reflection.c (mono_reflection_get_type): Revert previous change since
9143         it causes regressions.
9144
9145 2004-09-08  Martin Baulig  <martin@ximian.com>
9146
9147         * class.c (class_compute_field_layout): Don't call
9148         mono_class_layout_fields() for open generic instances.
9149
9150 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9151         * threads.c appdomain.c: fix typo in GC macro
9152
9153 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9154
9155         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9156         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9157
9158 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9159
9160         * image.c (mono_image_close): Applied patch from 
9161         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9162         assembly is loaded multiple times from data.
9163         
9164         * image.c (mono_image_open): Fix warning.
9165
9166 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9167
9168         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9169         once. Fixes #58334.
9170         
9171         * reflection.c (mono_reflection_create_runtime_class): Initialize
9172         klass->nested_classes. Fixes #61224.
9173
9174 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9175
9176         * threads.c: sched_yield() on exit, to allow threads to quit.
9177
9178 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9179
9180         * object.c (mono_unhandled_exception): Remove leftover debug code.
9181
9182 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9183
9184         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9185
9186 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9187
9188         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9189         
9190         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9191
9192 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9193
9194         * marshal.c (emit_marshal_array): Null terminate string arrays.
9195         
9196         * marshal.c (raise_auto_layout_exception): Fix warning.
9197
9198         * reflection.c (mono_param_get_objects): Initialize the default value
9199         with DBNull.Value, not null. Fixes #62123.
9200
9201 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9202
9203         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9204         throw an exception with a cute explanation.
9205
9206 2004-09-06  Dick Porter  <dick@ximian.com>
9207
9208         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9209         Close the new process's thread handle, as we don't use it.  The
9210         handle stays around forever otherwise.
9211
9212 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9213
9214         * object.c (arith_overflow): Fix warning.
9215
9216         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9217         calling conventions in method refs. Fixes #65352.
9218
9219         * reflection.c: Fix warnings.
9220
9221 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9222
9223         * icall.c: Add a new icall for Array.Clear
9224
9225 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9226
9227         * object.c: When allocating an array, we have to throw
9228         an overflow exception if any of the lengths are < 0.
9229
9230 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9231
9232         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9233         properly. Also move implementation of string array marshalling to 
9234         managed code. Fixes #42316.
9235
9236 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9237
9238         * assembly.c: provide more information when loading an assembly fails.
9239
9240 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9241
9242         * filewatcher.c: don't expect the development fam package to be
9243         installed.
9244
9245 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9246
9247         * marshal.c: Make a copy of the signature cookie since it will be
9248         freed by the caller.
9249         
9250         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9251
9252         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9253
9254         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9255         marshal specs.
9256
9257         * marshal.c: More refactoring.
9258         
9259         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9260         smaller functions.
9261
9262 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9263
9264         * object.c: In mono_message_invoke, fill the output parameter array after
9265           calling the managed method (it was done before the call). This fixes
9266           bug #59299.
9267
9268 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9269
9270         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9271         as well.
9272
9273 2004-09-02  Martin Baulig  <martin@ximian.com>
9274
9275         * class.c (mono_class_instance_size): Don't allow generic type
9276         definitions or open generic instances.
9277         (mono_class_array_element_size): If we're a value type, call
9278         mono_class_instance_size() on the original class.
9279
9280         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9281         handle generic instances.
9282
9283         * mono-debug-debugger.c (write_type): Handle generic instances
9284         like classes.
9285
9286 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9287
9288         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9289         the allocation request fails. Fixes #65089.
9290
9291         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9292         
9293         * object.c (mono_runtime_free_method): New function to free a dynamic
9294         method.
9295
9296         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9297         delegate trampoline.
9298
9299         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9300         with hasthis as dynamic,
9301
9302         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9303
9304         * domain.c (mono_jit_info_table_remove): New function to remove an
9305         entry from the jit info table.
9306
9307         * class-internals.h (MonoMethod): Add 'dynamic' field.
9308
9309         * loader.c: Fix warnings.
9310
9311 2004-09-01  Martin Baulig  <martin@ximian.com>
9312
9313         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9314         instead of mono_debugger_lock() because the latter one is a no-op
9315         unless running in the debugger.
9316
9317 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9318
9319         * class.c (class_compute_field_layout): Classes with auto-layout or
9320         reference fields are not blittable.
9321         
9322 2004-09-01  Dick Porter  <dick@ximian.com>
9323
9324         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9325         mono_image_get_filename() to get the assembly location.
9326
9327         * icall.c:
9328         * metadata.h: Fix compile warnings
9329
9330 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9331
9332         * class.c (class_compute_field_layout): System.Object is blittable.
9333
9334         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9335         as in/out. Fixes #59909.
9336
9337 2004-09-01  Martin Baulig  <martin@ximian.com>
9338
9339         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9340         mono_metadata_generic_inst_is_valuetype() if we're a generic
9341         instance to check whether our underlying type is a reference type.
9342
9343 2004-09-01  Martin Baulig  <martin@ximian.com>
9344
9345         * metadata.c (mono_type_size): If we're a generic instance, call
9346         mono_class_value_size() for value types.
9347
9348 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9349
9350         * marshal.c: Implement more custom marshalling functionality. Fixes
9351         #64915.
9352
9353 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9354
9355         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9356
9357 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9358
9359         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9360
9361         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9362
9363         * icall.c: Fix some warnings.
9364
9365         * threads.c (abort_appdomain_thread): Fix unref errors.
9366         (mono_thread_current): Fix THREAD_DEBUG define.
9367
9368 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9369
9370         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9371
9372         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9373
9374 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9375
9376         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9377         string arrays.
9378
9379 2004-08-28  Martin Baulig  <martin@ximian.com>
9380
9381         * metadata.c
9382         (mono_metadata_generic_inst_is_valuetype): New public function.
9383
9384         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9385         mono_metadata_generic_inst_is_valuetype() if we're a generic
9386         instance to check whether our underlying type is a valuetype.
9387
9388 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9389
9390         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9391         #63768.
9392
9393 2004-08-25  Martin Baulig  <martin@ximian.com>
9394
9395         * loader.c (mono_get_method_from_token): Abstract methods can also
9396         be generic and thus have type parameters.
9397
9398         * metadata-internals.h
9399         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9400
9401         * reflection.c (mono_image_get_generic_param_info): Don't create a
9402         metadata row, just add an entry to the `gen_params' array.
9403         (build_compressed_metadata): Sort the `gen_params' array and then
9404         actually create the metadata.
9405
9406 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9407
9408         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9409
9410 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9411
9412         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9413
9414 2004-08-24  Martin Baulig  <martin@ximian.com>
9415
9416         * class.cs (mono_class_is_subclass_of): Like an interface, a
9417         generic instance also derives from System.Object.
9418
9419 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9420
9421         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9422         custom modifiers to be in any order. Fixes #61990.
9423
9424 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9425
9426         * object.c: Register mono_object_new_fast icall.
9427         
9428         * object.c (mono_class_get_allocation_ftn): Return to calling
9429         mono_object_new_fast, since it seems faster to compute the object 
9430         size in unmanaged code than passing it as a parameter.
9431
9432         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9433
9434         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9435         this function with Boehm as the oom handler, so we don't have to check
9436         the result of GC_malloc.
9437
9438         * object.c: Remove checks for oom.
9439
9440         * object.h object.c (mono_class_get_allocation_ftn): New function to
9441         return the icall which can be used to allocate an instance of a given
9442         class. 
9443
9444         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9445
9446         * class-internals.h: Add 'enabled' field.
9447
9448 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9449
9450         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9451
9452 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9453         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9454         value 0x0010.
9455
9456 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9457
9458         * appdomain.c: use the Tls function for appdomain too,
9459         at Zoltan's request. Actually return in mono_context_get
9460
9461         * appdomain.c, profiler.c, threads.c: use __thread
9462
9463 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9464
9465         * appdomain.c threads.c: Call GC_CreateThread on windows.
9466
9467         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9468         multiple libraries since this don't work on windows.
9469
9470 2004-08-18  Martin Baulig  <martin@ximian.com>
9471
9472         * class-internals.h
9473         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9474         MonoMethodHeader.
9475
9476         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9477         MonoMethodNormal since we also need it for abstract and interface
9478         methods.
9479
9480         * reflection.c
9481         (build_compressed_metadata): Sort the GenericParam table.
9482         (mono_image_create_token): Added `gboolean create_methodspec'
9483         argument; this is false when generating a MethodImpl token.
9484         (reflection_methodbuilder_to_mono_method): Abstract and interface
9485         methods may also have generic parameters.
9486
9487 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9488
9489         * appdomain.c: thread local alloc
9490
9491 2004-08-17  Martin Baulig  <martin@ximian.com>
9492
9493         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9494
9495         * icall.c
9496         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9497         argument.
9498
9499         * class.c (mono_type_get_full_name): New public function.
9500         (mono_type_get_name): Don't include the type arguments.
9501
9502 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9503
9504         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9505         for inclusion into the mono executable.
9506
9507 2004-08-16  Martin Baulig  <martin@ximian.com>
9508
9509         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9510         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9511
9512 2004-08-14  Martin Baulig  <martin@ximian.com>
9513
9514         * class.c (dup_type): Also copy the `byref' field.
9515
9516 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9517
9518         * reflection.c (create_dynamic_mono_image): Revert the last change 
9519         since it breaks bootstrap.
9520
9521 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9522
9523         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9524
9525         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9526         not free them with g_free.
9527
9528 2004-08-11  Martin Baulig  <martin@ximian.com>
9529
9530         * reflection.c (mono_reflection_setup_internal_class): Also call
9531         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9532
9533 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9534
9535         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9536         called during default (first) AppDomain creation. Keep track of
9537         Evidence when loading assemblies.
9538
9539 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9540
9541         * opcodes.c, opcodes.h: reduce runtime relocations.
9542
9543 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9544
9545         * culture-info.h, locales.c: fixes and chages to sue the new
9546         optimized format of the locale data.
9547         * culture-info-tables.h: regenerated.
9548
9549 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9550         
9551         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9552
9553 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9554
9555         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9556         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9557         * domain-internals.h: icall declaration.
9558         * icall.c: icall registration.
9559         * object-internals.h: New fields in MonoAssembly for CAS.
9560
9561 2004-08-05  Duncan Mak  <duncan@ximian.com>
9562
9563         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9564         CEE_LDELEM_ANY.
9565
9566 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9567
9568         * reflection.c: fix to deal with object[] arrays in custom ctors
9569         (bug #62550).
9570
9571 2004-08-05  Martin Baulig  <martin@ximian.com>
9572
9573         * class.c (mono_class_array_element_size): Added support for
9574         generic instances and correctly handle "recursive" types.
9575
9576 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9577
9578         * assembly.c: Fix warnings.
9579
9580 2004-08-04  Martin Baulig  <martin@ximian.com>
9581
9582         * class.c
9583         (mono_type_get_name_recurse): Added `gboolean include_arity'
9584         argument specifying whether or not we should include the generic
9585         arity in the type name.
9586         (_mono_type_get_name): New static function.
9587         (mono_class_setup_vtable): If we're a generic instance, don't
9588         include the generic arity in the names of explicit method
9589         implementations.        
9590
9591 2004-08-03  Martin Baulig  <martin@ximian.com>
9592
9593         * class.c (mono_type_get_name_recurse): Enclose the generic type
9594         arguments in `<', '>'.
9595
9596 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9597
9598         * gc.c: make GC warning messages use the trace API, they are just
9599         noise to most of the users.
9600
9601 2004-08-03  Martin Baulig  <martin@ximian.com>
9602
9603         * debug-mono-symfile.c (read_string): Correctly read the string.
9604
9605 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9606
9607         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9608         
9609         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9610         icalls.
9611         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9612
9613 2004-07-30  Martin Baulig  <martin@ximian.com>
9614
9615         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9616         Reflect latest symbol writer changes.   
9617
9618 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9619
9620         * object.c: always create an object if null is passed
9621         to Invoke() where a valuetype is expected.
9622
9623 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9624
9625         * marshal.c (mono_marshal_init): make managed
9626         signatures match native ones better for 64bits.
9627
9628 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9629
9630         * appdomain.c: hack to build correctly the private bin path on windows.
9631         Fixes bug #61991.
9632
9633 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9634
9635         * assembly.c: Load mscorlib from the correct framework directory
9636           (mono/<version>/mscorlib.dll).
9637         * appdomain.h: Added prototypes for new functions.
9638         * internals.h: Added some prototypes.
9639         * domain.c: When initializing the runtime, get from the executable and
9640           the configuration files the runtime version that the app supports.
9641           Added support methods for reading app.exe.config. Added list of versions
9642           supported by the JIT. Added two new methods: mono_init_from_assembly,
9643           which initializes the runtime and determines the required version from
9644           the provided exe file, and mono_init_version, which initializes
9645           the runtime using the provided version.
9646         * icall.c: Get machine.config from version-specific directory.
9647         * reflection.c: When generating an image, embed the version number
9648           of the current runtime.
9649
9650 2004-07-28  Dick Porter  <dick@ximian.com>
9651
9652         * socket-io.c
9653         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9654         returned sockaddr size before creating the remote address object.
9655         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9656         61608.
9657
9658 2004-07-28  Dick Porter  <dick@ximian.com>
9659
9660         * locales.c (string_invariant_compare_char): Fix invariant char
9661         compares between upper and lower cases.  Fixes bug 61458.
9662
9663 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9664         
9665         * marshal.c: actually cache stelem.ref wrappers.
9666         
9667 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9668
9669         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9670         sections and remove the mono_cli_rva_map () function.
9671
9672 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9673
9674         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9675         by Geoff Norton (<gnorton@customerdna.com>).
9676
9677 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9678
9679         * class.c: fix class loads for pointer types (typeof(int) !=
9680         typeof(int*)).
9681
9682 2004-07-27  Martin Baulig  <martin@ximian.com>
9683
9684         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9685         reading the debugging information from an external ".mdb" file.
9686
9687 2004-07-24  Martin Baulig  <martin@ximian.com>
9688
9689         * reflection.c (mono_image_get_type_info): Only write a class
9690         layout entry if we actually have a size or a packing size.
9691
9692 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9693
9694         * reflection.c (type_get_fully_qualified_name): 
9695         insert cast to get type checking of ?: with non-gcc compilers
9696
9697 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9698
9699         * rand.c: use g_getenv for both lookups of
9700         MONO_EGD_SOCKET
9701
9702 2004-07-17  Martin Baulig  <martin@ximian.com>
9703
9704         * reflection.c (mono_reflection_bind_generic_method_parameters):
9705         Set `gmethod->reflection_info'.
9706
9707 2004-07-17  Martin Baulig  <martin@ximian.com>
9708
9709         * class.c (mono_class_create_from_typedef): Insert the newly
9710         created class into the hash table before computing the interfaces
9711         since we could be called recursively.
9712
9713 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9714
9715         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9716         function to implement stelem.ref in managed code
9717         * class-internals.h, debug-helpers.c: a new wrapper type
9718         for the above.
9719
9720 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9721
9722         * gc.c: allow GC handles to work even when no GC is compiled in.
9723         Fix part of bug #61134 (GetAddrOfPinnedObject).
9724
9725 2004-07-13  Peter Williams  <peter@newton.cx>
9726  
9727         * process.c (complete_path): Make sure we don't attempt to execute
9728         directories.
9729  
9730 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9731
9732         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9733           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9734           and will add/subtract the hour if needed
9735
9736 2004-07-12  Martin Baulig  <martin@ximian.com>
9737
9738         * reflection.c (mono_field_get_object): If we have
9739         `field->generic_info', take the attributes from
9740         `field->generic_info->generic_type'.    
9741
9742 2004-07-12  Martin Baulig  <martin@ximian.com>
9743
9744         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9745         This function must be called before initializing the runtime.
9746         (mono_debug_init_1): New function; call this after initializing
9747         the runtime, but before loading the assembly.  It tells the
9748         debugger to load corlib and the builtin types.
9749
9750         * mono-debug-debugger.c: Did some larger changes in the debugging
9751         code; support recursive class declarations, make sure we actually
9752         add all classes.
9753
9754 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9755
9756         * debug-helpers.c: undo my previous patch and fixed the real issue in
9757         ../mini/exceptions-x86.c
9758
9759 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9760
9761         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9762         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9763         called from other .cctors.
9764
9765 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9766
9767         * loader.c: Removed the mono_loader_wine_init hack now that we are
9768         doing a managed version of Windows.Forms.
9769
9770 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9771
9772         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9773         threadpool.c, threads.c: remove static data from rootset.
9774
9775 2004-07-09  Dick Porter  <dick@ximian.com>
9776
9777         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9778         Don't do any more processing if the matched length was 0.  It was
9779         increasing the size of the string before.  Fixes bug 61167.
9780
9781 2004-07-09  Dick Porter  <dick@ximian.com>
9782
9783         * socket-io.h:
9784         * socket-io.c
9785         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9786         Add support for SO_PEERCRED if its available.
9787
9788 2004-07-09  Peter Bartok <pbartok@novell.com>
9789         * loader.c: winelib.exe.so error message is now only displayed if
9790         MONO_DEBUG is set. To help us avoid questions when people are trying
9791         out the new Managed.Windows.Forms.
9792
9793 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9794
9795         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9796         for isinst and castclass wrappers.
9797
9798         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9799         to libmetadata from the JIT, so they could be used by the marshalling
9800         code and the interpreter.
9801
9802         * marshal.c: Register marshalling related JIT icalls here instead of
9803         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9804         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9805
9806         * metadata.h: Remove unneeded marshalling conversions.
9807
9808         * opcodes.c: Update for new opcodes.
9809         
9810 2004-07-08  Martin Baulig  <martin@ximian.com>
9811
9812         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9813         (mono_debug_get_domain_data): Make this function static.
9814
9815 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9816
9817         * gc.c, object.h: add nice GC handle API for embedders.
9818
9819 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9820
9821         * reflection.c: more changes for the new api
9822
9823         * object.c: When we reflect on a field w/ a constant value, it
9824         will not have a memory location, so we must access metadata. Also,
9825         allow easier reading of strings so that we can read them from
9826         the constant data.
9827
9828         * class.c (mono_class_layout_fields): no need for literal fields here.
9829
9830         * class-internals.h: api changes for const fields
9831
9832         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9833
9834 2004-07-06  Martin Baulig  <martin@ximian.com>
9835
9836         * mono-debug.h: Increment version number to 44.
9837
9838         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9839         now a gpointer, rewrote this whole method.
9840
9841         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9842         function.  Add information about the wrapper in a new "misc table".
9843
9844         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9845         for the new misc table.
9846
9847 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9848
9849         * metadata-internals.h image.c: Add a cache for helper signatures.
9850
9851         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9852
9853 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9854
9855         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9856         delegates from a delegate. Fixes #61033.
9857         
9858         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9859         marshalling of stringbuilder arrays. Fixes #59900.
9860
9861 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9862
9863         * icall.c: Add EnumBuilder:setup_enum_type icall.
9864
9865 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9866
9867         * icall.c: Added a new icall for the property version of
9868         OffsetOfStringData.
9869
9870 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9871
9872         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9873         it has a constant size across platforms.
9874
9875         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9876         stack trace.
9877
9878 2004-06-29  Martin Baulig  <martin@ximian.com>
9879
9880         * mono-debug.c (mono_debug_add_method): Protect the whole function
9881         in mono_debugger_lock(), not just parts of it.
9882
9883 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9884
9885         * reflection.c: make sure padding bytes in heaps are zeroed.
9886
9887 2004-06-24  David Waite  <mass@akuma.org>
9888
9889         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9890         image.c, loader.c, locales.c, marshal.c, metadata.c,
9891         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9892         string-icalls.c, threads.c: change to C90-style comments from C99 /
9893         C++ -style
9894
9895 2004-06-24  Dick Porter  <dick@ximian.com>
9896
9897         * threads.c
9898         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9899         return createdNew.  Fixes bug 60412.
9900
9901         * threads-types.h: 
9902         * icall.c: Add createdNew parameter to CreateMutex icall
9903
9904 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9905
9906         * reflection.c, object-internals.h: save default value in params.
9907
9908 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9909
9910         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9911         no need to build a new path combining that with the application base.
9912         Fixes bug #60442.
9913
9914 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9915
9916         * reflection.c: fixed minor standard compliance issues.
9917
9918 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9919
9920         * reflection.c: fixed issue with encoding some custom attributes
9921         (arrays in properties and fields, bug #60411).
9922
9923 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9924
9925         * reflection.c: fix start address when copying the public key token.
9926
9927 2004-06-23  Martin Baulig  <martin@ximian.com>
9928
9929         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
9930         the `exc' object in a static object to put it into the GC's root set.
9931
9932 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
9933
9934         * reflection.c: make mono_reflection_setup_internal_class ()
9935         callable a second time to setup a new parent class.
9936
9937 2004-06-23  Dick Porter  <dick@ximian.com>
9938
9939         * threads.c: Check for WAIT_IO_COMPLETION return values.
9940
9941 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
9942
9943         * appdomain.c: Removed the g_free on the public key token. Now copy 
9944         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
9945         * assembly.c: Added public key token string value when loading 
9946         assemblies. Fix bug #60439.
9947         * icall.c: Added missing informations (like public key) in 
9948         GetReferencedAssemblies. Fix #60519.
9949         * image.h: Changed definition for public key token from const char*
9950         public_tok_value to guchar public_key_token [17];
9951         * reflection.c: Updated for changes to public key token.
9952
9953 2004-06-22  Lluis Sanchez Gual
9954
9955         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
9956         for the field in base classes.
9957
9958 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9959
9960         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
9961         mark headers as not supported, they are installed only for use by the
9962         debugger.
9963
9964 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
9965
9966         * *.c, *.h: avoid namespace pollution in public headers.
9967
9968 2004-06-21  Martin Baulig  <martin@ximian.com>
9969
9970         * exception.c (mono_get_exception_security): It's in
9971         "System.Security", not in "System".
9972
9973         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
9974         the exception classes.
9975
9976 2004-06-21  Martin Baulig  <martin@ximian.com>
9977
9978         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
9979         Protect the exception object from being finalized.
9980
9981 2004-06-21  Martin Baulig  <martin@ximian.com>
9982
9983         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
9984         public function.
9985
9986 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
9987
9988         * reflection.c: Load the assembly in mono_reflection_type_from_name,
9989         if it was not loaded before. Fix parts of #60439.
9990
9991 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
9992
9993         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
9994         code that was broken since Ben's change: wrappers are now
9995         dependent on the method signature only again.
9996
9997 2004-06-21  Martin Baulig  <martin@ximian.com>
9998
9999         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10000         added interface support.
10001
10002 2004-06-21  Martin Baulig  <martin@ximian.com>
10003
10004         * class.c (mono_vtable_get_static_field_data): New public method.
10005
10006 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10007
10008         * filewatcher.c : Windows build fix to be compliant with API changes.
10009
10010 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10011
10012         * class.h, class.c: more accessors.
10013         * metadata.h, metadata.c: prepare for hiding MonoType and
10014         MonoMethodSignature: people should use the accessors from now on
10015         outside of the tree.
10016
10017 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10018
10019         * *.c, *.h: more API cleanups.
10020
10021 2004-06-18  Jackson Harper  <jackson@ximian.com>
10022
10023         * assembly.c: Trace loading assemblies.
10024         * loader.c: Trace loading native libraries.
10025         * mono-config.c: Trace loading config files.
10026         
10027 2004-06-18  Dick Porter  <dick@ximian.com>
10028
10029         * locales.c: Tell ICU the lengths of strings, it can cope with
10030         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10031
10032 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10033
10034         * image.c: swapped name/filename;
10035
10036 2004-06-18  Martin Baulig  <martin@ximian.com>
10037
10038         * mono-debug-debugger.c (write_class): Write the parent class at
10039         the end of the header.
10040
10041 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10042
10043         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10044
10045 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10046
10047         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10048         (bundle_obj): New conditional define.
10049         (BUILT_SOURCES): Remove.
10050         ($(bundle_srcs)): Make parallel-make safe.
10051         (libmonoruntime_la_LIBADD): Make unconditional.
10052         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10053         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10054
10055 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10056
10057         * culture-info-tables.h: It was inconsistent with the latest
10058           supp info files.
10059
10060 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10061
10062         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10063         be loaded.
10064
10065         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10066         with gcc 2.95.
10067
10068 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10069
10070         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10071         cleaned up public header threads.h.
10072
10073 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10074
10075         * Makefile.am, *.c, *.h: more API cleanups.
10076
10077 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10078
10079         * Makefile.am: removed monosn from compilation.
10080         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10081         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10082         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10083         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10084         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10085         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10086
10087 2004-06-15  Jackson Harper  <jackson@ximian.com>
10088
10089         * assembly.c: Make locales lower case when searching the GAC for
10090         assemblies. gacutil will always make locales lowercase when
10091         installing so this effectively makes them case insensitive.
10092         
10093 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10094
10095         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10096         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10097           parameter which allows to choose whether the wait can be interrupted or 
10098           not. Also added the method mono_monitor_enter(), which locks the monitor
10099           using an infinite wait and without allowing interruption.
10100           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10101           interrupted.
10102         * object.h: Added new fields in MonoThread. suspend_event holds the event
10103           used to susped/resume the thread. synch_lock is the lock object to use for
10104           modifying the thread state.
10105         * threads.c: Use the new synch_lock object for locking, instead of "this",
10106           which can generate deadlocks.
10107           Moved thread state change in Thread.Sleep and Thread.Join from managed
10108           to unmanaged code. This avoids a deadlock when the thread was suspended
10109           just after acquiring the thread lock.
10110           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10111           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10112           which is not fully implemented in the io-layer.
10113         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10114
10115 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10116
10117         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10118         threads-types.h: more API cleanups.
10119
10120 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10121
10122         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10123         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10124         threadpool.c, threads.c: first pass at the exported API cleanup.
10125
10126 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10127
10128         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10129
10130 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10131
10132         * icall.c: added internalGetHome.
10133
10134 2004-06-14  Dick Porter  <dick@ximian.com>
10135
10136         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10137         possible to return successfully when '.' or '..' were the only
10138         entries in a directory, but were skipped.  The MonoIOStat was not
10139         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10140         Fixes bug 59574.
10141
10142 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10143
10144         * reflection.c: make binaries run on .Net 1.1 by default.
10145
10146 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10147
10148         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10149
10150 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10151
10152         * marshal.c: keep track of struct size with explicit layout
10153         (bug #59979).
10154
10155 2004-06-12  Martin Baulig  <martin@ximian.com>
10156
10157         * mono-debug-debugger.c: Comment out a debugging g_message().
10158
10159 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10160
10161         * reflection.c, reflection.h: do not free custom attrs that are cached.
10162         * icall.c: use braces to make code clearer.
10163
10164 2004-06-11  Martin Baulig  <martin@ximian.com>
10165
10166         * class.h (MonoInflatedField): New type.
10167         (MonoClassField): Replaced `MonoType *generic_type' with
10168         `MonoInflatedField *generic_info'.
10169
10170         * icall.c
10171         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10172
10173 2004-06-11  Martin Baulig  <martin@ximian.com>
10174
10175         * reflection.c (mono_image_create_method_token): Correctly encode
10176         varargs methods.
10177
10178 2004-06-11  Martin Baulig  <martin@ximian.com>
10179
10180         * metadata.c (mono_metadata_parse_method_signature): When parsing
10181         a MethodDef which has VarArgs, also set sentinelpos if we don't
10182         have any parameters.
10183
10184 2004-06-11  Martin Baulig  <martin@ximian.com>
10185
10186         * verify.c (mono_method_verify): In CEE_CALL, use
10187         mono_method_get_signature() to get the method's signature, unless
10188         we're a PInvoke method.
10189
10190 2004-06-10  Jackson Harper  <jackson@ximian.com>
10191
10192         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10193         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10194         logical name as the supplied path is just a prefix to the gac not
10195         the direct path to it.
10196         
10197 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10198
10199         * reflection.c: make the token for a created method match
10200         the token of the MethodBuilder it was created from
10201         (IKVM requires this behaviour now).
10202
10203 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10204
10205         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10206         reflection.c, socket-io.c: leak fixes.
10207
10208 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10209
10210         * icall.c: handle sentinel pos in vararg methods in position different
10211         from 0.
10212
10213 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10214
10215         * culture-info-tables.h: freshly generated.
10216
10217 2004-06-09  Martin Baulig  <martin@ximian.com>
10218
10219         * loader.c (mono_get_method_constrained): Call `mono_class_init
10220         (constrained_class)'.   
10221
10222 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10223
10224         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10225         any methods. Fixes #59629.
10226
10227 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10228
10229         * culture-info-tables.h: reflecting locale-builder updates.
10230
10231 2004-06-08  Dick Porter  <dick@ximian.com>
10232
10233         * object.h:
10234         * locales.c: Fixed compile warnings, including a real bug in
10235         CompareInfo_internal_compare.
10236         
10237 2004-06-08  Dick Porter  <dick@ximian.com>
10238
10239         * locales.c
10240         (ves_icall_System_Globalization_CompareInfo_internal_index):
10241         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10242         Double-check the resuls of usearches, because ICU currently
10243         ignores most of the collator settings here.  Fixes bug 59720.
10244         
10245 2004-06-08  Dick Porter  <dick@ximian.com>
10246
10247         * locales.c
10248         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10249         Fix memory leak and segfault-causing typo.  No idea how this one
10250         lasted so long without being noticed.
10251
10252 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10253
10254         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10255         any methods. Fixes #59629.
10256
10257 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10258
10259         * assembly.c:
10260         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10261         own the critical section before). Removed dead code (that's done
10262         in the preload hook).
10263
10264         (mono_assembly_load_with_partial_name): call the preload hook.
10265
10266 2004-06-08  Martin Baulig  <martin@ximian.com>
10267
10268         * metadata.c (mono_metadata_signature_alloc): Default
10269         `sentinelpos' to -1.
10270
10271         * reflection.c (mono_image_get_array_token): Likewise.
10272
10273 2004-06-08  Martin Baulig  <martin@ximian.com>
10274
10275         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10276
10277         * metadata.c (mono_metadata_parse_method_signature): When parsing
10278         a MethodDef which has VarArgs, set sentinelpos.
10279
10280         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10281         `gint16' since we're using -1 for non-varargs methods.
10282
10283         * reflection.c
10284         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10285         (method_encode_signature): Added varargs support.
10286         (method_builder_encode_signature): Likewise.
10287         (mono_image_get_varargs_method_token): New static method.
10288         (mono_image_create_method_token): New public method; this is
10289         called via an icall instead of mono_image_create_token() when
10290         calling a varargs method.       
10291
10292 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10293
10294         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10295
10296 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10297
10298         * culture-info-tables.h : Reflecting the latest locale-builder that
10299           fixed empty array representation ({} to {0}).
10300
10301 2004-06-07  Jackson Harper  <jackson@ximian.com>
10302
10303         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10304         looking up extra gac paths. This allows MONO_GAC_PATH to act
10305         exactly like a prefix.
10306         
10307 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10308
10309         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10310         type name before modifying it. Fixes #59405.
10311
10312 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10313
10314         * culture-info.h: added fields for "all datetime patterns".
10315         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10316           _construct_datetime_format ()): fill xxx_patterns fields.
10317         * object.h: added fields for "all datetime patterns" to
10318           MonoDateTimeFormatInfo.
10319         * culture-info-tables.h: reflecting locale-builder updates.
10320
10321 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10322
10323         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10324         the event has no add and remove methods. Fixes #59629.
10325
10326 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10327
10328         * object.c: Fixed possible integer overflow when allocating large
10329         strings.
10330
10331 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10332
10333         * culture-info-tables.h: reflecting locale-builder updates.
10334
10335 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10336
10337         * culture-info-tables.h: reflecting locale-builder updates.
10338
10339 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10340
10341         * culture-info-tables.h: reflecting locale-builder updates.
10342
10343 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10344
10345         * threads.c: Made Thread.Sleep abortable.
10346
10347 2004-06-02  Martin Baulig  <martin@ximian.com>
10348
10349         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10350
10351         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10352
10353 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10354
10355         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10356
10357 2004-05-30  Jackson Harper  <jackson@ximian.com>
10358
10359         * reflection.c: Do not hardcode assembly versions or public key
10360         tokens anymore. All of this except the corlib section was dead
10361         code anyways.
10362         
10363 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10364
10365         * object.c (mono_runtime_invoke_array): Automatically create boxed
10366         objects for byref valuetypes if needed. Fixes #59300.
10367         
10368         * object.c (mono_method_return_message_restore): Handle 
10369         MONO_TYPE_OBJECT as well.
10370
10371 2004-05-28  Jackson Harper  <jackson@ximian.com>
10372
10373         * reflection.c: The modified type encoding was causing build
10374         problems. Reverted for now.
10375         
10376 2004-05-28  Jackson Harper  <jackson@ximian.com>
10377
10378         * reflection.c/h: Take an assembly ref so that we dont create
10379         fully qualified names when encoding types in the same assembly as
10380         the custom attribute being emitted.
10381         * appdomain.c: Increment version number.
10382         
10383 2004-05-26  Duncan Mak  <duncan@ximian.com>
10384
10385         * icall.c
10386         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10387         Set the full version number (major, minor, build, revision).
10388
10389 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10390
10391         * marshal.c (emit_struct_conv): increment src/dst after blit
10392         (mono_marshal_get_managed_wrapper,
10393         mono_marshal_get_native_wrapper): make sure we have marshalling
10394         info before marshalling params (info computation affects
10395         blittable)
10396
10397         * class.c (class_compute_field_layout): correctly deal with
10398         blittable
10399         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10400         value types (as per what windows dows by default)
10401         (mono_class_setup_mono_type): System.ValueType is blittable
10402         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10403         blittable
10404
10405         * marshal.c (mono_marshal_load_type_info): flag types  as
10406         non-blittable if the native layout doesn't match the managed
10407         layout
10408
10409 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10410
10411         * appdomain.c: don't add stuff in the private search path that is
10412         above the application base. If application base is not set, there's
10413         no private search path.
10414
10415 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10416
10417         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10418         byref struct arguments in native->managed marshalling.
10419
10420 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10421
10422         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10423         cache methods using signature (special case for methods
10424         that are value type or string class)
10425         
10426         * image.c (mono_image_close): clean up allocated GSList's
10427         in runtime_invoke_cache.
10428
10429 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10430
10431         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10432         there's no MONO_CFG_DIR environment variable defined.
10433
10434 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10435
10436         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10437
10438 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10439
10440         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10441           is interrumped.
10442         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10443           before waiting for it, and call CloseHandle after the wait to unref it.
10444           This will make sure that handles are not disposed too early.
10445
10446 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10447
10448         * appdomain.c:
10449         * appdomain.h:
10450         * icall.c: removed
10451         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10452         needed now.
10453
10454         * object.c: se the application_base only for the domain that runs
10455         Main. Fixes bug #59216,
10456
10457 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10458
10459         * appdomain.c:
10460         * object.c: only the domain in which Main is run have
10461         SetupInformation.ConfigurationFile set, so moved a few lines from
10462         appdomain.c to object.c.
10463
10464 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10465
10466         * appdomain.c: we tried to load [name].(dll|exe), but according
10467         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10468         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10469         There's a test case attached to bug #58922.
10470
10471 2004-05-27  Dick Porter  <dick@ximian.com>
10472
10473         * icall.c:
10474         * file-io.c: Implemented icalls for locking and unlocking regions
10475         in a file.
10476         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10477         FALSE on error (fixes both compiler warning and real bug.)
10478
10479 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10480
10481         * culture-info-tables.h: reflecting locale-builder updates.
10482
10483           (Added missing ChangeLog entry for 05/26)
10484
10485 2004-05-27  Jackson Harper  <jackson@ximian.com>
10486
10487         * locales.c: Fix some cut and paste errors.
10488         
10489 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10490
10491         * mono-config.c: set the correct path for config. directory on windows.
10492
10493 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10494
10495         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10496           on win32.
10497
10498 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10499
10500         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10501         from pinvoke functions.
10502         
10503         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10504
10505 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10506
10507         * culture-info-tables.h: reflecting locale-builder updates.
10508
10509 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10510
10511         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10512         #59086.
10513
10514 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10515
10516         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10517         * icall.c: Modified icalls for RNG.
10518         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10519         Windows (CryptoAPI).
10520
10521 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10522
10523         * locales.c: Fix build.
10524
10525 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10526
10527         * culture-info-tables.h: reflecting locale-builder updates.
10528
10529 2004-05-25  Jackson Harper  <jackson@ximian.com>
10530
10531         * locales.c: When creating the current culture use the $LANGs
10532         specific culture. So DateTimeFormat and NumberFormat entries are created.
10533         
10534 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10535
10536         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10537         a char array as parameter.
10538
10539 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10540
10541         * image.c: In mono_image_open(), always use an absolute path name to
10542           look for already loaded images.
10543
10544 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10545
10546         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10547         missing in the windows build (like older cygwin include files).
10548
10549 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10550
10551         * icall.c: Fixed check for possible integer overflow in Buffer_
10552         BlockCopy icall. Replaced comments style // by /* */.
10553
10554 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10555
10556         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10557         
10558         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10559         check after MONO_VTADDR. Fixes pinvoke2.exe.
10560
10561         * marshal.h marshal.c metadata.h: Add beginnings of support for
10562         ftnptr -> delegate marshalling.
10563
10564 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10565
10566         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10567         * threads.c: Fix warnings.
10568
10569 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10570
10571         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10572         * icall.c: Registered icalls for Suspend and Resume.
10573         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10574           Thread.Abort.
10575         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10576         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10577         * process.c: Use WaitForSingleObjectEx.
10578         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10579           checkpoints.
10580         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10581           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10582           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10583           background threads. Added basic support for Abort in Windows.
10584           Start new threads using a managed delegate invoke wrapper. This wrapper
10585           has an interruption checkpoint that is needed since an interruption
10586           can be requested before the thread leaves the unmanaged code that starts 
10587           the thread.
10588         * marshal.c: Added interruption checkpoint after every native call, and
10589           also before managed calls for wrappers called from unmanaged code to
10590           go into managed code.
10591         * object.h: Added new field in MonoThread to keep track of interruption
10592           requests.
10593
10594 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10595
10596         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10597         calls.
10598
10599 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10600
10601         * appdomain.c:
10602         * assembly.c:
10603         * gc.c:
10604         * locales.c:
10605         * mono-config.c:
10606         * rand.c: getenv -> g_getenv (windows!)
10607
10608         * process.c: complete_path is also used on non-windows platforms.
10609
10610 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10611
10612         * icall.c: new signature for Process_Start.
10613
10614         * process.[ch]: new signature for Process_Start. If we're on windows
10615         and UseShellExecute is false, we have to search for the program by
10616         ourselves if we don't get a full path.
10617
10618 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10619
10620         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10621         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10622
10623 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10624
10625         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10626         Fixes bug #58373.
10627
10628 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10629
10630         * process.c: use double quotes to quote program name and arguments on
10631         windows. Fixes bug #58575.
10632
10633 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10634
10635         * file-io.c: don't return "." and ".." when using windows Find*File.
10636
10637 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10638
10639         * marshal.c: Don't pass wrappers to message init because method 
10640         addressed used to lookup metadata. part of remoting[2|3] fix.
10641
10642 2004-05-15  Jackson Harper  <jackson@ximian.com>
10643
10644         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10645         path is essentially the same as MONO_PATH except that it points to
10646         GACs instead of lib directories.
10647         * loader.h: The user gac is gone so we dont need function to
10648         enable/disable it.
10649         * mono-config.c: user gac option is now gone.
10650         
10651 2004-05-15  Jackson Harper  <jackson@ximian.com>
10652
10653         * culture-info.h: Make defines more consistent, add calendar data
10654         to the culture info table.
10655         * culture-info-tables.h: Add basic calendar data. Basically
10656         everyone gets default gregorian until all the data is
10657         updated.
10658         * locales.c: Use the new consistent defines. Set calendar data for
10659         culture info objects.
10660         * object.h: add a field for calendar data to CultureInfo
10661         
10662 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10663
10664         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10665         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10666         a signature.
10667         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10668         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10669         an extra param that is the pointer of the method to invoke. The IL for
10670         the invoke method is no longer specific to the method, but to the
10671         signature of the method. Thus, we can share the same code for multiple
10672         methods. This reduces the number of methods that have to be compiled.
10673
10674 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10675
10676         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10677
10678         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10679
10680         * icall.c: Optimize Buffer.BlockCopy.
10681
10682 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10683
10684         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10685         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10686         quote). Changed them to "MMMM yyyy".
10687
10688 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10689
10690         * rand.c
10691         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10692
10693 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10694
10695         * reflection.h: Updated after changes to managed structures.
10696
10697         * appdomain.c: Bump corlib version.
10698
10699 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10700
10701         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10702         windows.
10703
10704 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10705
10706         * Makefile.am: link to ../os/libmonoos.la on windows.
10707
10708         * assembly.c:
10709                 -If MONO_DEBUG, warn about non-existing directories in
10710                 MONO_PATH.
10711                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10712                 compile time variable.
10713                 -Removed init_default_path and call mono_set_rootdir from
10714                 libmonoos.a instead (windows only).
10715
10716         * assembly.h: declare mono_assembly_getrootdir().
10717
10718         * domain.c:
10719         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10720
10721         * loader.c: s/getenv/g_getenv/
10722
10723 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10724
10725         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10726
10727         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10728
10729         * metadata.h: Add new marshalling conversions.
10730
10731         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10732         function.
10733
10734         * reflection.c (mono_reflection_get_type): Lookup the type in all
10735         modules of a multi-module assembly. Fixes #58291.
10736
10737 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10738
10739         * threads.c: Before aborting a background, set the StopRequested
10740         state.  This avoids throwing the Abort exception.
10741         In mono_thread_manage, don't continue with the shutdown until all
10742         aborted threads have actually stopped.
10743
10744 2004-05-10  Jackson Harper  <jackson@ximian.com>
10745
10746         * locales.c: Remove the modifier from culture names.
10747         
10748 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10749
10750         * Makefile.am: monosn is not installed any more. It has been deprecated
10751         in favor of sn.
10752
10753 2004-05-07  Jackson Harper  <jackson@ximian.com>
10754
10755         * locales.c
10756         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10757         Fix array construction, add bailout if the length is 0.
10758
10759 2004-05-07  Dick Porter  <dick@ximian.com>
10760
10761         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10762         machine doesn't have a DNS entry.  Patch by Urs Muff
10763         (umuff@quark.com), fixes bug 57928.
10764
10765 2004-05-06  Jackson Harper  <jackson@ximian.com>
10766
10767         * reflection.c: Handle null PublicTokens properly. alloc mem for
10768         assembly names culture so we dont crash when freeing it.
10769         
10770 2004-05-06  Jackson Harper  <jackson@ximian.com>
10771
10772         * assembly.c: Check the usergac when loading with partial names.
10773         
10774 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10775
10776         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10777         does nothing for now (not required for Linux/Windows) but the class
10778         library can call it (and a newer or modified runtime could need it).
10779         * icall.c: Registred icall.
10780
10781 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10782
10783         * loader.c: prints a message on module loading error we set MONO_DEBUG
10784         environment variable.
10785
10786 2004-05-05  Jackson Harper  <jackson@ximian.com>
10787
10788         * appdomain.c: Handle PublicKeyToken=null properly.
10789         
10790 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10791
10792         * environment.c|h: Added icall ves_icall_System_Environment_
10793         GetOSVersionString to get the current OS version as a string.
10794         * icall.c: Registred icall.
10795
10796 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10797
10798         * object.c: in mono_object_get_virtual_method(), take into account that
10799         non-virtual methods don't have a slot in the vtable. Check needed when
10800         the object is a proxy.
10801
10802 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10803
10804         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10805         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10806
10807         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10808
10809         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10810         passed when a valuetype is expected.
10811
10812         * object.c (mono_unhandled_exception): Only set the exit code if the
10813         exception happens in the main thread. Fixes thread5.exe.
10814
10815         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10816         invalid names. Fixes #58047.
10817
10818 2004-05-03  Jackson Harper  <jackson@ximian.com>
10819
10820         * assembly.c: This line was committed accidently and is unneeded.
10821         
10822 2004-05-03  Jackson Harper  <jackson@ximian.com>
10823
10824         * icall.c: Add new icall for Assembly::LoadWithPartialName
10825         * assembly.c/.h: new function that probes the GAC to load partial
10826         assembly names by Paolo Molaro.
10827         
10828 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10829
10830         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10831         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10832         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10833         full type name.
10834
10835 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10836
10837         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10838         * reflection.c: fix bug when parsing a full type name and Version is not
10839         the last thing in the string.
10840
10841 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10842
10843         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10844         crashes when it is freed.
10845
10846 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10847
10848         * assembly.c: print the compat warning to stderr.
10849
10850 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10851
10852         * assembly.c (mono_assembly_load_references): Add a compatibility
10853         hack to run old applications that might be still referencing the
10854         3300-based assemblies, only do this for System.xxx.
10855
10856 2004-05-01  Jackson Harper  <jackson@ximian.com>
10857
10858         * appdomain.c: If the culture is neutral we set it to "".
10859         
10860 2004-04-29  Jackson Harper  <jackson@ximian.com>
10861
10862         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10863
10864 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10865  
10866         * string-icalls.c: added low overhead function for copying chars
10867         * icall.c: added needed icall for the above function
10868  
10869 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10870
10871         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10872         Environment.GetLogicalDrives.
10873
10874 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10875
10876         * rand.c: try and talk to egd or prngd
10877         for random bytes if opening devices fail.
10878
10879 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10880
10881         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10882         alignment for the type using the native alignment of its members 
10883         instead of using klass->min_align.
10884
10885         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10886
10887 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10888
10889         * file-io.c:
10890         * socket-io.c: added check for sys/aio.h.
10891
10892 2004-04-28  Dick Porter  <dick@ximian.com>
10893
10894         * threads.c: Don't abort a thread thats already aborting, when
10895         terminating everything.
10896
10897 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10898
10899         * icall.c: added 2 new async calls for Socket.
10900
10901         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10902         IO on *nix systems.
10903
10904         * threadpool.c: removed unused variable.
10905
10906 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10907
10908         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10909
10910 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10911
10912         * locales.c: put back string_invariant_tolower () and
10913         string_invariant_toupper ().
10914
10915 2004-04-26 David Waite <mass@akuma.org>
10916
10917         * file-io.h:
10918         * socket-io.h:
10919         * threads.h:
10920         * unicode.h: remove comma from end of enumeration declarations
10921
10922 2004-04-26 David Waite <mass@akuma.org>
10923
10924         * debug-mono-symfile.h:
10925         * decimal.c:
10926         * mono_debug.h:
10927         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
10928
10929
10930 2004-04-26  Jackson Harper  <jackson@ximian.com>
10931
10932         * appdomain.c: Increment version number.
10933         
10934 2004-04-26  Jackson Harper  <jackson@ximian.com>
10935
10936         * appdomain.c: Set assembly references public token value when
10937         PublicKeyToken is specified, not the hash_value. Free public token
10938         values when free assembly name data. Previously the public key
10939         token was hex decoded, however we are using hex encoded public key
10940         tokens, so this is not neccasary.
10941         * assembly.c: Lookup assemblies in the gac if their public token
10942         value is set. Add function to allow enabling user gac
10943         lookups. Specify whether or not the assembly was loaded from the
10944         GAC. Compare full assembly names when checking the cache for
10945         assemblies (Temporarily disabled see comment in code). Remove
10946         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
10947         specifies trace-loader they get extra info to stdout on the
10948         loading of assemblies.
10949         * image.h: Add a field for an assembly references public token
10950         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
10951         whether an assembly has been loaded from the GAC.
10952         * image.c: Remove a corlib -> mscorlib name mapping.
10953         * loader.h: Add function to enable/disable the user gac.
10954         * mono-config.c: Check if the usergac is enabled in the config
10955         file.
10956         * icall.c: New icall to determine whether or not an assembly has
10957         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
10958         * tabldefs.h: Add constant for assemblyref flag that specifies a
10959         full public key is used instead of a public token.
10960         * reflection.c: Remove mscorlib -> corlib mappings. Set
10961         PublicTokenValue instead of hash value. This value is a hex
10962         string so it does not need to be expanded.
10963
10964 2004-04-26  Martin Baulig  <martin@ximian.com>
10965
10966         * mono-debug-debugger.c (mono_debugger_initialize): Set
10967         `mono_debugger_initialized' before calling mono_debug_lock().
10968
10969 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
10970
10971         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
10972           InternalToUpper/InternalToLower.
10973         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
10974           removed invariant culture shortcut.  This is now done in managed code.
10975         * locales.c: (string_invariant_toupper/tolower) removed.
10976
10977 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10978
10979         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
10980         Added Poll internal call.
10981
10982         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
10983         call for Poll. Select was too heavy for polling a single socket.
10984
10985         * threadpool.[ch]: added mono_threadpool_cleanup.
10986         * threads.c: use it. Don't use Thread_Abort on windows.
10987
10988 2004-04-23  Martin Baulig  <martin@ximian.com>
10989
10990         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
10991
10992 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
10993
10994         * icall.c: Registred new icalls for key pair protection and added an
10995         icall for Environment.GetFolderPath on Windows.
10996         * security.c|h: Added new icalls for key pair protection.
10997
10998 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10999
11000         * socket-io.c: don't display the non-supported family warning for known
11001         families. Now this is not displayed on windows when checking support
11002         for IPv4/IPv6.
11003
11004 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11005
11006         * class.c: don't display the layout warning for static fields.
11007
11008 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11009
11010         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11011         * locales.c, locales.h: Added new icalls for culture-specific
11012         Char.ToLower and Char.ToUpper.
11013
11014 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11015
11016         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11017         by David Waite.
11018
11019 2004-04-20  Martin Baulig  <martin@ximian.com>
11020
11021         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11022         of the type name before passing it to mono_reflection_type_from_name().
11023
11024 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11025
11026         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11027         encodings here. Fixes #56965.
11028
11029 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11030
11031         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11032         fix test on strstr result not that I can see anything that
11033         relies on the result.
11034
11035 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11036
11037         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11038         Fixes #57081.
11039
11040         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11041
11042         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11043         function to determine which marshalling to use for strings. Fixes
11044         #56965.
11045
11046         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11047
11048         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11049
11050 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11051
11052         * icall.c: #include mono-config.h
11053
11054 2004-04-15  Jackson Harper  <jackson@ximian.com>
11055
11056         * culture-info-tables.h: Fix date formats for en-US culture.
11057         
11058 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11059
11060         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11061         ThreadPool.SetMinThreads.
11062         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11063         ThreadPool.SetMinThreads.
11064
11065 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11066
11067         * mono-config.c: also load the .config file in the directory
11068         where the assembly was found.
11069
11070 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11071
11072         * assembly.c: load per-assembly config files.
11073         * icall.c: decrapified code to get the config dir and moved to
11074         mono-config.c.
11075         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11076         per-assembly config files. When doing a dll map lookup give precedence
11077         to the per-assembly data.
11078
11079 2004-04-14  Martin Baulig  <martin@ximian.com>
11080
11081         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11082         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11083         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11084
11085         * mono-debugger-debugger.c: While the debugger is locked, remember
11086         whether the symbol tables have changes and send one single
11087         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11088
11089 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11090
11091         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11092
11093         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11094         function.
11095
11096         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11097         account when marshalling string arrays. Fixes #56965.
11098
11099 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11100
11101         * icall.c: Add new icalls mapping for security.
11102         * security.c|h: Add internal calls for WindowsIdentity,
11103         WindowsImpersonationContext and WindowsPrincipal.
11104
11105 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11106
11107         * class.c: Added comment to ensure the System.MonoDummy class
11108         is removed when no longer necessary
11109
11110 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11111
11112         * appdomain.c: Pass arguments to the bootstraping exceptions to
11113         minimize JITed methods at boot
11114
11115         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11116         second string to be null.
11117
11118         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11119         Change the protocol to minimize the JIT methods at startup.  Now
11120         it Returns the internal codepage, if the value of "int_code_page"
11121         is 1 at entry, and we can not compute a suitable code page
11122         number, returns the code page as a string.
11123
11124 2004-04-13  Jackson Harper  <jackson@ximian.com>
11125
11126         * culture-info-tables.h: Fix number of decimal digits for all
11127         english locales.
11128
11129 2004-04-13  Jackson Harper  <jackson@ximian.com>
11130
11131         * icall.c: Clairfy out of sync error message. It is not always
11132         your corlib that is out of sync.
11133
11134 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11135
11136         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11137         properties when only the set accessor is overriden. Fixes #55874.
11138
11139 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11140
11141         * assembly.c (mono_assembly_load_references): Make this thread safe.
11142         Fixes #56327.
11143
11144 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11145
11146         * monosn.c: Add missing initialization calls.
11147
11148 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11149
11150         * locales.c:
11151         ves_icall_System_Globalization_CultureInfo_construct_number_format
11152         Fix g_assert so it compiles on fussier compilers re int/ptr
11153         mismatch
11154
11155 2004-04-08  Dick Porter  <dick@ximian.com>
11156
11157         * socket-io.h:
11158         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11159         53992.  Also rearrange the code so that the internal calls return
11160         an error value and exceptions are thrown from managed code.
11161
11162         * icall.c: Add type info to the socket icalls.
11163
11164 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11165
11166         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11167         owes me a beer.
11168
11169 2004-04-07  Martin Baulig  <martin@ximian.com>
11170
11171         * class.c (mono_class_from_generic_parameter): Don't default
11172         `klass->parent' to `mono_defaults.object_type'.
11173
11174 2004-04-07  Martin Baulig  <martin@ximian.com>
11175
11176         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11177         `param->pklass->reflection_info'.       
11178
11179 2004-04-07  Jackson Harper  <jackson@ximian.com>
11180
11181         * culture-info-tables.h: Fix date separator symbol.
11182         
11183 2004-04-07  Martin Baulig  <martin@ximian.com>
11184
11185         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11186         from System.Type to System.MonoType.
11187
11188 2004-04-07  Martin Baulig  <martin@ximian.com>
11189
11190         * reflection.h
11191         (MonoReflectionGenericParam): Added `has_reference_type' and
11192         `has_value_type' fields.
11193
11194         * reflection.c (mono_image_get_generic_param_info): Encode the
11195         correct flags if we have the `class' or `struct' constraint.
11196
11197 2004-04-07  Martin Baulig  <martin@ximian.com>
11198
11199         * reflection.h
11200         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11201
11202 2004-04-07  Jackson Harper  <jackson@ximian.com>
11203
11204         * appdomain.c: Revert extra patches, just wanted to bump the
11205         version number.
11206         
11207 2004-04-07  Jackson Harper  <jackson@ximian.com>
11208
11209         * Makefile.am: Add culture-info private headers.
11210         * icall.c: Add new icalls for contructing locales.
11211         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11212         * locales.h: Declare new culture info construction methods.
11213         * object.h: Add new fields used to avoid the CultureMap to
11214         MonoCultureInfo.
11215         * culture-info.h: Definition of structs used in the culture info
11216         tables.
11217         * culture-info-tables.h: Autogenerated tables that contain culture
11218         info data. This file was generated with the locale-builder tool.
11219         * appdomain.c: Incement corlib version number.
11220         
11221 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11222
11223         * appdomain.c: (mono_runtime_init) move mono_thread_init
11224         to before mono_object_new calls so critical sections
11225         are initialized before use.
11226
11227 2004-04-07  Martin Baulig  <martin@ximian.com>
11228
11229         * icall.c
11230         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11231         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11232         (ves_icall_MonoGenericParam_initialize): Removed.
11233         (monogenericparam_icalls): Removed.
11234         (generictypeparambuilder_icalls): Added new table for
11235         System.Reflection.Emit.GenericTypeParameterBuilder.
11236
11237         * reflection.c
11238         (mono_reflection_define_generic_parameter): Removed.
11239         (mono_reflection_initialize_generic_parameter): This is now called
11240         from GenericTypeParameterBuilder's .ctor.
11241
11242 2004-04-06  Martin Baulig  <martin@ximian.com>
11243
11244         * class.c (mono_class_init): Don't inflate nested classes in a
11245         generic instance.
11246         (mono_type_get_name_recurse): Include the generic arguments for
11247         generic instances and generic type declarations.
11248         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11249         (_mono_class_get_instantiation_name): Removed.
11250         (mono_class_create_generic): Always use `gklass->name' as our name.
11251
11252         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11253
11254         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11255         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11256         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11257         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11258         closed generic methods here.
11259
11260         * reflection.c
11261         (mono_reflection_generic_inst_get_nested_types): Removed.
11262         (inflate_mono_method): Copy the generic parameters from the
11263         MonoMethodHeader into out MonoGenericMethod.
11264
11265 2004-04-06  Martin Baulig  <martin@ximian.com>
11266
11267         * row-indexes.h
11268         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11269
11270         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11271
11272         * reflection.c (build_compressed_metadata): If we have any entries
11273         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11274         set the header version to 1.1.
11275
11276 2004-04-06  Martin Baulig  <martin@ximian.com>
11277
11278         * class.c (mono_class_init): If we're a generic instance,
11279         initialize our nested classes, too.
11280         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11281         suffix. 
11282
11283 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11284
11285         * process.c: quote the argument passed to the shell on windows.
11286
11287 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11288
11289         * threads.c (mono_alloc_special_static_data): Allow this to be
11290         called during startup.
11291
11292 2004-04-02  Martin Baulig  <martin@ximian.com>
11293
11294         * icall.c
11295         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11296
11297 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11298
11299         * icall.c: Fix build.
11300
11301 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11302
11303         * Makefile.am: Added security.c|h.
11304         * icall.c: Added icall for get_UserName;
11305         * security.c: New file for security related icalls. Added function
11306         get_UserName for System.Environment (fix #56144).
11307         * security.h: New. Header file for security.c
11308
11309 2004-04-02  Dick Porter  <dick@ximian.com>
11310
11311         * icall.c: Deleted the icalls that were obsoleted some time ago
11312         by the ICU string code, and which were mixed into the icall
11313         rearranging.  Fixes bug 55969.
11314
11315         * string-icalls.h: 
11316         * string-icalls.c: Deleted the code that those icalls reference.
11317
11318 2004-04-01  Martin Baulig  <martin@ximian.com>
11319
11320         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11321
11322         * class.c (mono_class_from_generic_parameter): Don't set 
11323         TYPE_ATTRIBUTE_INTERFACE.
11324         (my_mono_class_from_generic_parameter): Likewise.
11325
11326 2004-04-01  Martin Baulig  <martin@ximian.com>
11327
11328         * loader.c (find_method): Added an optional `MonoClass *ic'
11329         argument to search in a specific interface.
11330         (mono_get_method_constrained): New public function.
11331
11332 2004-04-01  Martin Baulig  <martin@ximian.com>
11333
11334         * reflection.c (mono_image_get_generic_field_token): Use the
11335         `handleref' cache here.
11336
11337 2004-04-01  Martin Baulig  <martin@ximian.com>
11338
11339         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11340
11341         * reflection.c (create_generic_typespec): Use the `typespec' hash
11342         here, not the `typeref' one.    
11343
11344 2004-04-01  Martin Baulig  <martin@ximian.com>
11345
11346         * class.c (mono_class_inflate_generic_type): Moved the
11347         functionality into a new static inflate_generic_type() which
11348         returns NULL if it didn't do anything.  Only increment the
11349         `mono_stats.inflated_type_count' if we actually inflated
11350         something.
11351         (mono_class_get_full): Check the classes type to see whether we
11352         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11353
11354 2004-04-01  Jackson Harper  <jackson@ximian.com>
11355
11356         * reflection.c: Set culture for assembly references.
11357         
11358 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11359
11360         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11361
11362 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11363
11364         * assembly.c:
11365         (do_mono_assembly_open): the critical section also covers
11366         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11367
11368 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11369
11370         * threads.c:
11371         (mono_manage_threads): abort the background threads when finishing.
11372         Fixes bug #47232.
11373
11374 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11375
11376         * gc.c: only close the done_event handle if there was no timeout.
11377         C-ified comments.
11378
11379 2004-03-30  Martin Baulig  <martin@ximian.com>
11380
11381         * icall.c (icall_entries): It's called "System.Activator", not
11382         "System.Activation".    
11383
11384 2004-03-30  Martin Baulig  <martin@ximian.com>
11385
11386         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11387         (mono_class_create_from_typespec): Likewise.
11388
11389 2004-03-30  Martin Baulig  <martin@ximian.com>
11390
11391         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11392         `has_ctor_constraint' and `initialized'.
11393
11394 2004-03-30  Martin Baulig  <martin@ximian.com>
11395
11396         * reflection.c (encode_new_constraint): New static function to add
11397         the constructor constraint attribute to a type parameter.
11398         (encode_constraints): Call encode_new_constraint() if necessary.
11399
11400         * reflection.h
11401         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11402
11403         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11404         
11405 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11406
11407         * reflection.c, icall.c: add support for pinning variables. 
11408
11409 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11410
11411         * marshal.c (mono_marshal_get_managed_wrapper):
11412         init bool local with zero rather than null.
11413
11414 2004-03-29  Martin Baulig  <martin@ximian.com>
11415
11416         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11417         the "official" behavior here.
11418         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11419
11420 2004-03-29  Martin Baulig  <martin@ximian.com>
11421
11422         * icall.c: Reflect latest API changes.
11423
11424 2004-03-29  Martin Baulig  <martin@ximian.com>
11425
11426         * loader.c (mono_get_method_from_token): Also call
11427         mono_metadata_load_generic_params () for abstract and interface
11428         methods; replace the type arguments in the method signature with
11429         the ones which are loaded from the metadata.
11430
11431 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11432
11433         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11434         of the lock is not the current thread. MS.NET don't do it, in spite of
11435         what the documentation says. See bug #56157.
11436
11437 2004-03-28  Martin Baulig  <martin@ximian.com>
11438
11439         * class.c (mono_class_init): Don't call init_properties() and
11440         init_events() for generic instances; set `prop->parent' when
11441         inflating properties.
11442
11443         * reflection.c (mono_generic_inst_get_object): Call
11444         `mono_class_init (ginst->klass)'.
11445         (mono_type_get_object): Only create a MonoGenericInst if your
11446         generic type is a TypeBuilder.
11447         (do_mono_reflection_bind_generic_parameters): Only set
11448         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11449
11450 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11451
11452         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11453         Fixes #56091.
11454
11455 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11456
11457         * icall.c: added Kill_internal icall.
11458         * process.[ch]: added Kill_internal icall.
11459
11460 2004-03-25  Martin Baulig  <martin@ximian.com>
11461
11462         * class.h (MonoStats): Added `generic_instance_count',
11463         `inflated_method_count', `inflated_type_count' and
11464         `generics_metadata_size'.       
11465
11466 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11467
11468         * reflection.c: no warnings now.
11469
11470 2004-03-25  Martin Baulig  <martin@ximian.com>
11471
11472         * class.c (mono_class_get_full): New public function; does a
11473         mono_class_get(), but also takes a `MonoGenericContext *'.
11474
11475         * loader.c (mono_field_from_memberref): Renamed to
11476         `field_from_memberref', made static and added `MonoGenericContext *'
11477         argument.
11478         (mono_field_from_token): Added `MonoGenericInst *' argument.
11479         (method_from_memberef): Likewise.
11480         (mono_get_method_from_token): Likewise.
11481         (mono_get_method_full): New public function; does a
11482         mono_get_method(), but also takes a `MonoGenericContext *'.
11483
11484         * verify.c (mono_method_verify): Get the method's generic context
11485         and pass it to mono_field_from_token(), mono_get_method_full() and
11486         mono_class_get_full().
11487
11488 2004-03-25  Martin Baulig  <martin@ximian.com>
11489
11490         * class.c (mono_class_inflate_generic_type): Take a
11491         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11492         `MonoGenericMethod *'.
11493
11494 2004-03-25  Martin Baulig  <martin@ximian.com>
11495
11496         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11497         instead of the MonoGenericMethod here.
11498
11499 2004-03-25  Martin Baulig  <martin@ximian.com>
11500
11501         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11502         each time we create a new MonoGenericInst, we also create a new
11503         context which points back to us.
11504
11505         * class.c (inflate_method): Use `ginst->context' instead of
11506         creating a new context.
11507
11508         * loader.c (method_from_memberref): Use
11509         `klass->generic_inst->context' instead of creating a new context.
11510
11511 2004-03-25  Martin Baulig  <martin@ximian.com>
11512
11513         * class.h (MonoGenericContext): New struct.
11514         (MonoGenericMethod): Removed `generic_inst'.
11515
11516         * class.c (mono_class_inflate_generic_method): Take a
11517         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11518
11519 2004-03-25  Martin Baulig  <martin@ximian.com>
11520
11521         * loader.h (MonoMethodInflated): New typedef.
11522
11523         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11524         `generic_param_count' consume just 30 bits, added `is_inflated'
11525         and `has_type_parameters' flags (one bit each).
11526
11527         * class.c (mono_class_inflate_generic_method): Create a
11528         MonoMethodInflated instead of a MonoMethodNormal and set
11529         `is_inflated' in the method signature.
11530
11531         * class.h (MonoGenericMethod): Removed `generic_method'.
11532
11533 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11534
11535         * image.c: Make sure the name of a MonoImage is always an absolute path.
11536           This fixes bug #54415.
11537
11538 2004-03-24  Martin Baulig  <martin@ximian.com>
11539
11540         * class.c (mono_class_setup_vtable): If we're a generic instance,
11541         use our generic type's vtable size.
11542
11543 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11544
11545         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11546         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11547         problems.
11548
11549 2004-03-23  Martin Baulig  <martin@ximian.com>
11550
11551         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11552         `MonoEvent *events'.
11553
11554         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11555         (typebuilder_icalls): Added "get_event_info"; calls
11556         mono_reflection_event_builder_get_event_info(). 
11557
11558         * reflection.c (mono_reflection_generic_inst_initialize): Added
11559         `MonoArray *events'.
11560         (mono_reflection_event_builder_get_event_info): New function.
11561
11562 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11563
11564         * object.h: add mono_type_initialization_init
11565
11566         * object.c (mono_runtime_class_init): 
11567         implement class constructor synchronization rules
11568         to cope with threading issues.  
11569         add mono_type_initialization_init
11570
11571         * appdomain.c (mono_runtime_init): call 
11572         mono_type_initialization_init
11573
11574         * class.h: removing initializing field from MonoVTable
11575
11576 2004-03-23  Martin Baulig  <martin@ximian.com>
11577
11578         * class.c (my_mono_class_from_generic_parameter): Use
11579         `param->name' if it's not NULL. 
11580
11581 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11582
11583         * class.c: do not insert non-virtual methods in the vtable.
11584         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11585         that means the method is non-virtual. This never would have
11586         happened before.
11587
11588 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11589
11590         * profiler.c: Added lock for accessing coverage_hash.
11591
11592 2004-03-22  Martin Baulig  <martin@ximian.com>
11593
11594         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11595         `method->method->signature->generic_param_count != 0' to make it
11596         work for interface methods.
11597
11598 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11599
11600         * process.c: quote the string passed to the shell using g_shell_quote.
11601
11602 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11603
11604         * threads.c:
11605         (mono_threads_manage): don't remove the finalizer thread and self
11606         from the threads hash table so that mono_thread_manage can be called
11607         more than once.
11608
11609 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11610
11611         * process.c: quote the arguments when UseShellExecute is true. Fixes
11612         bug #55790.
11613
11614 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11615
11616         * threads.c: set mono_thread_detach as a cleanup routine for every
11617         thread. This way it's always executed upon thread termination, either
11618         aborted or finished normally. No more xsp hangs!
11619
11620 2004-03-17  Martin Baulig  <martin@ximian.com>
11621
11622         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11623         `int count_nested' and a `MonoType **nested'.
11624
11625         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11626         most of the functionality into a new static
11627         do_mono_reflection_bind_generic_parameters() and don't take a
11628         `MonoType *nested_in' argument any more.  Don't compute nested
11629         types here.
11630         (mono_reflection_generic_inst_get_nested_types): New public method
11631         to get nested types.
11632
11633         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11634         we're a nested class.
11635
11636         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11637         mono_reflection_generic_inst_get_nested_types() to compute the
11638         nested types.
11639
11640 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11641
11642         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11643         descriptive error message under windows.
11644         
11645 2004-03-17  Martin Baulig  <martin@ximian.com>
11646
11647         * class.c (dup_type): Added `const MonoType *original' argument;
11648         copy the attrs from the original type.
11649
11650 2004-03-17  Martin Baulig  <martin@ximian.com>
11651
11652         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11653         `m->generic_inst_cache' here.
11654
11655 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11656
11657         * exception.h exception.c: Add stack_overflow_exception.
11658
11659 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11660
11661         * threadpool.c:
11662         (overlapped_callback): call SetEvent *after* invoking the callback.
11663         No need to call CloseHandle.
11664
11665 2004-03-16  Martin Baulig  <martin@ximian.com>
11666
11667         * reflection.c (mono_image_get_fieldref_token): Take a
11668         `MonoReflectionField *' instead of a `MonoClassField *' and a
11669         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11670
11671 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11672
11673         * appdomain.c: don't add the culture to the filename we're looking for
11674         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11675
11676 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11677
11678         * locales.c: don't ignore symbols when doing case insensitive compares.
11679         Thanks Dick! Fixes bug #54046.
11680
11681         * threads.c: surround 'threads' usage with enter/leave in
11682         mono_thread_manage.
11683
11684 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11685
11686         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11687         implicitly marshalled as [Out]. Fixes #55450.
11688
11689         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11690         an exception.
11691
11692 2004-03-16  Martin Baulig  <martin@ximian.com>
11693
11694         * class.c (mono_class_from_generic_parameter): Use the actual
11695         parameter name. 
11696
11697 2004-03-16  Martin Baulig  <martin@ximian.com>
11698
11699         * reflection.c (type_get_signature_size): New static function.
11700         Compues the size of the type in a method signature.
11701         (method_get_signature_size): New static function; calls
11702         type_get_signature_size() to compute the actual size of the
11703         method's signature.
11704         (method_encode_signature): Use method_get_signature_size() to get
11705         the signature's size rather than using `nparams * 10'.
11706
11707 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11708
11709         * file-io.h: define here WapiOverlapped on windows. I don't want the
11710         regular OVERLAPPED one.
11711
11712         * file-io.c:
11713         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11714         Disabling AIO on windows.
11715
11716 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11717
11718         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11719         bug #55385.
11720
11721 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11722
11723         * appdomain.c: upgraded corlib version.
11724
11725         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11726         and BeginWrite. Allow opening files for asynchrnous operations.
11727
11728         * file-io.h: new struct that maps FileStreamAsyncResult.
11729         * icall.c: added new icalls.
11730         * process.[ch]: support setting child process environment variables
11731         and use the SHELL or COMSPEC when UseShellExecute is true.
11732
11733         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11734         callback for async. IO is here and also BindHandle.
11735
11736         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11737         from here.
11738
11739 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11740
11741         * reflection.c (create_custom_attr): Allow len == 0.
11742
11743         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11744         computation on big-endian machines.
11745
11746 2004-03-13  Martin Baulig  <martin@ximian.com>
11747
11748         * class.h (MonoGenericInst): Added `int count_ifaces'.
11749
11750         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11751         `ginst->count_ifaces' instead `klass->interface_count' since we
11752         may get called before the vtable is created.
11753
11754         * loader.c (mono_method_get_param_names): If we're a generic
11755         instance, return and don't initialize the class.
11756
11757         * reflection.c (mono_reflection_setup_generic_class): Don't call
11758         ensure_runtime_vtable().
11759         (mono_reflection_bind_generic_parameters): Set
11760         `ginst->count_ifaces'.
11761
11762 2004-03-11  Jackson Harper <jackson@ximian.com>
11763
11764         * icall.c:
11765         * unicode.c:
11766         * unicode.h: Remove unused System.Char icalls.
11767         
11768 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11769
11770         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11771         code when we P/Invoke the first library in Windows.Forms, instead
11772         of when we first open the assembly.
11773
11774         * assembly.c: Drop the lookup from here.
11775
11776 2004-03-10  Martin Baulig  <martin@ximian.com>
11777
11778         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11779         class for properties, fields and events.  Finally fixes #54945.
11780
11781 2004-03-10  Martin Baulig  <martin@ximian.com>
11782
11783         * metadata.c (mono_metadata_class_equal): New static function;
11784         checks whether two generic instances or two generic parameters are
11785         equal.
11786         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11787         compare classes.        
11788
11789 2004-03-10  Martin Baulig  <martin@ximian.com>
11790
11791         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11792
11793         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11794         argument and write it into the `reflection_info' field.
11795
11796         * icall.c
11797         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11798         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11799
11800 2004-03-09  Jackson Harper  <jackson@ximian.com>
11801
11802         * char-conversions.h: use 8 bits for numeric data its all we need
11803         * icall.c: numeric data is only 8 bits now.
11804
11805 2004-03-09  Martin Baulig  <martin@ximian.com>
11806
11807         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11808
11809         * class.c (init_properties, init_events): Initialize the new
11810         `parent' field.
11811
11812         * reflection.c (typebuilder_setup_properties): Likewise.
11813         (typebuilder_setup_events): Likewise.
11814
11815         * reflection.h (MonoEventInfo): Replaced `parent with
11816         `declaring_type' and `reflected_type'.
11817
11818         * icall.c (ves_icall_get_property_info): Distinguish between
11819         declaring and reflected type.
11820         (ves_icall_get_event_info): Likewise.
11821
11822 2004-03-09  Martin Baulig  <martin@ximian.com>
11823
11824         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11825         (ves_icall_Type_GetField): Correctly set field->klass.
11826
11827 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11828
11829         * loader.h: Fix warning.
11830
11831 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11832
11833         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11834         library routine if present.  Notice that it will still continue
11835         executing even if its missing, for those working on the Gtk#
11836         edition of Windows.Forms.
11837
11838         * assembly.c (do_mono_assembly_open): If loading the
11839         System.Windows.Forms call mono_loader_wini_init.
11840
11841 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11842
11843         * class.h: Added MonoRemoteClass struct.
11844         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11845         function for MonoStrings.
11846         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11847         Added internal call for getting the proxy type.
11848         * marshal.c: Get the type of transparent proxies from its remote_class.
11849         Added methods that generate the IL for type checks and casts:
11850         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11851         mono_marshal_get_proxy_cancast.
11852         * marshal.h: Declaration of the previous new methods.
11853         * object.c: Added new moethods for creating and updating MonoRemoteClass
11854         instances: mono_remote_class, mono_upgrade_remote_class, 
11855         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11856         * verify.c: FIx transparent_proxy_fields layout.
11857         * appdomain.c: Bump corlib version.
11858
11859 2004-03-04  Jackson Harper  <jackson@ximian.com>
11860
11861         * icall.c: Add icall to access char conversion tables.
11862         * char-conversions.h: Character conversion tables.
11863         * Makefile.am: Add char-conversions.h private header file.
11864         
11865 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11866
11867         * appdomain.c (unload_thread_main): Increase unloading timeout to
11868         10 sec as a temporary workaround for Nant problems.
11869
11870 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11871
11872         * gc.c: Add checks for GC_enable and GC_disable.
11873
11874         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11875         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11876         (bug #54988).
11877         
11878 2004-02-27  Martin Baulig  <martin@ximian.com>
11879
11880         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11881         `MonoReflectionType *' instead of a `MonoType *'.
11882
11883 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11884
11885         * gc.c (run_finalize): Avoid finalizing the object representing the
11886         finalizer thread.
11887         (finalizer_thread): Fix warning.
11888
11889 2004-02-25  Martin Baulig  <martin@ximian.com>
11890
11891         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11892         argument for nested types.
11893         (mono_class_create_generic): Added support for nested generictypes.
11894
11895         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11896         `GList *nested'.
11897
11898         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11899
11900         * reflection.c (method_encode_signature): Increase the minimum
11901         value of `size' from 10 to 11.
11902         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11903         and `MonoType **types' arguments instead of the `MonoArray
11904         *types'; added `MonoType *nested_in'.  Recursively instantiate
11905         nested classes. 
11906
11907 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11908
11909         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11910         stack_overflow_ex members which are used by exception handling.
11911
11912         * appdomain.c (mono_runtime_init): Initialize the new members.
11913
11914         * gc.c (mono_gc_enable): New helper function.
11915         * gc.c (mono_gc_disable): New helper function.
11916
11917 2004-02-23  Martin Baulig  <martin@ximian.com>
11918
11919         * icall.c: I must have been really stupid - make it actually work
11920         this time ;-)
11921
11922 2004-02-23  Martin Baulig  <martin@ximian.com>
11923
11924         * loader.c (method_from_memberref): Only inflate the method if
11925         it's in another klass.
11926
11927 2004-02-23  Martin Baulig  <martin@ximian.com>
11928
11929         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
11930         (mono_class_init): If we're a generic instance and an interface,
11931         compute `class->interface_id'; also create `class->interfaces'
11932         here and inflate them.
11933
11934         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
11935         `ginst->is_open'.
11936         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
11937
11938         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
11939
11940 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
11941
11942         * reflection.c (method_encode_code): Improved the error message
11943         generated by the exception.
11944
11945 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11946
11947         * icall.c: Martin did not do what he said in the ChangeLog for
11948         2004-02-18, but put back the changes for properties and events.
11949         Commenting those changes out again and adding comment to bug #54518.
11950         
11951         * process.c: removed warning.
11952
11953 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
11954
11955         * marshal.c (emit_struct_conv): Print an error message instead of
11956         asserting when a type does not have the StructLayout attribute.
11957
11958 2004-02-20  Martin Baulig  <martin@ximian.com>
11959
11960         * reflection.c (mono_type_get_object): Also use the cache for
11961         generic instances.
11962         (mono_reflection_bind_generic_parameters): Always compute
11963         `ginst->ifaces'.        
11964
11965 2004-02-20  Martin Baulig  <martin@ximian.com>
11966
11967         * class.h (MonoGenericMethod): Removed `klass'.
11968
11969         * class.c (mono_class_inflate_generic_method): Added `MonoClass
11970         *klass' argument.
11971
11972 2004-02-20  Martin Baulig  <martin@ximian.com>
11973
11974         * reflection.c (method_encode_methodspec): Actually use the
11975         uninflated signature for the memberref.
11976
11977 2004-02-20  Martin Baulig  <martin@ximian.com>
11978
11979         * class.h (MonoGenericMethod): Removed `declaring'.
11980
11981         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
11982         is NULL, compute it here.
11983
11984 2004-02-20  Martin Baulig  <martin@ximian.com>
11985
11986         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
11987
11988         * metadata.c (mono_metadata_generic_inst_hash): New method.
11989         (mono_metadata_generic_inst_equal): New method.
11990
11991         * reflection.c (mono_reflection_bind_generic_parameters): Use the
11992         `klass->image->generic_inst_cache' cache to avoid creating
11993         duplicate MonoGenericInst's.
11994
11995         * class.c (mono_class_inflate_generic_type): Use the cache.
11996
11997 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11998
11999         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12000
12001 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12002
12003         * icall.c: added Socket.WSAIoctl icall.
12004
12005         * socket-io.[ch]: implemented
12006         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12007
12008 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12009
12010         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12011
12012 2004-02-18  Urs C Muff  <umuff@quark.com>
12013
12014         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12015         this work on PPC and other big-endian architectures.
12016
12017         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12018         fields with an underscore to make sure they're only accessed by
12019         the read32() macro.
12020
12021 2004-02-18  Martin Baulig  <martin@ximian.com>
12022
12023         * icall.c: Put the klass->refclass changes back for methods and
12024         fields, but not for properties and events.  We're currently not
12025         distinguishing between DeclaringType and ReflectedType for
12026         properties and events, that's what caused the regressions.
12027
12028 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12029
12030         * object.c:
12031         (mono_async_result_new): the handle can be NULL.
12032
12033         * threadpool.c: Use an event instead of a semaphore, don't initialize
12034         it until needed. This saves quite a few semaphores from being created
12035         when using the threadpool.
12036
12037 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12038
12039         * object.c (mono_string_is_interned_lookup): Fix interning of long
12040         strings. Fixes #54473.
12041
12042         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12043
12044         * icall.c: Revert the klass->refclass changes since they introduce
12045         regressions (bug #54518).
12046
12047 2004-02-18  Martin Baulig  <martin@ximian.com>
12048
12049         * class.c (mono_class_init): If we're a generic instance and don't
12050         come from a TypeBuilder, inflate our members here.
12051         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12052         (mono_class_create_generic): New public method.
12053         (mono_class_initialize_generic): Removed.
12054         (get_instantiation_name): Renamed to
12055         _mono_class_get_instantiation_name() and made it public.
12056
12057 2004-02-18  Martin Baulig  <martin@ximian.com>
12058
12059         * class.c (mono_class_inflate_generic_type): Clear the new
12060         instance's `nginst->klass' when inflating a generic instance.
12061         (mono_class_is_subclass_of): Added (basic) support for generic
12062         instances.
12063
12064 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12065
12066         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12067         MonoMempool to hold compiled native code.
12068
12069 2004-02-17  Martin Baulig  <martin@ximian.com>
12070
12071         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12072         `properties'.
12073
12074         * reflection.c (mono_reflection_generic_inst_initialize): Added
12075         `MonoArray *properties' argument.
12076
12077         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12078
12079 2004-02-17  Martin Baulig  <martin@ximian.com>
12080
12081         * icall.c (ves_icall_Type_GetFields): Renamed to
12082         ves_icall_Type_GetFields_internal() and added a
12083         `MonoReflectionType *rtype' argument; pass it to
12084         mono_field_get_object() to set the field's "reflected" type.
12085         (ves_icall_Type_GetConstructors): Likewise.
12086         (ves_icall_Type_GetEvents): Likewise.
12087         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12088         argument; pass it to mono_method_get_object() to set the method's
12089         "reflected" type.       
12090
12091 2004-02-17  Martin Baulig  <martin@ximian.com>
12092
12093         * class.h (MonoDynamicGenericInst): New type.
12094         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12095
12096         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12097         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12098         (ves_icall_MonoGenericInst_GetFields): New interncall.
12099
12100         * class.c (mono_class_from_generic): Don't call
12101         mono_class_initialize_generic() if this is a dynamic instance;
12102         ie. it's being created from a TypeBuilder.
12103         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12104         `class->byval_arg.type'.
12105
12106         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12107         to `inflate_method' and made static.
12108         (mono_reflection_inflate_field): Removed.
12109         (mono_reflection_generic_inst_initialize): New public method.
12110
12111         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12112         `ctors' and `fields'; added `initialized'.
12113
12114 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12115
12116         * debug-helpers.c (mono_method_full_name): Fix output for empty
12117         namespaces.
12118
12119 2004-02-12  Martin Baulig  <martin@ximian.com>
12120
12121         * class.h (MonoClassField): Added `MonoType *generic_type'.
12122
12123         * reflection.c (mono_image_get_fieldref_token): Added support for
12124         instantiated generic types.
12125         (field_encode_inflated_field): Removed.
12126         (mono_image_get_inflated_field_token): Removed.
12127         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12128
12129         * reflection.h (MonoReflectionInflatedField): Removed.
12130
12131 2004-02-12  Martin Baulig  <martin@ximian.com>
12132
12133         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12134         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12135
12136         * reflection.c (mono_image_get_methodspec_token): Take a
12137         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12138         (mono_image_create_token): Check whether we have a
12139         `method->signature->gen_method' and call
12140         mono_image_get_methodspec_token() if appropriate.
12141         (inflated_method_get_object): Removed.
12142         (mono_reflection_bind_generic_method_parameters): Return a
12143         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12144         (mono_reflection_inflate_method_or_ctor): Likewise.
12145
12146         * reflection.h (MonoReflectionInflatedMethod): Removed.
12147
12148 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12149
12150         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12151         for custom valuetype marshalling.
12152
12153         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12154
12155 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12156
12157         * icall.c: fixed WSAGetLastError_internal name.
12158
12159 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12160
12161         * threads.c (mono_thread_attach): Allow this to be called multiple
12162         times for a thread.
12163         
12164         * threads.c (build_wait_tids): Do not wait for ourselves.
12165
12166         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12167         appdomain list is empty.
12168
12169         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12170         memory returned by mono_string_builder_to_utf16, since it points into
12171         managed memory. Thanks to Bernie Solomon for noticing this.
12172
12173         * icall.c: Add AppDomainSetup icalls.
12174
12175         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12176
12177         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12178         types.
12179
12180         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12181         custom attributes to the method_aux struct. Also fix array indexes etc.
12182
12183         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12184         
12185 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12186
12187         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12188         (both static and runtime) and reduce startup time.
12189
12190 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12191
12192         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12193         AsAny marshalling conversion instead of crashing.
12194
12195         * marshal.c: Fix warnings.
12196
12197 2004-02-09  Martin Baulig  <martin@ximian.com>
12198
12199         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12200
12201         * reflection.h (MonoReflectionInflatedMethod): Removed the
12202         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12203
12204         * reflection.c (method_encode_methodspec): Removed the `method'
12205         argument; we get it from `gmethod->declaring'.
12206         (inflated_method_get_object): Removed the `declaring' argument.
12207
12208 2004-02-09  Martin Baulig  <martin@ximian.com>
12209
12210         * class.h (MonoGenericMethod): New type.
12211         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12212         `generic_method'.
12213
12214         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12215         a `MonoGenericMethod *gen_method' one.
12216
12217         * class.c (mono_class_inflate_generic_type): Take an additional
12218         `MonoGenericMethod * argument.  This is only non-NULL if we're
12219         inflating types for a generic method.   
12220         (mono_class_inflate_generic_signature): Renamed to
12221         inflate_generic_signature() and made static; take a
12222         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12223         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12224         instead of a `MonoGenericInst *' one.
12225         (mono_class_inflate_generic_method): Likewise.
12226
12227         * reflection.c (encode_generic_method_sig): Take a
12228         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12229         (method_encode_methodspec): Likewise.
12230         (inflated_method_get_object): Likewise. 
12231
12232         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12233         field with a `MonoGenericMethod *gmethod' one.  
12234
12235 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12236
12237         * class.h (mono_class_has_parent): add parens to expansion
12238         so you can ! this.
12239
12240 2004-02-08  Martin Baulig  <martin@ximian.com>
12241
12242         * image.h (MonoImage): Removed `generics_cache'.
12243
12244         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12245         instead of a `MonoType *' argument; removed the `inflate_methods'
12246         argument.  Don't inflate methods here.
12247
12248         * loader.c (find_method): If it's a generic instance, call
12249         mono_class_init() on the `sclass->generic_inst->generic_type'.
12250
12251         * metadata.c (mono_type_size): Make this work on uninitialized
12252         generic instances; call it on the `ginst->generic_type's class.
12253
12254         * reflection.c (mono_reflection_bind_generic_parameters): Call
12255         mono_class_from_generic() to create the `ginst->klass'.
12256
12257 2004-02-08  Martin Baulig  <martin@ximian.com>
12258
12259         * class.h (MonoClass): Changed type of `generic_inst' from
12260         `MonoType *' to `MonoGenericInst *'.
12261
12262 2004-02-08  Martin Baulig  <martin@ximian.com>
12263
12264         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12265         mono_type_get_object(), this is now creating a `MonoGenericInst'
12266         for MONO_TYPE_GENERICINST.
12267         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12268         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12269
12270         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12271         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12272         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12273         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12274         and reflected type.
12275
12276         * reflection.h (MonoReflectionInflatedMethod): Removed
12277         `declaring_type' and `reflected_type'.
12278
12279 2004-02-08  Martin Baulig  <martin@ximian.com>
12280
12281         * class.h (MonoGenericInst): Added `MonoType *parent' and
12282         `MonoType **ifaces'.
12283
12284         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12285         `parent' and `interfaces'.
12286
12287         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12288         `MonoType *' argument and return a `MonoType *'.
12289
12290         * icall.c
12291         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12292         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12293
12294 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12295
12296         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12297         valuetype marshalling.
12298
12299 2004-02-06  Martin Baulig  <martin@ximian.com>
12300
12301         * class.c
12302         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12303         (my_mono_class_from_generic_parameter): Likewise.
12304
12305 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12306
12307         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12308         contents of the symbol files lazily.
12309
12310         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12311
12312         * threads.h threads.c icall.c: New icalls for getting and setting the
12313         threads name.
12314
12315 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12316
12317         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12318         Raise an exception when the domain is not found.
12319
12320 2004-02-03  Martin Baulig  <martin@ximian.com>
12321
12322         * reflection.c (mono_image_get_methodspec_token): Use the
12323         uninflated signature; fixes gen-33.
12324
12325 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12326
12327         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12328         the finalizer code can use thread functionality.
12329
12330         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12331         the finalizer thread.
12332
12333         * threads.c: Make some functions more robust.
12334
12335         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12336
12337         * metadata.h: Add new marshalling conventions.
12338
12339         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12340         stringbuilder marshalling. Fixes #53700.
12341
12342         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12343
12344         * reflection.c (mono_image_get_type_info): Save declarative security
12345         info.
12346
12347         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12348         unmanaged fields as well.
12349
12350         * appdomain.c: Bump corlib version.
12351
12352 2004-02-01  Martin Baulig  <martin@ximian.com>
12353
12354         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12355         method type arguments.  
12356
12357 2004-01-30  Duncan Mak  <duncan@ximian.com>
12358
12359         * marshal.h: Add prototype for
12360         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12361         and
12362         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12363         fix the build.
12364
12365 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12366
12367         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12368         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12369
12370 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12371
12372         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12373         custom marshalling of valuetypes.
12374
12375         * marshal.c: Fix some warnings.
12376
12377 2004-01-29  Martin Baulig  <martin@ximian.com>
12378
12379         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12380         for generic method parameters.
12381
12382         * reflection.c (method_encode_methodspec): Write the uninflated
12383         signature into the methodspec table.
12384         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12385         is always the uninflated method.
12386         (reflection_methodbuilder_to_mono_method): Copy the generic
12387         parameters from the MethodBuilder into `header->gen_params'.
12388
12389 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12390
12391         * class.c (mono_class_from_generic_parameter): Fix warning.
12392
12393 2004-01-27  Martin Baulig  <martin@ximian.com>
12394
12395         * class.c (mono_class_from_generic_parameter): Don't create
12396         `klass->methods' here.  
12397
12398 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12399
12400         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12401         extension since it does not work with libraries named lib<FOO>.dll.so.
12402
12403 2004-01-25  Martin Baulig  <martin@ximian.com>
12404
12405         * class.c (mono_class_inflate_generic_type): Added support for
12406         MONO_TYPE_GENERICINST.
12407
12408         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12409         inflate methods on open constructed types.      
12410
12411 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12412
12413         * object.c: fire ProcessExit event in the root AppDomain after running
12414         Main. Fixes bug #53299.
12415
12416 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12417
12418         * socket-io.c: include the new socket-wrappers.h header.
12419         Use the wrappers instead of the unix socket functions to make the code
12420         more clear.
12421
12422 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12423
12424         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12425
12426         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12427         Fixes #22532.
12428
12429 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12430
12431         * reflection.c (mono_image_create_pefile): Handle the case when the
12432         entry point is not a MethodBuilder.
12433
12434         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12435         field to ReflectionMethod since it is not allways a builder.
12436
12437         * reflection.c (type_get_fully_qualified_name): New helper function to
12438         return the fully qualified name of a type.
12439
12440         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12441         type name for custom marshallers.
12442
12443         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12444
12445         * class.c (mono_class_setup_vtable): If a parent class already 
12446         implements an interface, use the implementing methods from that class.
12447         Fixes #53148.
12448
12449 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12450
12451         * threadpool.c: just return instead of ExitThread to allow for thread
12452         clean up earlier.
12453
12454 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12455
12456         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12457         when closing resource modules.
12458
12459         * reflection.c (mono_image_create_pefile): Handle the case when the
12460         entry point is not a MethodBuilder.
12461
12462         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12463         field to ReflectionMethod since it is not allways a builder.
12464
12465 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12466
12467         * marshal.c (mono_marshal_get_managed_wrapper): 
12468         mono_marshal_alloc takes native int so CONV_I
12469         the arg for 64bits.
12470
12471 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12472
12473         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12474         tokens in the cattr table. Fixes #53108.
12475
12476 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12477
12478         * loader.c: don't trim ".dll" before looking up in the config file.
12479         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12480
12481 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12482
12483         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12484         Return the module which contains the resource as well.
12485         (ves_icall_System_Reflection_Module_Close): New icall.
12486
12487         * appdomain.c: Bump corlib version number.
12488
12489         * image.c (mono_image_addref): New public function.
12490
12491         * assembly.c: Call mono_image_addref.
12492
12493         * reflection.c (mono_module_get_object): Increase reference count of 
12494         the image.
12495
12496         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12497         Fixes #22532.
12498
12499         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12500         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12501         proper exceptions on DllImport problems.
12502
12503 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12504
12505         * class.c, metadata.c: eliminate CSIZE macro.
12506
12507 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12508
12509         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12510         * object.h: Added async_callback field in MonoAsyncResult.
12511         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12512         * verify.c: Added async_callback in MonoAsyncResult layout.
12513
12514 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12515
12516         * reflection.c (mono_reflection_get_custom_attrs): Add support
12517         for Modules.
12518
12519 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12520
12521         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12522         marshalling.
12523         (mono_marshal_method_from_wrapper): Add null pointer check.
12524
12525 2004-01-16  Martin Baulig  <martin@ximian.com>
12526
12527         * debug-mono-symfile.h: Set version number to 36 and reflect
12528         latest symbol writer changes.
12529
12530 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12531
12532         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12533         multi-dimensional arrays.
12534         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12535         (mono_class_from_mono_type): Use bounded_array_class_get.
12536         
12537         * class.c (mono_bounded_array_class_get): New function which takes
12538         a 'bounded' bool argument to distinguish vectors from one dimensional
12539         arrays.
12540
12541         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12542         bounded_array_class_get if the array has bounds.
12543
12544         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12545         Search modules loaded using AssemblyBuilder:AddModule as well.
12546
12547 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12548
12549         * appdomain.c: increased corlib version.
12550         * filewatcher.c: removed g_print.
12551         * icall.c:
12552         (get_property_info): only allocate what is actually requested.
12553         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12554
12555 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12556
12557         * Makefile.am: added filewatcher.[ch]
12558         * filewatcher.[ch]: FileSystemWatcher runtime support.
12559         * icall.c: added new FSW icalls.
12560
12561 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12562
12563         * string-icalls.c: fix stringbuilder regression as suggested by
12564         Iain McCoy <iain@mccoy.id.au>.
12565
12566 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12567
12568         * process.c (process_read_stringtable_block): Recognize '007f' as
12569         a language neutral stringtable block.
12570
12571 2004-01-12  Patrik Torstensson
12572
12573         * object.h (MonoStringBuilder) : Changed layout to support our
12574         new stringbuilder class.
12575         * marshal.c: Change marshalling to support the new layout of 
12576         string builder.
12577         * appdomain.c: increased version number because new layout of
12578         string builder.
12579
12580 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12581
12582         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12583         assembly name as an string instead of an AssemblyName, since it is
12584         easier to extract info from it.
12585
12586         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12587         the culture subdirectories too. Fixes #52231.
12588
12589 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12590
12591         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12592         It takes 2 new parameters with an optional name for the method to look
12593         for and case ignoring info.
12594
12595         * threadpool.c: removed unused variable.
12596
12597 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12598
12599         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12600         It takes 2 new parameters with an optional name for the property to look
12601         for and case ignoring info.
12602         Fixes bug #52753.
12603
12604 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12605
12606         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12607         Fix #52451.
12608
12609 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12610
12611         * appdomain.c:
12612         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12613         Fixes bug #52630.
12614
12615 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12616
12617         * reflection.c: Add support for more than one unmanaged resource.
12618
12619         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12620         in field->def_value, as done in all other cases.
12621
12622         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12623         TypeBuilders.
12624
12625         * reflection.c (mono_reflection_create_runtime_class): Remove 
12626         errorneous assignment to klass->element_class, since it is already
12627         done in mono_reflection_setup_internal_class.
12628
12629 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12630
12631         * gc.c: added missing LeaveCriticalSection.
12632         * icall.c: indented a couple of lines.
12633         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12634         if we call EndInvoke inside a callback. Fixes bug #52601.
12635
12636 2004-01-07  Martin Baulig  <martin@ximian.com>
12637
12638         * mono-debug-debugger.h
12639         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12640
12641 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12642
12643         * appdomain.c: Use messages in NotImplementedException.
12644
12645         * exception.c (mono_get_exception_not_implemented): Now this takes
12646         a message argument.
12647
12648         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12649         exception instead of g_asserting an aborting when something is not
12650         implemented.
12651
12652         Add some inline docs.
12653
12654 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12655
12656         * reflection.h: Update after changes to object layout.
12657
12658         * reflection.c: Implement saving of unmanaged aka win32 resources.
12659
12660         * appdomain.c: Bump version number.
12661
12662         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12663         Handle missing domains gracefully.
12664
12665 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12666
12667         * file-io.c : On Windows, there are much more invalid_path_chars.
12668
12669 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12670
12671         * class.h, object.c: prepare for GetType () speedup.
12672
12673 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12674
12675         * profiler.c: workaround for --profile null reference exception on
12676           cygwin. Patch by Patrik Torstensson.
12677
12678 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12679
12680         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12681         make work for unaligned access.
12682
12683 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12684
12685         * class.c: small cleanup (class->fields [i] -> field).
12686         * image.c: check address of metadata is valid.
12687
12688 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12689
12690         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12691         search the list of loaded assemblies.
12692
12693         * reflection.c (mono_reflection_type_from_name): Use 
12694         mono_assembly_loaded instead of mono_image_loaded.
12695
12696         * reflection.c: Fix warnings.
12697
12698 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12699
12700         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12701         is dynamic. This is needed since an assembly can contain both dynamic and
12702         non-dynamic images.
12703
12704         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12705         assembly->dynamic.
12706
12707         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12708
12709         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12710         to store modules loaded using AddModule.
12711
12712         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12713         on Modules.
12714
12715         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12716
12717         * reflection.c (mono_image_fill_export_table_from_module): New function to
12718         fill out the EXPORTEDTYPES table from a module.
12719
12720         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12721         into a separate function. Also handle loaded non-dynamic modules.
12722
12723         * reflection.c (mono_image_basic_init): Fix memory allocation.
12724
12725         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12726
12727         * assembly.c (mono_assembly_load_references): Make this public.
12728
12729 2003-12-19  Martin Baulig  <martin@ximian.com>
12730
12731         * class.c (mono_class_initialize_generic): Made this static, take
12732         a `MonoGenericInst *' instead of a `MonoClass *'.
12733         (mono_class_from_generic): Call mono_class_initialize_generic()
12734         unless we're already initialized or being called from
12735         do_mono_metadata_parse_generic_inst().
12736
12737         * class.h (MonoGenericInst): Added `initialized' and
12738         `init_pending' flags.
12739
12740         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12741         `mono_class_init (gklass)' or mono_class_initialize_generic()
12742         here; set `generic_inst->init_pending' while parsing the
12743         `type_argv'.
12744
12745 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12746
12747         * locales.c: include string.h for memxxx prototypes
12748
12749 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12750
12751         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12752         constructor when accessing literal fields.
12753
12754 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12755
12756         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12757
12758         * reflection.c (assembly_add_resource_manifest): New function to fill
12759         the MANIFESTRESOURCE table.
12760
12761         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12762
12763         * reflection.h: Update to changes in class layout.
12764
12765         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12766         Reenable call to mono_runtime_is_shutting_down ().
12767
12768         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12769         determine if the runtime is shutting down.
12770
12771 2003-12-16  Jackson Harper <jackson@ximian.com>
12772
12773         * icall.c: comment out call to mono_runtime_is_shutting_down to
12774         fix build.
12775         
12776 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12777
12778         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12779         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12780
12781 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12782
12783         * reflection.c: move definition of swap_with_size
12784         to before its first call
12785
12786 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12787
12788         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12789
12790         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12791         icall.
12792
12793         * object.c: Fix warnings.
12794
12795         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12796         members if FlattenHierarchy is set.
12797
12798         * reflection.c (mono_image_add_decl_security): New function to emit
12799         declarative security.
12800
12801         * reflection.h reflection.c: Add support for declarative security.
12802
12803         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12804         
12805 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12806
12807         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12808         
12809         * appdomain.c verify.c: Moved corlib version checking into its own
12810         function in appdomain.c since it needs to create vtables etc.
12811
12812 2003-12-13  Patrik Torstensson <p@rxc.se>
12813
12814         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12815         instead of unwrapped server.
12816
12817 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12818
12819         * verify.c (check_corlib): Fix field index.
12820
12821 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12822
12823         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12824         GetGacPath icall.
12825
12826 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12827
12828         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12829         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12830         cope with sizeof(size_t) != sizeof(guint32).
12831
12832 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12833
12834         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12835         in case of failure.
12836
12837 2003-12-10  Mark Crichton <crichton@gimp.org>
12838
12839         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12840         in managed code.
12841
12842         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12843
12844 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12845
12846         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12847         marked as deleted.
12848
12849 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12850
12851         * verify.c (check_corlib): Handle the case when the version field is 
12852         initialized by a static constructor.
12853
12854 2003-12-08  Patrik Torstensson  <p@rxc.se>
12855
12856     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12857
12858 2003-12-08  Martin Baulig  <martin@ximian.com>
12859
12860         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12861         a MonoReflectionGenericParameter, also take the parameter index
12862         and name as arguments.
12863         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12864         (ves_icall_MonoGenericParam_initialize): New interncall.
12865         (ves_icall_Type_make_byref_type): New interncall.
12866
12867         * reflection.h (MonoReflectionGenericParam): Derive from
12868         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12869         `index' fields.
12870
12871         * reflection.c (mono_reflection_define_generic_parameter): Create
12872         and return a new MonoReflectionGenericParam; don't initialize the
12873         constraints here.
12874         (mono_reflection_initialize_generic_parameter): New public method;
12875         initializes the constraints and creates the `param->pklass'.
12876
12877 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12878
12879         * reflection.h reflection.c: Use the new fields 'num_types', 
12880         'num_fields' and 'num_methods' to track the number of types etc.
12881
12882         * verify.c (check_corlib): Check corlib version number.
12883
12884 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12885
12886         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12887         function works on all methods.
12888
12889 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12890
12891         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12892         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12893         the custom_type_info flag of the transparent proxy.
12894         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12895         objects that supports IRemotingTypeInfo.
12896         * object.h: Added custom_type_info field in transparent proxy.
12897
12898 2003-12-06  Martin Baulig  <martin@ximian.com>
12899
12900         * class.c (mono_class_create_from_generic): Removed.
12901         (mono_class_from_generic): Check `ginst->klass' before doing
12902         anything else.  This is important to fully support "recursive"
12903         generic types.
12904
12905         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12906         empty `generic_inst->klass' before doing anything else.
12907
12908 2003-12-06  Dick Porter  <dick@ximian.com>
12909
12910         * verify.c: 
12911         * object.h:
12912         * icall.c:
12913         * locales.c: Use C structs to access class fields.  Don't do a
12914         conversion between MonoString and UChar because both are
12915         platform-endian UTF-16.  Compare now takes startindex and count
12916         parameters.  Add a char overload for IndexOf.  Speed up the
12917         invariant string IndexOf.
12918
12919 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12920
12921         * Makefile.am (monosn_LDADD): Fix parallel build.
12922
12923 2003-12-04  Martin Baulig  <martin@ximian.com>
12924
12925         * icall.c
12926         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12927         (ves_icall_Type_make_array_type): New interncall.       
12928
12929 2003-12-04  Martin Baulig  <martin@ximian.com>
12930
12931         * locales.c: also change it in the !HAVE_ICU case.
12932
12933 2003-12-04  Dick Porter  <dick@ximian.com>
12934
12935         * icall.c:
12936         * locales.c: construct_compareinfo is now in CompareInfo, not
12937         CultureInfo.
12938
12939 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
12940
12941         * image.c (mono_image_load_file_for_image): Cache loaded images in the
12942         image->files array.
12943
12944         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
12945         table as well.
12946
12947         * assembly.c (mono_assembly_load_references): Only load references
12948         once.
12949
12950         * class.c (mono_class_from_name): Avoid linear search of the 
12951         EXPORTEDTYPE table.
12952
12953         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
12954
12955 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
12956
12957         * image.h (MonoImage): Add 'field_cache' field.
12958
12959         * loader.c (mono_field_from_token): Cache field lookups.
12960         
12961         * reflection.c (mono_module_get_object): Fix name property.
12962
12963         * icall.c (ves_icall_get_enum_info): Update after changes to 
12964         mono_metadata_get_constant_index ().
12965
12966         * icall.c: Get rid of get_type_info icall, use a separate icall for
12967         each type property to avoid needless memory allocations. Fixes #51514.
12968
12969         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
12970         to avoid needless binary searches.
12971
12972         * class.c (class_compute_field_layout): Move the initialization of
12973         field->def_value to mono_class_vtable ().
12974
12975         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
12976         non-corlib types.
12977
12978         * object.c (mono_object_allocate): Make it inline.
12979
12980         * object.c (mono_object_allocate_spec): Make it inline.
12981         
12982 2003-12-02  Dick Porter  <dick@ximian.com>
12983
12984         * locales.c (create_NumberFormat): NumberFormatInfo construction.
12985         Patch by Mohammad DAMT (mdamt@cdl2000.com).
12986
12987 2003-12-01  Dick Porter  <dick@ximian.com>
12988
12989         * threads.c: Fix signature and call in CreateMutex and
12990         CreateEvent.
12991
12992 2003-12-01  Dick Porter  <dick@ximian.com>
12993
12994         * icall.c: 
12995         * locales.c: Implement string compares and searching
12996
12997         * object.h: Add extra Thread field
12998
12999 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13000
13001         * reflection.c (fixup_method): Add support for MonoCMethod.
13002
13003 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13004
13005         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13006
13007         * reflection.c (assembly_name_to_aname): Allow extra characters in
13008         assembly names. Fixes #51468.
13009
13010 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13011
13012         * exception.c (mono_exception_from_name_domain): New helper function.
13013
13014         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13015         exception object in the correct domain.
13016
13017         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13018         formatting + make a copy a the input data.
13019
13020         * loader.c (mono_get_method_from_token): Methods which contain
13021         native code do not have entries in the ImplMap.
13022
13023         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13024         Thanks to Gonzalo for spotting this.
13025         
13026         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13027         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13028
13029         * assembly.h (mono_assembly_load_from): Split the second part of 
13030         assembly loading into a new public function.
13031
13032         * exception.h (mono_get_exception_bad_image_format): New function.
13033
13034 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13035
13036         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13037         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13038         
13039         * icall.c: Add new icall for creating dynamic methods.
13040
13041         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13042
13043         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13044
13045         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13046         create a dynamic method.
13047
13048         * reflection.c (resolve_object): New helper function.
13049
13050         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13051         which manipulate it so they can also work on dynamic methods.
13052
13053         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13054         creating the MonoReflectionMethodAux structure if it is not needed.
13055         
13056         * reflection.h verify.c: Update after changes to object layout.
13057
13058         * reflection.c (method_builder_encode_signature): Fix compilation on
13059         gcc 2.95.x.
13060
13061 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13062
13063         * appdomain.h: Added support for context static fields. Added static_data
13064           field to MonoAppContext and renamed thread_static_fields to a more
13065           generic special_static_fields in MonoAppDomain, since it can now contain
13066           context static fields.
13067         * domain.c: Updated hashtable name.
13068         * object.c: Replaced field_is_thread_static() for a more generic
13069           field_is_special_static() which also checks for context static attribute.
13070           In mono_class_vtable(), added support for static context fields.
13071         * threads.c: Changed methods that manage thread static fields to more
13072           generic methods so they can be reused both for thread and context static
13073           data.
13074         * threads.h: Declared some new methods.
13075
13076 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13077
13078         * reflection.h: Update after changes to the managed types.
13079
13080         * reflection.c (encode_custom_modifiers): New helper function.
13081
13082         * reflection.c (method_encode_signature): Emit custom modifiers.
13083
13084         * reflection.c (field_encode_signature): Emit custom modifiers.
13085
13086 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13087
13088         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13089
13090         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13091         implementation.
13092
13093         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13094         icall.
13095
13096         * object.c (mono_field_get_value_object): New function.
13097
13098         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13099         specific.
13100
13101 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13102
13103         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13104         return a preallocated out-of-memory exception instance.
13105
13106         * object.c (out_of_memory): Use the new function.
13107
13108         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13109         flag is before the custom modifiers. Fixes #49802.
13110
13111 2003-11-16  Martin Baulig  <martin@ximian.com>
13112
13113         * class.c (mono_class_is_open_constructed_type): Implemented the
13114         MONO_TYPE_GENERICINST case.
13115
13116 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13117
13118         * assembly.c (mono_assembly_fill_assembly_name): New function to
13119         fill out the MonoAssemblyName structure.
13120         (mono_assembly_open): Use the new function.
13121
13122         * icall.c (fill_reflection_assembly_name): New helper function.
13123
13124         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13125         new function.
13126
13127         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13128
13129 2003-11-15  Martin Baulig  <martin@ximian.com>
13130
13131         * class.c (mono_class_is_open_constructed_type): New public
13132         function; checks whether a type is an open constructed type,
13133         ie. whether it still contains type parameters.
13134         (mono_class_inflate_generic_type): If we're a type parameter and
13135         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13136         type.
13137
13138         * class.h (MonoGenericInst): Added `guint32 is_open'.
13139
13140         * loader.c (method_from_methodspec): Check whether we're an open
13141         or closed constructed type and set `ginst->is_open'.
13142
13143         * reflection.c (mono_reflection_bind_generic_parameters): Check
13144         whether we're an open or closed constructed type and set
13145         `ginst->is_open'.
13146         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13147         from open constructed types.
13148
13149 2003-11-15  Martin Baulig  <martin@ximian.com>
13150
13151         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13152         a generic instance (instead of a generic type declaration) with
13153         unbound generic parameters, bind them to our actual types.
13154
13155 2003-11-14  Martin Baulig  <martin@ximian.com>
13156
13157         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13158
13159         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13160         an interface type, populate `res->interfaces' with instantiated
13161         versions of all the interfaces we inherit.
13162
13163 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13164
13165         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13166         when MONO_PATH is set but doesn't contain the install dir.
13167
13168 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13169
13170         * icall.c:
13171         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13172         it's also implemented in base classes. Fixes bug #50927.
13173
13174 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13175
13176         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13177         if this method is called from a finalizer. Fixes #50913.
13178
13179 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13180
13181         * threads.c: Implement VolatileRead/VolatileWrite
13182
13183         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13184
13185 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13186
13187         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13188         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13189         2.95.3.
13190
13191         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13192         from Peter Ross (pro@missioncriticalit.com).
13193         
13194 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13195
13196         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13197
13198 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13199
13200         * assembly.c (mono_assembly_load_references): Disable check because it
13201         triggers on older corlibs which lots of people have.
13202
13203 2003-11-12  Jackson Harper  <jackson@ximian.com>
13204
13205         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13206         load corlib.dll if mscorlib.dll is not found.
13207         * assembly.h: Remove corlib name define.
13208         * class.c:
13209         * domain.c:
13210         * image.c: Change corlib name to mscorlib.
13211         
13212 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13213
13214         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13215
13216 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13217
13218         * appdomain.h: Added loader_optimization here to sync with the C#
13219         code, and add disallow_binding_redirects field.
13220
13221 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13222
13223         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13224
13225         * reflection.c (mono_image_build_metadata): Fix crash on modules
13226         with no types.
13227
13228         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13229
13230         * icall.c (ves_icall_get_method_info): Return callingConvention as
13231         well.
13232
13233         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13234         namespaces from the EXPORTEDTYPE table as well.
13235
13236         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13237         from all modules inside the assembly.
13238         
13239 2003-11-11  Martin Baulig  <martin@ximian.com>
13240
13241         * reflection.c (mono_reflection_bind_generic_parameters): Make
13242         this work for interfaces.
13243
13244 2003-11-11  Martin Baulig  <martin@ximian.com>
13245
13246         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13247
13248 2003-11-11  Martin Baulig  <martin@ximian.com>
13249
13250         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13251         "MonoInflatedMethod" and "MonoInflatedCtor".
13252
13253 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13254
13255         * reflection.c (resolution_scope_from_image): Use the assembly table
13256         from the manifest module, since other modules don't have it.
13257
13258         * debug-helpers.c (mono_type_full_name): New helper function.
13259
13260         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13261
13262         * image.c (mono_image_load_file_for_image): New public function which
13263         is a replacement for the load_file_for_image in class.c.
13264
13265         * assembly.c (mono_assembly_load_module): A wrapper for the function
13266         above which does assembly association and reference loading too.
13267
13268         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13269
13270 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13271
13272         * appdomain.c: not all of the attributes for the full assembly name
13273         are required and the order doesn't matter. Fixes bug #50787.
13274
13275 2003-11-10  Dick Porter  <dick@ximian.com>
13276
13277         * locales.c: Use platform-endian UTF16
13278
13279 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13280
13281         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13282         
13283 2003-11-10  Martin Baulig  <martin@ximian.com>
13284
13285         * metadata.c
13286         (mono_metadata_load_generic_params): Make this actually work.
13287
13288         * reflection.c (mono_reflection_bind_generic_parameters): If our
13289         parent is a generic instance, pass all the `types' to it, no
13290         matter whether it has the same number of type parameters or not.
13291
13292 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13293
13294         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13295
13296         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13297         assignment code to this function so it gets called recursively for all
13298         modules.
13299
13300         * image.c (load_modules): Remove the assembly assignment since it is
13301         now done by mono_assembly_load_references.
13302         
13303         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13304         Add 'module' argument.
13305         (mono_module_get_types): New helper function.
13306         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13307
13308 2003-11-08  Martin Baulig  <martin@ximian.com>
13309
13310         * class.c (mono_class_inflate_generic_method): Interface method
13311         don't have a header.
13312
13313         * reflection.c (mono_image_get_methodspec_token): Take an
13314         additional `MonoGenericInst *' argument instead of reading it from
13315         the header; this is necessary to support interfaces.
13316         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13317         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13318         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13319         argument.
13320
13321         * reflection.h (MonoReflectionInflatedMethod): Added
13322         `MonoGenericInst *ginst'.
13323
13324 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13325
13326         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13327
13328 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13329
13330         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13331
13332 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13333
13334         * reflection.c 
13335         (reflection_methodbuilder_from_method_builder):
13336         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13337         initialize a ReflectionMethodBuilder structure.
13338         (mono_image_get_methodbuilder_token):
13339         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13340         tokens which point to types in another module inside the same assembly.
13341
13342         * reflection.c: Use the new helper functions.
13343         
13344         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13345
13346         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13347         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13348
13349         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13350         neccesary.
13351
13352         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13353         current module. Emit the manifest only for the main module.
13354
13355         * reflection.c (mono_image_create_token): Add assertion when a 
13356         memberref needs to be created.
13357
13358         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13359
13360         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13361         larger buffer for the custom attribute blob. Fixes #50637.
13362         
13363 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13364
13365         * threadpool.c: notify listener on async processing handles after
13366         invoking the async callback. Thanks to Zoltan.
13367
13368 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13369
13370         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13371         avoid code duplication.
13372
13373         * reflection.h (MonoDynamicImage): New type which is currently unused,
13374         but will be used through the ref.emit code in place of 
13375         MonoDynamicAssembly.
13376
13377         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13378         object layout.
13379
13380         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13381         a MonoDynamicImage instead of just a MonoImage.
13382         
13383         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13384         icalls to ModuleBuilder but keep their semantics, so they will work
13385         with moduleb->assemblyb. This will change later.
13386         
13387 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13388
13389         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13390         object layout.
13391
13392         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13393         main module, since it is now done by the managed code.
13394
13395 2003-11-03  Martin Baulig  <martin@ximian.com>
13396
13397         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13398         `ginst->klass' here.
13399         (method_encode_methodspec): Don't use the `ginst->generic_method's
13400         klass if it's a generic instance, use `ginst->klass' in this case.
13401
13402 2003-11-03  Martin Baulig  <martin@ximian.com>
13403
13404         * reflection.c (mono_image_get_generic_method_param_info):
13405         Removed, use mono_image_get_generic_param_info() instead.
13406         (mono_image_get_type_info): Write the GenericParam table before
13407         the Method table.  This is neccessary because in the GenericParam
13408         table, type parameters of the class (ie. '!0' etc.) must come
13409         before the ones from its generic methods (ie. '!!0' etc).
13410
13411 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13412
13413         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13414
13415 2003-11-02  Martin Baulig  <martin@ximian.com>
13416
13417         * reflection.c (create_generic_typespec): Take a
13418         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13419         the generic parameters from it.
13420
13421 2003-11-02  Martin Baulig  <martin@ximian.com>
13422
13423         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13424         instead of a `MonoClassField *' since we just need the type.
13425         (create_generic_typespec): New static function.  Creates a
13426         TypeSpec token for a generic type declaration.
13427         (mono_image_get_generic_field_token): New static function.
13428         (mono_image_create_token): If we're a FieldBuilder in a generic
13429         type declaration, call mono_image_get_generic_field_token() to get
13430         the token.
13431
13432 2003-11-02  Martin Baulig  <martin@ximian.com>
13433
13434         * reflection.h
13435         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13436         `MonoReflectionGenericInst *declaring_type' and
13437         `MonoReflectionGenericInst *reflected_type' fields.
13438
13439         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13440         `MonoReflectionGenericInst *declaring_type' and a
13441         `MonoReflectionGenericInst *reflected_type' argument instead of a
13442         single `MonoReflectionGenericInst *type' one.  Set
13443         `res->declaring_type' and `res->reflected_type' from them.
13444         (mono_reflection_inflate_field): Likewise.      
13445
13446 2003-11-02  Martin Baulig  <martin@ximian.com>
13447
13448         * class.c (mono_class_setup_vtable): Don't store generic methods
13449         in the vtable.  
13450
13451 2003-11-02  Martin Baulig  <martin@ximian.com>
13452
13453         * reflection.h (MonoReflectionGenericInst): Added
13454         `MonoReflectionType *declaring_type'.
13455
13456         * reflection.c (mono_reflection_bind_generic_parameters): Use
13457         `if (tb->parent)' instead of `klass->parent'.
13458
13459 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13460
13461         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13462         with an empty ASSEMBLY table.
13463
13464         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13465         variable in the inner and outer loops.
13466
13467 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13468
13469         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13470         argument.
13471
13472         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13473         
13474         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13475         icalls. Instead, do everything in managed code. This is needed since
13476         it is hard to restore the original domain etc. in unmanaged code in the
13477         presence of undeniable exceptions.
13478
13479         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13480         New icalls to push and pop appdomain refs.
13481
13482 2003-10-31  Martin Baulig  <martin@ximian.com>
13483
13484         * class.c (inflate_generic_type): Renamed to
13485         mono_class_inflate_generic_type() and made it public.
13486
13487         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13488         New interncall.
13489
13490         * loader.c (mono_field_from_memberref): Also set the retklass for
13491         typespecs.
13492
13493         * fielder.c (mono_image_get_inflated_field_token): New static
13494         method; creates a metadata token for an inflated field.
13495         (mono_image_create_token, fixup_method): Added support for
13496         "MonoInflatedField".
13497         (fieldbuilder_to_mono_class_field): New static function.
13498         (mono_reflection_inflate_field): New public function.
13499
13500         * reflection.h
13501         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13502         (MonoReflectionInflatedField): New typedef.     
13503
13504 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13505
13506         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13507         for Solaris and other platforms without s6_addr16
13508
13509 2003-10-30  Martin Baulig  <martin@ximian.com>
13510
13511         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13512         argument instead of two.
13513         (mono_class_inflate_generic_signature): Likewise.
13514         (inflate_generic_header): Likewise.
13515         (mono_class_inflate_generic_method): Likewise.  In addition, if
13516         `ginst->klass' is set, it becomes the new `method->klass'.
13517
13518         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13519         field.
13520
13521         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13522         first byte. [FIXME]
13523         (method_encode_methodspec): If we have generic parameters, create
13524         a MethodSpec instead of a MethodRef.
13525         (fixup_method): Added support for "MonoInflatedMethod" and
13526         "MonoInflatedCtor".
13527         (mono_image_create_token): Added support for "MonoInflatedMethod"
13528         and "MonoInflatedCtor".
13529         (inflated_method_get_object): New static function; returns a
13530         managed "System.Reflection.MonoInflatedMethod" object.
13531         (mono_reflection_bind_generic_method_parameters): Return a
13532         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13533         (mono_reflection_inflate_method_or_ctor): Likewise.
13534         (mono_image_get_generic_method_param_info): Initialize unused
13535         fields to zero.
13536         (mono_image_get_generic_param_info): Likewise.
13537
13538         * reflection.h (MonoReflectionInflatedMethod): New public
13539         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13540         "S.R.MonoInflatedCtor" classes.
13541
13542         * loader.c (method_from_memberref): If we're a TypeSpec and it
13543         resolves to a generic instance, inflate the method.
13544
13545 2003-10-28  Dick Porter  <dick@ximian.com>
13546
13547         * object.c (mono_runtime_run_main): Convert command-line arguments
13548         into utf8, falling back to the user's locale encoding to do so.
13549
13550 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13551
13552         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13553         at this time.
13554
13555         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13556
13557         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13558         up icalls at method definition time. Partially fixes #33569.
13559
13560 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13561
13562         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13563         marshalling of arrays. Fixes #50116.
13564
13565         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13566
13567         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13568         points to a vtable in the dying appdomain.
13569
13570         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13571         listeners into unmanaged code inside the lock.
13572
13573         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13574         domains and add some comments.
13575
13576 2003-10-25  Martin Baulig  <martin@ximian.com>
13577
13578         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13579
13580         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13581
13582         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13583         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13584         currently parsing.  Create the generic class and store it in
13585         `generic_inst->klass' before parsing the type arguments.  This is
13586         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13587         for an example.
13588         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13589         to support recursive typespec entries.
13590
13591         * class.c (mono_class_setup_parent): If our parent is a generic
13592         instance, we may get called before it has its name set.
13593         (mono_class_from_generic): Splitted into
13594         mono_class_create_from_generic() and mono_class_initialize_generic().
13595
13596 2003-10-25  Martin Baulig  <martin@ximian.com>
13597
13598         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13599         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13600         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13601         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13602
13603         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13604         (create_typespec): Likewise.
13605         (mono_reflection_bind_generic_parameters): Return a
13606         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13607         (mono_reflection_inflate_method_or_ctor): New public function.
13608
13609         * reflection.h (MonoReflectionGenericInst): New typedef.        
13610
13611 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13612
13613         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13614         inside the domain lock. Fixes #49993.
13615         
13616         * object.c (mono_class_vtable): When typed allocation is used, 
13617         allocate vtables in the GC heap instead of in the mempool, since the
13618         vtables contain GC descriptors which are used by the collector even
13619         after the domain owning the mempool is unloaded.
13620
13621         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13622
13623         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13624         reflect what it does. Also invalidate mempools instead of freeing
13625         them if a define is set.
13626
13627         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13628         of the appdomain.
13629         
13630         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13631         hold the finalizable objects in this domain.
13632
13633         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13634         appdomain.
13635
13636         * appdomain.c (mono_domain_set): New function to set the current
13637         appdomain, but only if it is not being unloaded.
13638
13639         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13640         appdomain which is being unloaded.
13641         
13642         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13643         unloading of the root appdomain.
13644
13645         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13646         icall to execute a method in another appdomain. Intended as a 
13647         replacement for InternalSetDomain, which can confuse the code 
13648         generation in the JIT.
13649
13650         * appdomain.c (mono_domain_is_unloading): New function to determine
13651         whenever an appdomain is unloading.
13652
13653         * appdomain.c (mono_domain_unload): New function to correctly unload
13654         an appdomain.
13655
13656         * assembly.c (mono_assembly_load_references): Check that an assembly
13657         does not references itself.
13658
13659         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13660         domain manually, it asks the finalizer thread to do it, then waits for
13661         the result. Also added a timeout.
13662
13663         * icall.c: Register the new icalls.
13664
13665         * threads.h threads.c: Export the mono_gc_stop_world and 
13666         mono_gc_start_world functions.
13667         
13668         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13669         function to fill out the mempool with 0x2a.
13670
13671 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13672
13673         * reflection.h (MonoReflectionMethodAux): New structure to store
13674         information which is rarely used, thus is not in the MonoMethod
13675         structure.
13676
13677         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13678         store the aux info.
13679
13680         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13681         and marshalling info into the aux structure.
13682
13683         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13684         from the aux structure.
13685
13686         * loader.c (mono_method_get_param_names): Retrieve the param names from
13687         the aux structure.
13688         
13689 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13690
13691         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13692         warning.
13693
13694 2003-10-21  Dick Porter  <dick@ximian.com>
13695
13696         * socket-io.c
13697         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13698         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13699
13700 2003-10-21  Martin Baulig  <martin@ximian.com>
13701
13702         * reflection.c (mono_reflection_bind_generic_parameters):
13703         `klass->parent' is NULL for interfaces.
13704
13705 2003-10-21  Martin Baulig  <martin@ximian.com>
13706
13707         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13708
13709 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13710
13711         * exception.c (mono_exception_from_name_msg): New helper function for
13712         creating exceptions and initializing their message field.
13713
13714         * exception.c: Simplify functions using the new helper.
13715
13716         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13717         New function.
13718
13719         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13720         mono_raise_exception, since otherwise gcc doesn't generate the function
13721         epilog for raise_exception, confusing the stack unwinding in the JIT.
13722         Fixes #45043.
13723
13724         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13725         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13726         Fixes #49499.
13727
13728 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13729
13730         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13731         utf8.
13732
13733 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13734
13735         * icall.c: Removed GetUninitializedObject method because
13736           AllocateUninitializedClassInstance does the same.
13737
13738 2003-10-18  Martin Baulig  <martin@ximian.com>
13739
13740         * class.c (inflate_generic_signature): Renamed to
13741         mono_class_inflate_generic_signature() and made it public.
13742         (my_mono_class_from_generic_parameter): New static function; if we
13743         don't already have the generic parameter's MonoClass, create a
13744         very simple one which is just used internally in the runtime and
13745         not passed back to managed code.
13746
13747         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13748
13749         * metadata.h (MonoMethodSignature): Moved the
13750         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13751         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13752
13753         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13754         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13755         interncall on the MonoMethod class, not on MethodInfo.
13756         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13757         calling mono_reflection_bind_generic_method_parameters() directly.
13758
13759         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13760         return the already computed `method->signature'.
13761         (method_from_methodspec): New static function to load a method
13762         from a MethodSpec entry.
13763         (mono_get_method_from_token): Call the new method_from_methodspec()
13764         for MethodSpec tokens.  
13765         (mono_get_method_from_token): If we're a generic method, load the
13766         type parameters.
13767
13768         * reflection.c (mono_image_get_memberref_token): Allow
13769         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13770         table.
13771         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13772         (mono_image_create_token): First check whether it's a generic
13773         method (so we'd need to create a MethodSpec), then do the other
13774         two alternatives.
13775         (mono_reflection_bind_generic_method_parameters): Return a
13776         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13777         called directly from the interncall.
13778
13779 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13780
13781         * reflection.c (load_public_key): Move loading of the public key
13782         into managed code.
13783
13784         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13785
13786         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13787         fields.
13788
13789         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13790         culture, hash_alg and public_key. Fixes #49555.
13791
13792 2003-10-17  Martin Baulig  <martin@ximian.com>
13793
13794         * class.h (MonoGenericInst): Moved this declaration here and added
13795         `MonoMethod *generic_method'.
13796
13797         * icall.c
13798         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13799         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13800
13801         * metadata.c (mono_metadata_type_equal): Two types of
13802         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13803         index; ie. don't compare the address of the `MonoGenericParam'
13804         structure.
13805         (mono_metadata_load_generic_params): Removed the `MonoMethod
13806         *method' argument.
13807
13808         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13809         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13810
13811         * reflection.c (method_encode_signature): Encode the number of
13812         generic parameters.
13813         (encode_generic_method_sig): New static function.
13814         (method_encode_methodspec): New static function; creates an entry
13815         in the MethodSpec table for a generic method.
13816         (mono_image_get_methodspec_token): New static function.
13817         (mono_image_create_token): Call mono_image_get_methodspec_token()
13818         for generic methods.
13819         (mono_reflection_bind_generic_method_parameters): New public
13820         function.  Instantiates a generic method.
13821
13822 2003-10-16  Martin Baulig  <martin@ximian.com>
13823
13824         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13825         *gen_params' here from MonoMethodHeader.
13826
13827         * metadata.c (mono_metadata_parse_method_signature): If we have
13828         generic parameters, initialize `method->gen_params' and then set
13829         the correct `type->data.generic_param' in all the parameters.
13830
13831 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13832
13833         * threads.c (mono_threads_get_default_stacksize): New function to 
13834         return the default stacksize.
13835
13836         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13837         termination of the finalizer thread, since the previous method had
13838         race conditions. Fixes #49628.
13839
13840         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13841         as for the other managed threads.
13842
13843 2003-10-16  Martin Baulig  <martin@ximian.com>
13844
13845         * class.c (inflate_generic_signature): Copy `generic_param_count'
13846         and `gen_params'.
13847
13848         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13849         New interncall.
13850
13851         * metadata.c (mono_metadata_parse_method_signature): Actually set
13852         the `method->generic_param_count' here.
13853         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13854
13855 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13856
13857         * object.h: Add a new field to TypedRef to simplify the implementation
13858         of the REFANY opcodes in the JIT.
13859
13860         * icall.c: Make use of the new field.
13861
13862         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13863         dynamically.
13864
13865 2003-10-15  Martin Baulig  <martin@ximian.com>
13866
13867         * class.c (mono_class_from_gen_param): Renamed to
13868         mono_class_from_generic_parameter() and moved most of the
13869         functionality from mono_reflection_define_generic_parameter()
13870         here; ie. we create a "real" class here.
13871         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13872         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13873         previously been called.
13874
13875         * class.h (MonoGenericParam): Moved the declaration of this struct
13876         here from metadata.h and added `MonoMethod *method'.
13877
13878         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13879         interncall.
13880
13881         * loader.c (mono_get_method_from_token): If we have any generic
13882         parameters, call mono_metadata_load_generic_params() to read them
13883         from the MONO_TABLE_GENERICPAR.
13884
13885         * metadata.c (mono_metadata_load_generic_params): Added
13886         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13887
13888         * metadata.h (MonoMethodSignature): Replaced
13889         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13890         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13891
13892         * reflection.c (mono_reflection_define_generic_parameter): Moved
13893         most of the functionality into the new
13894         mono_class_from_generic_parameter(); set the `method' field if
13895         we're a method parameter.       
13896
13897 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13898
13899         * marshal.c (emit_struct_conv): if native size is 0
13900         emit no code.
13901
13902 2003-10-14  Martin Baulig  <martin@ximian.com>
13903
13904         * icall.c: The generics API has changed in the spec since it was
13905         added to System.Type; these modifications make it match the spec
13906         again.
13907         (ves_icall_Type_GetGenericParameters): Renamed to
13908         `ves_icall_Type_GetGenericArguments'.
13909         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13910         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13911         `ves_icall_MonoType_get_HasGenericArguments'.
13912         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13913         `ves_icall_MonoType_get_IsGenericParameter'.
13914         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13915         this is no interncall anymore.
13916         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13917         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13918
13919 2003-10-14  Martin Baulig  <martin@ximian.com>
13920
13921         * reflection.c (mono_reflection_bind_generic_parameters): Also
13922         inflate generic methods if we're reading the class from IL.
13923
13924 2003-10-13  Martin Baulig  <martin@ximian.com>
13925
13926         * reflection.c (mono_reflection_define_generic_parameter): This
13927         method isn't called directly from the icall anymore; take a
13928         `MonoReflectionAssemblyBuilder *' so we can use this for type and
13929         method generic parameters.
13930         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
13931         (method_builder_encode_signature): Encode generic parameters.
13932         (mono_image_get_method_info): Write generic params to the
13933         MONO_TABLE_GENERICPARAM table.
13934
13935         * reflection.h (MonoReflectionMethodBuilder): Added
13936         `MonoArray *generic_params'.
13937
13938         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
13939
13940         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
13941         wrapper for mono_reflection_define_generic_parameter().
13942         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
13943
13944 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
13945
13946         * marshal.h: Add missing function to fix build.
13947
13948         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
13949         the SetLastError pinvoke attribute.
13950
13951         * marshal.c (mono_marshal_set_last_error): New helper function called
13952         by the generated code.
13953         
13954         * marshal.c (mono_mb_emit_branch): New helper function.
13955
13956         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
13957
13958         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13959         classes as parameters and return values of delegates. Fixes #29256. 
13960
13961 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
13962
13963         * locales.c: use gint32 in non HAVE_ICU case
13964
13965 2003-10-11  Martin Baulig  <martin@ximian.com>
13966
13967         * mono-debug.c (mono_debug_add_method): Added a workaround for
13968         bug #48591.
13969
13970 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
13971
13972         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
13973         delegates passed to native code must use the STDCALL calling 
13974         convention. Fixes #35987.
13975
13976 2003-10-10  Martin Baulig  <martin@ximian.com>
13977
13978         * class.c (inflate_generic_type): If we're inflating for a generic
13979         type instance (and not for a generic method), return
13980         MONO_TYPE_MVAR unchanged.
13981
13982 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13983
13984         * string-icalls.c: Join ignores null strings in the source array.
13985         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
13986         * threads.c: GetAvailableTheads is slightly more accurate.
13987
13988 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
13989
13990         * threads.h threads.c : add mono_threads_set_default_stacksize
13991         and pass default to CreateThread calls.
13992
13993 2003-10-09  Dick Porter  <dick@ximian.com>
13994
13995         * icall.c:
13996         * locales.h:
13997         * locales.c: Internal calls for constructing CultureInfo and
13998         related objects from libicu (if its available.)
13999
14000 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14001
14002         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14003
14004 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14005
14006         * threadpool.c: added an argument to async_invoke_thread that is the
14007         item to process, pass the MonoAsyncResult to the thread start function
14008         when creating a new thread. This way we don't need to acquire any lock
14009         when we're creating a new thread. Readded a semaphore for faster
14010         response times (instead of that Sleep i added).
14011
14012 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14013
14014         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14015         get daylight change dates better on Windows, fix handling
14016         of platforms without tm_gmtoff.
14017
14018 2003-10-06  Martin Baulig  <martin@ximian.com>
14019
14020         * class.c (inflate_generic_method): Renamed to
14021         mono_class_inflate_generic_method() and made public.
14022         (mono_class_init): Don't inflate the generic methods here.
14023         (mono_class_from_generic): Added `gboolean inflate_methods'
14024         argument.  Inflate the methods here.
14025
14026         * loader.c (mono_method_get_param_names): Ignore instances of
14027         generic types for the moment.
14028
14029         * reflection.c (fixup_method): Added support for inflated methods.
14030         (mono_image_create_token): Use mono_image_get_methodref_token()
14031         for inflated methods.
14032         (mono_custom_attrs_from_param): Ignore instances of generic types
14033         for the moment.
14034         (mono_reflection_bind_generic_parameters): New public function.
14035         Moved all the functionality from
14036         ves_icall_Type_BindGenericParameters() here and added support for
14037         dynamic types.
14038         (mono_reflection_define_generic_parameter): Initialize
14039         `klass->methods' here.
14040
14041         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14042         functionality into mono_reflection_define_generic_parameter().
14043         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14044         TypeBuilder, return that TypeBuilder.
14045
14046 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14047
14048         * appdomain.c: removed mono_delegate_semaphore.
14049
14050         * threadpool.c:
14051         (mono_thread_pool_add): moved hash table creation inside and the thread 
14052         creation outside of the critical region.
14053         (mono_thread_pool_finish): removed obsolete code.
14054         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14055         continue or exit the thread depending on the queue.
14056
14057 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14058
14059         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14060         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14061         handle more bool marshalling options
14062
14063 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14064
14065         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14066         arrays of structs. Also add a more descriptive error message when
14067         a structure member is marshalled as LPArray.
14068
14069 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14070
14071         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14072         marshalling arrays of complex types. Fixes #29098. Also remove an
14073         usused and incomplete function.
14074
14075 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14076
14077         * gc.c: report heap_size - free_bytes as total memory allocated
14078         (bug#49362).
14079
14080 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14081
14082         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14083         fix timezone handling problems on Windows.
14084         
14085         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14086         asserts when the year is outside the range handled by ms the functions.
14087
14088         * class.c (setup_interface_offsets): If the class is an interface,
14089         fill out its interface_offsets slot.
14090
14091 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14092
14093         * threadpool.c: mark threadpool threads as background.
14094
14095 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14096
14097         * decimal.c - define DECINLINE to nothing if not using GCC
14098
14099 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14100
14101         * assembly.c: More refcount fixes.
14102
14103 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14104
14105         * string-icalls.c: if we're not trimming, return the same string.
14106         When not splitting, don't create a new string.
14107
14108 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14109
14110         * image.c:
14111         (mono_image_open): increment the ref_count inside the critical section.
14112
14113 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14114
14115         * image.c (mono_image_open): Fix reference counting bug.
14116
14117 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14118
14119         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14120         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14121         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14122         mono_lookup_pinvoke_call throws.        
14123
14124 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14125
14126         * reflection.c (mono_reflection_parse_type): Fix #49114.
14127
14128         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14129         temporary workaround for cygwin header problem.
14130
14131         * object.c (mono_object_isinst): Synchronize this with the code
14132         generated by the JIT for casts.
14133
14134 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14135
14136         * reflection.c (encode_type): Fix #38332.
14137
14138 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14139
14140         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14141         the original method from the wrapper method.
14142
14143 2003-09-25  Martin Baulig  <martin@ximian.com>
14144
14145         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14146         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14147         (ves_icall_Type_get_IsGenericInstance): New interncall.
14148
14149 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14150
14151         * object.c: fix cast warning in big endian code.
14152
14153 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14154
14155         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14156         
14157 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14158
14159         * assembly.c: don't call check_env from mono_assembly_load. It's
14160         already done once in mono_assemblies_init and may cause headaches when
14161         multiple threads are loading assemblies.
14162
14163 2003-09-19  Martin Baulig  <martin@ximian.com>
14164
14165         * reflection.c (mono_reflection_define_generic_parameter): Don't
14166         allocate `klass->methods', set `klass->flags' to
14167         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14168
14169 2003-09-18  Martin Baulig  <martin@ximian.com>
14170
14171         * class.c (mono_class_init): Don't create `class->methods' if it's
14172         already initialized.
14173
14174         * metadata.c (mono_metadata_load_generic_params): Make this
14175         actually work.
14176
14177         * reflection.c (mono_reflection_define_generic_parameter): Set
14178         parent class and interfaces from the constraints.
14179
14180         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14181         to keep this struct in sync with the declaration in TypeBuilder.cs.
14182
14183 2003-09-17  Martin Baulig  <martin@ximian.com>
14184
14185         * metadata.h (MonoType): Replaced the data's `int type_param'
14186         field with `MonoGenericParam *generic_param'.
14187         (MonoGenericParam): Added `MonoClass *klass'.
14188
14189         * class.c (mono_class_from_gen_param): Removed the
14190         `MonoImage *image' and `int type_num' arguments.
14191
14192         * metadata.c (mono_metadata_parse_generic_param): New static
14193         method; creates a MonoGenericParam which just contains the index.
14194         (do_mono_metadata_parse_type): Call
14195         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14196         MONO_TYPE_MVAR.
14197
14198         * reflection.c (mono_image_typedef_or_ref): Generic type
14199         parameters may be in the same assembly, but never use a typedef
14200         for them.
14201         (mono_reflection_define_generic_parameter): We're now creating a
14202         "real" class for the type parameter; it's now safe to call
14203         mono_class_from_mono_type() on the class'es type, it'll do the
14204         right thing.
14205
14206 2003-09-16  Martin Baulig  <martin@ximian.com>
14207
14208         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14209         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14210         the `symfile' data structure must be fully initialized before it
14211         gets added to the table.
14212
14213 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14214
14215         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14216
14217         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14218         class init trampolines.
14219
14220 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14221
14222         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14223         to the built-in profiler to turn off time and allocation profiling
14224         respectively.
14225
14226 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14227
14228         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14229         g_direct_equal.
14230
14231         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14232         in human readable form.
14233
14234 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14235
14236         * reflection.c icall.c: Fixed warnings.
14237
14238         * image.c (load_class_names): Use a temporary hash table to hold the
14239         namespaces in order to avoid doing many string comparisons.
14240
14241         * image.h: Fix typo.
14242
14243         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14244         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14245         since the NULL case is short-circuited inside g_hash_table_lookup, 
14246         leading to better performance.  
14247
14248         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14249         obtain the first custom attribute for a given index. Depends on the
14250         CustomAttribute table being sorted by the parent field.
14251
14252         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14253         for better performance.
14254
14255 2003-09-07  Martin Baulig  <martin@ximian.com>
14256
14257         * class.c (mono_class_init): If we're a generic instance, inflate
14258         all our methods instead of loading them from the image.
14259         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14260
14261 2003-09-07  Martin Baulig  <martin@ximian.com>
14262
14263         * mono-debug-debugger.c: Added support for constructors.
14264
14265 2003-09-06  Martin Baulig  <martin@ximian.com>
14266
14267         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14268         New interncall.
14269
14270         * reflection.c (mono_reflection_setup_generic_class): Call
14271         ensure_runtime_vtable() to create the vtable.
14272
14273 2003-09-05  Martin Baulig  <martin@ximian.com>
14274
14275         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14276         MONO_TYPE_MVAR.
14277
14278 2003-09-04  Martin Baulig  <martin@ximian.com>
14279
14280         * reflection.c (mono_reflection_define_generic_parameter): Generic
14281         parameters start with zero.
14282
14283 2003-09-04  Martin Baulig  <martin@ximian.com>
14284
14285         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14286
14287         * reflection.h (MonoReflectionGenericParam): New typedef.
14288         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14289         the generic parameters from the managed TypeBuilder.
14290
14291         * reflection.c (mono_reflection_define_generic_parameter): New function.
14292         (mono_reflection_create_runtime_class): Encode generic parameters.
14293         (mono_reflection_setup_generic_class): New function; this is
14294         called after adding adding all generic params to the TypeBuilder.
14295         (encode_type): Added MONO_TYPE_VAR.
14296
14297 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14298
14299         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14300         here from the JIT.
14301
14302         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14303         load hook.
14304
14305 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14306
14307         * reflection.h reflection.c class.h class.c: Delete duplicate 
14308         definition of mono_type_get_name () from reflection.c and export the
14309         one in class.c.
14310
14311         * class.c: Class loading fixes from Bernie Solomon 
14312         (bernard@ugsolutions.com).
14313
14314         * reflection.c: Endianness fixes from Bernie Solomon 
14315         (bernard@ugsolutions.com).
14316         
14317 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14318
14319         * assembly.h assembly.c: Define a file format version for AOT
14320         libraries.
14321         
14322         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14323
14324         * appdomain.h (MonoJitInfo): New field to determine whenever the
14325         code is domain neutral.
14326         
14327 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14328
14329         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14330
14331 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14332
14333         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14334         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14335         Avoid caching the result since strings must be domain specific. Fixes
14336         #48050.
14337
14338 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14339
14340         * marshal.c (mono_marshal_init): Make this callable multiple times
14341         since it is hard to find a correct place to call it.
14342
14343         * object.c (mono_runtime_class_init): Execute static constructors in
14344         the correct appdomain.
14345
14346         * image.c (build_guid_table): Handle the case when multiple images have
14347         the same GUID.
14348
14349 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14350
14351         * icall.c: added a couple of icalls for System.Web.
14352
14353 2003-08-28  Martin Baulig  <martin@ximian.com>
14354
14355         * icall.c (ves_icall_Type_BindGenericParameters): Use
14356         `klass->generic_inst' instead of `&klass->byval_arg' in the
14357         mono_type_get_object() call.  The returned type must be
14358         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14359
14360 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14361
14362         * NOTES: New file.
14363
14364         * object.c (mono_class_proxy_vtable): Make it thread safe.
14365
14366         * pedump.c: Fix warning.
14367
14368         * object.c appdomain.h: Get rid of metadata_section. 
14369         It is no longer needed and it was causing deadlocks with domain->lock.
14370
14371         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14372
14373 2003-08-26  Martin Baulig  <martin@ximian.com>
14374
14375         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14376
14377 2003-08-26  Martin Baulig  <martin@ximian.com>
14378
14379         * pedump.c (main): Call mono_metadata_init(),
14380         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14381         and mono_loader_init().
14382
14383 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14384
14385         * loader.h: Add missing include to fix build.
14386
14387         * image.h: mono_image_load_references is no more.
14388
14389         * assembly.c: Reworked assembly loading to make it really thread safe.
14390         After these changes, the assembly returned by mono_assembly_open is
14391         fully initialized, i.e. all its references assemblies are loaded.
14392
14393         * assembly.c (mono_image_load_references): Renamed to 
14394         mono_assembly_load_references, and made private, since clients no
14395         longer need to call it.
14396
14397         * class.c: Removed calls to mono_assembly_load_references, since it was
14398         a source of deadlocks.
14399
14400         * loader.h loader.c class.h class.c: Protect data structures using a 
14401         new lock, the loader lock.
14402
14403         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14404         GPtrArrays only when needed.
14405
14406         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14407         into empty structures by mcs. Fixes pinvoke7.cs.
14408         
14409         * domain.c (mono_init): Call a new initialization function.
14410
14411         * appdomain.c (mono_runtime_init): Call the new initializer function
14412         of the marshal module.
14413
14414         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14415         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14416
14417         * marshal.h marshal.c: Added locks around the wrapper caches to make
14418         this module thread safe.
14419
14420         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14421         this argument. Fixes pinvoke1.exe.
14422
14423 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14424
14425         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14426         enumeration of values. Removed fields to store remote call output values in
14427         MonoAsyncResult. Not needed any more.
14428         * object.c: Initialize call_type and async_result fields in mono_message_init.
14429         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14430         dispatching the message.
14431         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14432         async call to finish. To do it use a message with EndInvoke call type.
14433
14434 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14435
14436         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14437         determines whenever a method has marshalling info.
14438
14439 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14440
14441         * assembly.c: fix the build on windows.
14442
14443 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14444
14445         * object.cs: Fixed bug #47785.
14446
14447 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14448
14449         * string-icalls.c (StringReplace): If their are no occurances of
14450         the old string found return a reference to the supplied
14451         string. This saves some memory and matches MS behavoir.
14452         
14453 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14454
14455         * socket-io.c: fixed compilation for systems that define AF_INET6
14456         and don't define SOL_IP/SOL_IPV6.
14457
14458 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14459
14460         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14461         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14462
14463         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14464
14465         * domain.c: Make this module thread safe.
14466
14467         * domain.c (mono_init): Call new initialization function.
14468
14469         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14470         reference types too. Fixes #38812.
14471
14472         * image.c (mono_image_init): Fixed warnings.
14473
14474         * class.c (mono_class_from_typeref): Handle assembly load failure
14475         correctly.
14476
14477         * appdomain.c (add_assemblies_to_domain): Handle the case when
14478         the references of an assembly are not yet loaded.
14479
14480         * metadata.c image.c assembly.c: Moved initialization of global
14481         variables to a separate function called at startup since lazy 
14482         initialization of these variables is not thread safe.
14483         
14484         * image.c assembly.c: Made this module thread safe by adding locks in 
14485         the appropriate places.
14486
14487         * domain.c (mono_init): Call the new initialization functions of the
14488         three modules.
14489
14490 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14491
14492         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14493           make a direct call. It is proxy's work to make the call asynchronous.
14494           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14495           the return values.
14496         * object.cs: mono_method_call_message_new(): read AsyncResult and
14497           state object from parameters list, if this info is requested.
14498         * object.h: Added fields to store remote call output values in
14499           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14500
14501 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14502
14503         * object.h: add needed fields to MonoThread.
14504         * threads.c, threads.h: allow registering a function to cleanup data
14505         allocated per thread by the JIT.
14506
14507 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14508
14509         * loader.h: portability fix by Bernie Solomon
14510         * <bernard@ugsolutions.com>.
14511
14512 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14513
14514         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14515         return a MonoArray. This simplifies the code and also ensures that
14516         the cache allways contains an object reference as a value.
14517
14518         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14519         function.
14520
14521 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14522
14523         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14524         fixes a problem with byte ordering when getting the address family for
14525         a socket.
14526
14527 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14528
14529         * .cvsignore: Added monosn.
14530
14531         * reflection.h reflection.c loader.c: Added support for parameter
14532         marshalling to dynamically created types. Fixes #47295.
14533
14534 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14535
14536         * rand.c: remove useless warnings.
14537
14538 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14539
14540         * class.c: implemented ldtoken for methods and fieldrefs.
14541
14542 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14543
14544         * threadpool.c: when mono_async_invoke was called, no one took care of
14545         monitoring the queue. So if the method invoked took some time and we
14546         got new async invoke requests after 500 ms (the thread created waited
14547         that long in WaitForSingleObject), the new async invoke was not called
14548         until the previous one finished.
14549
14550         This is fixed now. Thanks to Totte for helping with it.
14551
14552 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14553
14554         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14555
14556 2003-08-11  Martin Baulig  <martin@ximian.com>
14557
14558         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14559
14560 2003-08-06  Martin Baulig  <martin@ximian.com>
14561
14562         * mono-debug-debugger.c: Added support for static fields,
14563         properties and methods.
14564
14565 2003-08-06  Martin Baulig  <martin@ximian.com>
14566
14567         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14568         make this work for applications with multiple application domains.
14569
14570 2003-08-04  Martin Baulig  <martin@ximian.com>
14571
14572         * mono-debug-debugger.c: Completely reworked the type support; the
14573         most important thing is that we're now just using one single
14574         `MonoType' instance per type.
14575
14576 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14577
14578         * mono-endian.h, mono-endian.c, icall.c: Added icall
14579         ves_icall_System_Double_AssertEndianity to assert double word endianity
14580         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14581
14582 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14583
14584         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14585         support, icalls and fixes.
14586
14587 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14588
14589         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14590         classes that are a punctuation character in .NET is not the same a
14591         g_unichar_ispunct.
14592
14593 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14594
14595         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14596
14597 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14598
14599         * icall.c: Add new MemCopy internalcall.
14600         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14601         Simplified code; It is not necessary to handle all the cases here,
14602         as the C# code takes care of it.  Only handle the case of the name
14603         resource embedded into the assembly.
14604
14605         Changed signature to return the data pointer and the size of the
14606         data. 
14607
14608 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14609
14610         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14611         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14612
14613 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14614
14615         * socket-io.c: ignore EINTR error in select.
14616
14617 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14618
14619         * class.h, class.c: removed unused subclasses field in MonoClass.
14620
14621 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14622
14623         * icall.c: improve fix of get_base_definition(). If the parent class
14624           doesn't have the mehod, look at the parent of the parent.
14625         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14626           to check if a parameter is an in or out parameter
14627           (PARAM_ATTRIBUTE_IN is not set by default).
14628           mono_method_return_message_restore(): Use mono_class_value_size to
14629           get the size of a value type. mono_type_stack_size (parameterType)
14630           does not return the correct value if parameterType is byRef.
14631           mono_load_remote_field(), mono_load_remote_field_new(),
14632           mono_store_remote_field(), mono_store_remote_field_new():
14633           raise exception if the remote call returns an exception.
14634
14635 2003-07-28  Martin Baulig  <martin@ximian.com>
14636
14637         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14638         method.  This is a wrapper around mono_runtime_invoke() which
14639         boxes the instance object if neccessary.
14640
14641 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14642
14643         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14644         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14645
14646 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14647
14648         * icall.c: disable mcs bug workaround.
14649
14650 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14651
14652         * object.c (mono_runtime_class_init): Take the metadata_section
14653         mutex before obtaining the domain mutex.
14654
14655         * appdomain.h: Added definition of metadata_section mutex here. 
14656
14657         * object.c: define metadata_mutex here.
14658
14659 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14660
14661         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14662         fixed.
14663
14664 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14665
14666         * reflection.c: Fix bug #46669
14667
14668 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14669
14670         * exception.c:
14671         * exception.h:
14672         * icall.c:
14673         * object.h: fill in the type name for TypeLoadException.
14674
14675 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14676
14677         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14678         relationship between TypeBuilders while compiling corlib) and bug
14679         45993 (Array types returned from the runtime while compiling
14680         corlib were from the loaded corlib).
14681
14682 2003-07-22  Martin Baulig  <martin@ximian.com>
14683
14684         * mono-debug-debugger.c: Reworked the type support a bit more;
14685         distinguish between types and classes.
14686
14687 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14688
14689         * icall.c: add IsArrayImpl icall.
14690
14691 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14692
14693         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14694         initializing real_size only once. Also fix bug #46602.
14695
14696 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14697
14698         * object.c: Renamed mono_metadata_section to metadata_section.
14699
14700 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14701
14702         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14703           empty array if the type is an array. Fixed.
14704           ves_icall_MonoMethod_get_base_definition: if the base method
14705           is abstract, get the MethodInfo from the list of methods of
14706           the class.
14707         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14708           and it was 1-based. Fixed in mono_param_get_objects.
14709
14710 2003-07-20  Martin Baulig  <martin@ximian.com>
14711
14712         * mono-debug.h: Set version number to 31.
14713         (mono_debug_init): Added `MonoDomain *' argument.
14714
14715         * mono-debug-debugger.c: Reworked the type support; explicitly
14716         tell the debugger about builtin types; pass the `klass' address to
14717         the debugger.
14718
14719 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14720
14721         * image.c: Allow new metadata tables to be loaded without a
14722         warning. Also update the warning message to give the new constant value.
14723                 
14724 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14725
14726         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14727         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14728         array type representation changes.
14729
14730 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14731
14732         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14733         on Environment.Exit () call.
14734
14735 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14736
14737         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14738         requires a matching corlib.
14739
14740 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14741
14742         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14743           Committed again without the CRs.
14744         
14745 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14746
14747         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14748           getting it from the "this" socket instance. Did not work
14749           if the socket is a subclass of Socket.
14750           Also fixed bug #35371.
14751
14752 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14753
14754         * metadata.c: fixed size for TypedByRef.
14755         * loader.c: when searching for a method, consider the vararg amrker.
14756         * unicode.c, decimal.c: constify some arrays.
14757
14758 2003-07-15  Dick Porter  <dick@ximian.com>
14759
14760         * socket-io.c: Fixed compilation for gcc < 3.2.
14761
14762         Fixed compilation for machines that don't have AF_INET6 (thanks to
14763         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14764
14765         Fixed compile warnings.
14766         
14767         Fixed formatting and line endings.
14768
14769 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14770
14771         * socket-io.h:
14772         * socket-io.c: Added IPv6 support.
14773
14774 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14775
14776         * class.c (mono_class_is_assignable_from): New function to implement
14777         the is_assignable_from logic. Used by mono_object_isinst, 
14778         Type::IsAssignableFrom () and the interpreter.
14779
14780         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14781         Object, even interfaces.
14782         
14783         * object.c (mono_object_isinst): Implement in terms of 
14784         is_assignable_from.
14785
14786         * icall.c (ves_icall_type_is_assignable_from): New icall.
14787
14788 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14789
14790         * domain.c (foreach_domain): fix compiler warning.
14791
14792 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14793
14794         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14795         not available on all plattforms
14796
14797 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14798
14799         * image.h image.c: Store the metadata version string in MonoImage.
14800         * icall.c: New icall to retrieve the image version.
14801         * reflection.c (create_dynamic_image): Fill in the image version field
14802         * reflection.c (build_compressed_metadata): Use the image version
14803         from the image structure.
14804
14805 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14806
14807         * appdomain.c: modified comment.
14808         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14809         That will be its last iteration when mono_gc_cleanup is called from
14810         mono_runtime_cleanup and before the domain is unloaded.
14811
14812         Fixes bug #45962.
14813
14814 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14815
14816         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14817         attributes.
14818
14819 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14820
14821         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14822         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14823         Bernie Solomon <bernard@ugsolutions.com>.
14824
14825 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14826
14827         * object.c, object.h: provide mono_object_new_fast() for faster
14828         allocation in some special cases.
14829
14830 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14831
14832         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14833         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14834
14835 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14836
14837         * threadpool.c: fix leaks.
14838
14839 2003-07-01  Dick Porter  <dick@ximian.com>
14840
14841         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14842         using MonoGHashTables.  Fixes threadpool bug posted to list.
14843
14844 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14845
14846         * image.h, image.c: added support to load an assembly from a byte array.
14847         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14848         assembly bundle support.
14849
14850 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14851
14852         * threadpool.c (mono_thread_pool_add): keep a reference to the
14853         AsyncResult to prevent GC
14854
14855 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14856
14857         * class.c: leak fix.
14858
14859 2003-06-25  Dick Porter  <dick@ximian.com>
14860
14861         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14862         for the async object, the WaitHandle object will close the handle.
14863         Fixes bug 45321.
14864
14865 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14866
14867         * class.c: in mono_array_class_get (), lookup from the hash with the
14868         same type we insert: this works around a bug in
14869         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14870         lluis. The real fix will have to wait for after the release.
14871
14872 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14873
14874         * icall.c: fix memory leak when getting type members.
14875
14876 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14877
14878         * reflection.c: added more pubtoken special cases.
14879
14880 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14881
14882         * class.c: handle field offset correctly when class size
14883         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14884
14885 2003-06-20  Martin Baulig  <martin@ximian.com>
14886
14887         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14888         *image' field.
14889
14890 2003-06-20  Martin Baulig  <martin@ximian.com>
14891
14892         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14893
14894 2003-06-20  Martin Baulig  <martin@ximian.com>
14895
14896         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14897         just distinguish between variables in registers and variables at
14898         an offset relative to a register.
14899
14900 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14901
14902         * icall.c: #ifdef out latest changes until mcs is fixed.
14903
14904 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14905
14906         * icall.c: return members in metadata order.
14907
14908 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14909
14910         * icall.c: avoid infinite loop in GetTimeZoneData.
14911
14912 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14913
14914         * icall.c: added Marshal.Prelink/All icalls.
14915
14916 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14917
14918         * object.c, object.h: fix warnings and do some overflow checking
14919         when creating arrays.
14920
14921 2003-06-17  Dick Porter  <dick@ximian.com>
14922
14923         * file-io.h:
14924         * file-io.c: File attributes need to be tweaked slightly when
14925         passed from the managed to the w32 world.
14926
14927 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14928         * profiler.h profiler-private.h profiler.c: Rework last patch
14929         based on suggestion by Paolo.
14930         
14931 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14932
14933         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
14934         instruction level coverage data collection.
14935         * profiler.h profiler.c (: Added new callback function which can be
14936         used by the profiler to limit which functions should have coverage
14937         instrumentation.
14938         * profiler.c (mono_profiler_load): Call g_module_build_path to
14939         generate the file name of the profiler library.
14940
14941 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14942
14943         * profiler.c, profiler.h, profiler-private.h: added basic block 
14944         coverage profiling API.
14945
14946 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
14947
14948         * reflection.c (mono_reflection_create_runtime_class): Add support
14949         for events in dynamically generated code.
14950
14951         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
14952         not allocated.
14953
14954 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14955
14956         * icall.c: when getting timezone info, return reasonable values if we
14957         can't get the actual data.
14958
14959 2003-06-14  Dick Porter  <dick@ximian.com>
14960
14961         * threads.c (start_wrapper): Remove the reference to the thread
14962         object in the TLS data, so the thread object can be finalized.
14963         This won't be reached if the thread threw an uncaught exception,
14964         so those thread handles will stay referenced :-( (This is due to
14965         missing support for scanning thread-specific data in the Boehm GC
14966         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
14967
14968 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
14969
14970         * reflection.c: ensure streams and tables are first allocated with
14971         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
14972
14973 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14974
14975         * icall.c: fixed GetElementType for byrefs (bug# 44792).
14976
14977 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
14978
14979         * reflection.c (mono_reflection_create_runtime_class): Add support for
14980         properties to dynamically created classes.
14981         * reflection.c: Fix a few places where non-MonoObjects were inserted
14982         into the tokens hashtable.
14983
14984 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14985
14986         * object.c: some support to handle out of memory exceptions.
14987
14988 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
14989
14990         * marshal.c (mono_marshal_get_native_wrapper): support reference
14991         return types
14992
14993 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14994
14995         * object.h, object.c: more portability stuff from Bernie Solomon.
14996         Unexport mono_object_allocate(). Added mono_object_unbox ().
14997         Set exitcode when an unhandled exception is thrown.
14998
14999 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15000
15001         * marshal.c (mono_marshal_get_native_wrapper): use custom
15002         marshaler for return types.
15003
15004 2003-06-10  Dick Porter  <dick@ximian.com>
15005
15006         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15007         ip_mreq is available
15008
15009 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15010
15011         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15012         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15013         by Bernie Solomon <bernard@ugsolutions.com>.
15014
15015 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15016
15017         * gc.c (mono_gc_init): Avoid error message on shutdown when
15018         GC_DONT_GC=1 is used.
15019
15020         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15021         New icall to return the GUID of a module.
15022
15023 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15024
15025         * class.c: ensure instance size always includes the parent's size
15026         even whem class size is set explicitly (fixes bug#44294).
15027
15028 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15029
15030         * profiler.h, profiler.c: made the simple profiler thread-safe,
15031         get more accurate timing info. Allow the loading of an
15032         externally-developed profiler module.
15033
15034 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15035
15036         * marshal.c (mono_marshal_get_native_wrapper): improved
15037         class/byref arguments.
15038         (mono_marshal_get_native_wrapper): better string marshaling support.
15039
15040 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15041
15042         * class.c: ensure .pack and .size are handled correctly and
15043         simplified layout of static fields.
15044
15045 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15046
15047         * appdomain.c
15048         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15049
15050         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15051         current directory (fix bug 44008)
15052
15053 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15054
15055         * marshal.c (mono_marshal_get_native_wrapper): started support for
15056         custom marshalers.
15057         (mono_delegate_to_ftnptr): consider marshalling specifications
15058
15059 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15060
15061         * reflection.c, reflection.h: emit custom marshal info.
15062
15063 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15064
15065         * object.c: free the GError.
15066         * icall.c: added CloseEvent_internal.
15067         * threads.[ch]:
15068         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15069         call.
15070
15071 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15072
15073         * loader.c (mono_method_get_signature): Add support for dynamic
15074         assemblies.
15075
15076 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15077
15078         * reflection.c: fixed bug #43905.
15079
15080 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15081
15082         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15083         handling TypedReference and ArgIterator.
15084         * loader.c, loader.h: added function to get signature at call site.
15085
15086 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15087
15088         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15089         data readonly. Buglets and warning fixes. Some MethodSpec support.
15090
15091 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15092
15093         * class.h, class.c, object.c: remove relative numbering support.
15094
15095 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15096
15097         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15098         free the string, until we get a chance to fix Gtk#
15099
15100 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15101
15102         * marshal.c: revert last patch.
15103
15104 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15105
15106         * icall.c: updates for new mono_class_vtable() not calling
15107         the type constructor anymore.
15108
15109 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15110
15111         * object.h, object.c: separate vtable creation from type
15112         initialization. Make running the .cctor thread safe.
15113
15114 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15115
15116         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15117
15118 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15119
15120         * loader.c (mono_get_method): consider calling convention
15121
15122 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15123
15124         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15125         to return the invisible global type for a module.
15126
15127         * reflection.c (mono_image_build_metadata): Emit global fields too.
15128
15129 2003-05-20  Peter Williams  <peterw@ximian.com>
15130
15131         * loader.c (mono_lookup_internal_call): Add a few newlines.
15132
15133 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15134
15135         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15136         literal strings.
15137
15138         * appdomain.c (set_domain_search_path): Recalculate search path when
15139         AppDomainSetup.PrivateBinPath changes.
15140
15141         * object.c (mono_class_compute_gc_descriptor): It turns out some
15142         parts of the class libs (like System.Thread) holds pointers to
15143         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15144         to treat native int a pointer type here.
15145         
15146 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15147
15148         * appdomain.h, domain.c: add hashtable for jump target resolution.
15149
15150 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15151
15152         * reflection.h reflection.c icall.c: Added new icalls 
15153         GetManifestResourceInfoInternal, GetModulesInternal and support
15154         infrastructure.
15155
15156 2003-05-16  Dick Porter  <dick@ximian.com>
15157
15158         * icall.c:
15159         * file-io.h:
15160         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15161
15162 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15163
15164         * object.c: mono_store_remote_field: little fix to previous patch.
15165
15166 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15167
15168         * class.c: add constructors to array classes.
15169         * icall.c: special case array construction for InternalInvoke (),
15170
15171 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15172
15173         * class.h class.c reflection.c object.c: Added support for field
15174         defaults in dynamically generated classes.
15175
15176 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15177
15178         * reflection.c: properly encode charset for ddlimport.
15179
15180 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15181
15182         * threads.c: allow compiling without GC.
15183
15184 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15185
15186         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15187         handling of thread static data.
15188
15189 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15190
15191         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15192
15193 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15194
15195         * class.c (mono_array_class_get): always set the serializable flags
15196         (mono_array_class_get): always set the SEALED attribute for array types
15197
15198 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15199
15200         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15201         attributes (fix for bug 42021).
15202
15203 2003-05-12  Dick Porter  <dick@ximian.com>
15204
15205         * gc.c: Don't run finalizers when the finalizer thread is
15206         finishing up, because the default domain has already been
15207         destroyed.
15208
15209 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15210
15211         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15212         value is null, we should throw an exception.   This is slightly
15213         different than the other conventions used for the constructor.
15214
15215 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15216
15217         * socket-io.c: fixed windows build.
15218
15219 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15220
15221         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15222
15223 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15224
15225         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15226         compilers.
15227
15228 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15229
15230         * class.c (mono_class_layout_fields): Add experimental GC aware
15231         auto layout facility. Requires class library changes to work correctly.
15232
15233         (mono_class_setup_vtable): Avoid overriding explicit interface
15234         method implementations. Fixes iface3.exe test.
15235
15236         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15237         object reference.
15238         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15239         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15240
15241         * metadata.h: Add new type classification macro which determines
15242         whenever the type holds an object reference.
15243
15244 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15245
15246         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15247
15248 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15249
15250         * gc.c (finalizer_thread): Work around a GC bug.
15251
15252 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15253
15254         * marshal.c (emit_struct_conv): allow unions
15255
15256         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15257
15258 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15259
15260         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15261
15262 2003-05-06  Martin Baulig  <martin@ximian.com>
15263
15264         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15265
15266 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15267
15268         * socket-io.c:
15269         (Select_internal): allow NULLs, don't create arrays if not needed.
15270         Coupled with Socket.cs changes.
15271
15272         * threadpool.c:
15273         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15274         register a finalizer for it that will close the semaphore handle. This
15275         fixes the leak and make Lupus' test run with > 4080 loops.
15276
15277 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15278
15279         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15280         Jerome Laban (bug #42287)
15281
15282 2003-05-02  Martin Baulig  <martin@ximian.com>
15283
15284         * debug-mono-symfile.h
15285         (MonoSymbolFile): Moved declaration into mono-debug.h.
15286         (MonoDebugMethodJitInfo): Likewise.
15287         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15288         argument.
15289         (_mono_debug_address_from_il_offset): Take a
15290         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15291
15292         * mono-debug.h
15293         (MonoDebugDomainData): New struct.
15294         (mono_debug_get_domain_data): New function.
15295         (mono_debug_add_method): Take an additional `MonoDomain *'
15296         argument.
15297         (mono_debug_source_location_from_address): Likewise.
15298         (mono_debug_il_offset_from_address): Likewise.
15299         (mono_debug_address_from_il_offset): Likewise.
15300
15301 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15302
15303         * reflection.c: one more check for null type in custom attrs.
15304
15305 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15306
15307         * reflection.c: avoid warning (comparison is always false due to limited
15308         range of data type).
15309
15310 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15311
15312         * icall.c: throw an exception in Type.GetField if the argument 'name'
15313         is NULL.
15314
15315 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15316
15317         * reflection.c: fixed handling of enums in named arguments to custom
15318         attributes (bug #42123).
15319
15320 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15321
15322         * reflection.c: use the right array element type and handle
15323         a null for a Type argument, too.
15324
15325 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15326
15327         * reflection.c: handle arrays as arguments to custom attributes.
15328
15329 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15330
15331         * reflection.c: handle a string value in a custom attr
15332         ctor that takes an object.
15333
15334 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15335
15336         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15337         (fix bug #42063)
15338
15339 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15340
15341         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15342
15343 2003-04-27  Martin Baulig  <martin@ximian.com>
15344
15345         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15346         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15347         MONO_DEBUGGER_EVENT_BREAKPOINT.
15348         (mono_breakpoint_trampoline_code): Removed.
15349         (mono_debugger_event_handler): The last argument is now a
15350         `guint32'.
15351         (mono_debugger_insert_breakpoint_full): Removed the
15352         `use_trampoline' argument.
15353         (mono_debugger_method_has_breakpoint): Likewise.
15354         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15355         mono_debugger_breakpoint_callback(); take the method and
15356         breakpoint number as arguments.
15357
15358 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15359
15360         * metadata.c: fix off by one when loading parameters attributes.
15361
15362 2003-04-24  Martin Baulig  <martin@ximian.com>
15363
15364         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15365
15366 2003-04-24  Martin Baulig  <martin@ximian.com>
15367
15368         * mono-debug-debugger.c: Moved all code which interacts with the
15369         Mono Debugger here.
15370
15371         * debug-mono-symfile.c: This code now just deals with the symbol
15372         file itself, the debugger code is now in mono-debug-debugger.c.
15373
15374 2003-04-23  Martin Baulig  <martin@ximian.com>
15375
15376         * mono-debug.c (mono_debug_source_location_from_il_offset):
15377         New method; like mono_debug_source_location_from_address(), but
15378         takes an IL offset instead of a machine address.
15379
15380 2003-04-23  Martin Baulig  <martin@ximian.com>
15381
15382         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15383         `line' field; this is now computed by the debugger.
15384
15385 2003-04-23  Martin Baulig  <martin@ximian.com>
15386
15387         * mono-debug.[ch]: New files.  This is the new debugging interface.
15388
15389         * mono-debug-debugger.[ch]: New files.  Moved all code which
15390         interacts with the Mono Debugger here.
15391
15392 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15393
15394         * domain.c (mono_init): initialize mono_defaults.monitor_class
15395
15396 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15397
15398         * reflection.c (method_encode_code): Add a spicy exception to help
15399         future compiler authors.
15400
15401 2003-04-21  Martin Baulig  <martin@ximian.com>
15402
15403         * icall.c
15404         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15405         Make this work with relative pathnames; g_filename_to_uri() needs
15406         an absolute filename.
15407
15408 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15409
15410         * icall.c: Track name changes in Object and ValueType.
15411
15412 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15413
15414         * metadata.c (mono_type_stack_size): size should be a multiple of
15415         sizeof (gpointer)
15416
15417 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15418
15419         * gc.c:
15420         (internal_domain_finalize): moved into mono_domain_finalize. No need
15421         to create another thread because the finalizers will be run in the
15422         finalizer thread.
15423         
15424         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15425         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15426         to be run (MS does this too).
15427
15428 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15429
15430         * object.c (mono_class_compute_gc_descriptor): Update comment.
15431
15432         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15433
15434         * image.h: Add synchronized wrapper cache.
15435
15436         * image.c (do_mono_image_open): Initialize cache.
15437
15438         * reflection.c (create_dynamic_mono_image): Initialize cache.
15439
15440 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15441
15442         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15443         ves_icall_System_Buffer_ByteLengthInternal.
15444
15445 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15446
15447         * reflection.c: setup klass->nested_in earlier. Allow
15448         a dash in the assembly name.
15449
15450 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15451
15452         * metadata.c (mono_type_to_unmanaged): dont access
15453         type->data.klass for MONO_TYPE_OBJECT
15454         (mono_type_to_unmanaged): consider System.Delegate class
15455
15456 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15457
15458         * class.c: just setup supertypes in the proper place instead of
15459         initializing the full element class for arrays.
15460
15461 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15462
15463         * class.c: ensure the element class of arrays is initialized.
15464         Setup the supertype info for array classes, too.
15465
15466 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15467
15468         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15469
15470 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15471
15472         * Makefile.am: re-added -m option when running cygpath. This way,
15473         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15474         separator.
15475         * mono-config.c: same codepath for locating mono config file for WIN32
15476         and the rest.
15477         * assembly.c: if mono_assembly_setrootdir is called, don't override
15478         the value set.
15479
15480 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15481
15482         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15483         MONO_ASSEMBLIES variable.
15484
15485 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15486
15487         * icall.c: added Assembly::GetNamespaces() icall.
15488
15489 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15490
15491         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15492
15493 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15494
15495         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15496         * object.c: fixed bug in the construction of vtable for proxies
15497
15498 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15499
15500         * object.c (mono_array_new): Mark mono_array_new as an icall.
15501
15502 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15503
15504         * class.c: fixed test for public method when overriding interfaces.
15505         Closes bug #40970.
15506
15507 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15508
15509         * appdomain.h, domain.c: added mono_domain_foreach() to
15510         be able to access the currently loaded appdomains.
15511         * object.c: make string interning work across sppdomains.
15512         Mark some functions for use as icalls.
15513
15514 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15515
15516         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15517
15518         * reflection.h reflection.c: Allocate long living data using 
15519         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15520
15521         * reflection.c: Double the allocation size in streams instead of
15522         increasing it, to prevent unneccesary copying on large assemblies.
15523         
15524         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15525         creation if the assembly does not have the Run flag set.
15526
15527 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15528
15529         * class.h: avoid the C++ keywords in header files (Jerome Laban
15530         spotted and fixed this).
15531
15532 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15533
15534         * object.c:
15535         (mono_unhandled_exception): fill in the arguments for the
15536         UnhandledException event. Only trigger that event for the default
15537         domain (as MS does).
15538
15539 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15540
15541         * object.c: Improve typed allocation stuff based on suggestions from
15542         Paolo. Also turn it on if the GC library supports it.
15543
15544 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15545
15546         * object.c object.h class.h: Added experimental typed allocation
15547         facility using the interfaces in gc_gcj.h.
15548
15549         * os/gc_wrapper.h: Added new include files.
15550         
15551 2003-04-03  Martin Baulig  <martin@ximian.com>
15552
15553         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15554         which is not yet enabled by default.
15555
15556         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15557         functions.
15558         (mono_gc_lock, mono_gc_unlock): New static functions.
15559
15560         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15561         functions; stop/start the world for the garbage collector.  This
15562         is using the windows API; we need to complete the SuspendThread()/
15563         ResumeThread() implementation in the io-layer to make this work on Unix.
15564         (mono_gc_push_all_stacks): New public function; tells the garbage
15565         collector about the stack pointers from all managed threads.
15566
15567 2003-04-03  Martin Baulig  <martin@ximian.com>
15568
15569         * object.h (MonoThread): Added `gpointer stack_ptr'.
15570
15571         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15572
15573 2003-04-03  Martin Baulig  <martin@ximian.com>
15574
15575         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15576
15577 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15578
15579         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15580         field.last.
15581
15582 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15583
15584         * loader.c (mono_lookup_internal_call): Report the corlib that is
15585         out of sync.
15586
15587 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15588
15589         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15590         System.DBNull (it's class not valuetype).
15591
15592 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15593
15594         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15595         if the array method was already assigned a token (fixes bug#40646).
15596
15597 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15598
15599         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15600         if no assembly is given.
15601
15602 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15603
15604         * metadata.h: Added the new tables.
15605
15606         * row-indexes.h: Added definitions for new tables.
15607
15608         * metadata.c: Add schemas for new tables, and add support for
15609         computing the sizes of them.
15610
15611         * class.c: Update for handling the new type cases.
15612
15613 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15614
15615         * metadata.h (MONO_TYPE_IS_VOID): new macro
15616
15617 2003-03-31  Martin Baulig  <martin@ximian.com>
15618
15619         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15620
15621         * threads.c (mono_thread_new_init): Call `thread_created' in the
15622         mono_thread_callbacks.
15623
15624 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15625
15626         * loader.h: added marshalbyrefobject_class to mono_defaults
15627         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15628         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15629           generation of output parameters.
15630           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15631         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15632           contextbound and the target object belongs to the context of the caller.
15633         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15634         * object.c: Implemented support for interfaces and abstract classes
15635           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15636           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15637
15638 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15639
15640         * class.h class.c (mono_class_is_subclass_of): New function.
15641         
15642         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15643         routines for most common case (calls from ArrayList::ToArray).
15644
15645         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15646         routine so programs which call Environment::Exit() can be profiled.
15647
15648         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15649         Added MONO_ARCH_SAVE_REGS.
15650
15651         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15652
15653 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15654
15655         * blob.h: Add a couple of new MonoType types definitions.
15656
15657         * tabledefs.h: Add a couple of new call convs.
15658
15659 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15660
15661         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15662         the layout of the class.
15663
15664         * reflection.c (alloc_table): double the size on overflow to avoid
15665         unnecessary copying.
15666
15667         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15668         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15669         null so it can be garbage collected.
15670         
15671 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15672
15673         * reflection.c (mono_reflection_get_type): Return the resolved type
15674         only if it is in the assembly we searched.
15675
15676         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15677
15678         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15679         method.
15680
15681 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15682
15683         * appdomain.c:
15684         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15685         the right one is 'file:///blah', but MS allows it.
15686         * assembly.c:
15687         (mono_assembly_open): allow 'file://blah'
15688
15689         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15690
15691 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15692
15693         * socket-io.c: fixes bug #40310.
15694
15695 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15696
15697         * reflection.c (mono_reflection_parse_type): handle deeply nested
15698         types correctly.
15699
15700         * reflection.c (mono_image_create_token): Use unique token values
15701         since they will be put into a hash table.
15702
15703         * class.c (mono_class_setup_vtable): If a method occurs in more than
15704         one place in the vtable, and it gets overriden, then change the
15705         other occurances too.
15706
15707         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15708         object as return type.
15709
15710 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15711
15712         * icall.c: Deleted "ToString" implementation for double and float
15713         because they are full implemented in managed code.
15714
15715 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15716
15717         * reflection.c, reflection.h: implemented and exported functions
15718         to retrieve info about custom attributes.
15719
15720 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15721
15722         * appdomain.c: moved Uri handling to assembly.c
15723         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15724         work when using a file Uri in *nix and windows.
15725
15726         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15727         GetReferencedAssemblies.
15728
15729 2003-03-18  Dick Porter  <dick@ximian.com>
15730
15731         * icall.c: Rename a couple of internal calls
15732
15733         * threads.c: Set the thread state to Stopped when a thread exits.
15734         Fixes bug 39377.
15735
15736 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15737
15738         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15739         New icall.
15740
15741         * object.c (mono_class_vtable): fix warning.
15742
15743 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15744
15745         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15746
15747         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15748         memory.
15749         (method_encode_clauses): Create exception info structures in the right
15750         order.
15751         (mono_reflection_setup_internal_class): Initialize supertypes field.
15752
15753         * class.c object.c: Handle interfaces which implement other interfaces 
15754         correctly.
15755
15756         * class.h class.c: Move the supertypes array initialization code into 
15757         a separate function so it can be used for dynamic types too. Also call
15758         it earlier, in mono_class_init(), since it can be used before the
15759         type is initialized.
15760
15761 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15762
15763         * Makefile.am:
15764         * assembly.c:
15765         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15766
15767         * appdomain.c:
15768         * appdomain.h:
15769         * marshal.c:
15770         * object.c: remove warnings.
15771
15772 2003-03-13  Martin Baulig  <martin@ximian.com>
15773
15774         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15775         (MonoDebugLexicalBlockEntry): New types.
15776
15777         * debug-mono-symfile.c
15778         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15779
15780 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15781
15782         * process.c: ret can be any non-zero value accroding to MS doc.
15783
15784 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15785
15786         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15787         fixing a warning for a miss-used prototype, would have cause
15788         random memory corruption.
15789
15790 2003-03-07  Martin Baulig  <martin@ximian.com>
15791
15792         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15793         getting really annoying ....
15794
15795 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15796
15797         * reflection.c (fixup_method): added support for array methods.
15798
15799 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15800
15801         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15802         (pointed out by Michael Adams).
15803
15804 2003-03-04  Dick Porter  <dick@ximian.com>
15805
15806         * icall.c: Temporarily reverted the Double and Single ToString()
15807         change, because it broke nunit.
15808
15809 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15810
15811         * object.h, threads.h: make include files compatible with C++
15812         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15813
15814 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15815
15816         * icall.c: Erased ToString helper functions for Double and Single.
15817         Now, that implementations ar all in managed code (Double and Single
15818         Formatters).
15819
15820 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15821
15822         * appdomain.c: Added method for initializing the default context of
15823         a domain. Added internal call for getting the default context.
15824         * appdomain.h: Added context variable in MonoDomain struct.
15825         * domain.c: mono_domain_set also sets the default context of the domain
15826         * icall.c: Mapped internal method InternalGetDefaultContext.
15827         * object.c: mono_object_get_virtual_method returns always a remoting
15828         wrapper if the object is a transparent proxy.
15829         mono_runtime_invoke_array: when creating an object by calling the
15830         constructor, if the created object is a proxy, then the constructor should
15831         be called using the a remoting wrapper.
15832
15833 2003-03-03  Dick Porter  <dick@ximian.com>
15834
15835         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15836         variable so it compiles on solaris.  Problem spotted by
15837         Christopher Taylor <ct@cs.clemson.edu>
15838
15839 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15840
15841         * appdomain.c:
15842         (get_info_from_assembly_name): don't leak value.
15843
15844         * icall.c:
15845         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15846         result.
15847
15848 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15849
15850         * assembly.c: export mono_image_load_references ().
15851         * class.c: handle function pointers. mono_class_from_name() now
15852         supports nested type names directly.
15853
15854 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15855
15856         * reflection.h reflection.c: Encode already created dynamic methods 
15857         and fields correctly as a DEF instead of a REF.
15858
15859         * reflection.c: Get rid of the force_ref argument to 
15860         mono_image_typedef_or_ref since it was wrong in the first place.
15861
15862         * string-icalls.c: add error checking to string constructors according
15863         to the MSDN docs.
15864
15865         * reflection.c: Emit types in the order their TypeBuilders were 
15866         created. Previously, a new table index was assigned to each type before
15867         the tables were emitted. This was wrong because the signature blob
15868         might already refer to a type by its original table index.
15869
15870 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15871
15872         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15873         change.
15874         
15875 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15876
15877         * Makefile.am: make assemblies dir have \ instead of / on windows.
15878
15879 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15880
15881         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15882         iterate over the NESTEDCLASS table using a linear search since the
15883         table is not guaranteed to be sorted by the secondary key.
15884
15885         * class.c (mono_class_create_from_typedef): fixed up call to
15886         mono_metadata_nesting_typedef.
15887         
15888 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15889
15890         * marshal.c (mono_string_to_byvalstr): clear the memory as
15891         suggested by Jerome Laban <jlaban@wanadoo.fr>
15892
15893 2003-02-26  Dick Porter  <dick@ximian.com>
15894
15895         * process.c: Cope with padding in .rsrc blocks
15896
15897 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15898
15899         * metadata.h: reverted the filter_len change, it breaks reflection
15900         
15901 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15902
15903         * metadata.h: added a new field to store the filter_len
15904         
15905
15906 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15907
15908         * reflection.c: handle custom attributes for types and members
15909         created with Reflection.Emit (bug#38422).
15910
15911 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15912
15913         * reflection.c: define RTSpecialName automatically for constructors for
15914         compatibility with MS.NET.
15915
15916         * reflection.c (mono_reflection_create_runtime_class): initialize
15917         nested_in field of dynamically created classes.
15918
15919 2003-02-22  Martin Baulig  <martin@ximian.com>
15920
15921         * debug-mono-symfile.h: Incremented version number.
15922
15923 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15924
15925         * object.h icall.c process.c: fix warnings.
15926
15927 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15928
15929         * appdomain.h appdomain.c:
15930         (mono_domain_try_type_resolve): split the 
15931         name_or_tb argument into a name and a tb argument.
15932         (mono_domain_has_type_resolve): new function to check whenever the
15933         application has registered a TypeResolve event handler.
15934         
15935         * icall.c reflection.h reflection.c: move the type resolve logic into
15936         mono_reflection_get_type () so it will be invoked when 
15937         Assembly::GetType () is called.
15938
15939         * reflection.c:
15940         (mono_reflection_get_type): renamed to get_type_internal.
15941         (mono_reflection_get_type): fixed type name generation so it works 
15942         for nested types too.
15943         (mono_reflection_get_type): call has_type_resolve () to avoid the 
15944         costly type name generation if there is no resolve event handler.
15945
15946 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15947
15948         * class.c, image.c: load exported types from file references.
15949
15950 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
15951
15952         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
15953           used to cache the managed methods used to create proxies and make 
15954           remote invocation of methods.
15955         * class.h: Added in MonoVTable a flag to indicate that a class needs 
15956           to be remotely created.
15957         * object.c: Modified the method mono_class_vtable(). It now initializes 
15958           the remote flag of the vtable. Modified mono_object_new_specific(), 
15959           so now it checks the remote flag.
15960         * icall.c: Added a couple of internal methods, one for enabling instance 
15961           creation interception for a type, and one for creating objects bypassing
15962           the remote check.
15963
15964 2003-02-18  Martin Baulig  <martin@ximian.com>
15965
15966         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
15967         New interncall to get a method's metadata token.
15968
15969         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
15970         New interncall for the debugger.
15971
15972 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
15973
15974         * class.c (mono_class_setup_vtable): allocate supertype array
15975
15976 2003-02-18  Martin Baulig  <martin@ximian.com>
15977
15978         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
15979
15980 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15981
15982         * reflection.c:
15983         (assembly_name_to_aname): jump over unknown properties (i've found
15984         something like: 'type, assembly, version=xxx, custom=null, public...',
15985         so now will ignore custom=null and still get the rest of the values).
15986
15987 2003-02-17  Dick Porter  <dick@ximian.com>
15988
15989         * threads.c: Have Thread.Start() wait for a semaphore to signal
15990         that the thread has set up all its local data.  This fixes bug
15991         34323, where Abort() raced the new thread's TLS data.
15992
15993         Also removes the handle_store() call from start_wrapper, because
15994         threads are now always created suspended and there is no longer a
15995         race between the parent and child threads to store the info.
15996
15997 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
15998
15999         * image.c: explain the #- heap issue in a message, hopefully
16000         avoiding FAQs on mono-list.
16001
16002 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16003
16004         * icall.c:
16005         (GetEntryAssembly): if the domain has not invoked
16006         AppDomain.ExecuteAssembly yet, return the assembly of the default
16007         AppDomain.
16008
16009 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16010
16011         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16012
16013 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16014
16015         * metadata.c, reflection.c: simple speedup to type hash
16016         and equals code.
16017
16018 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16019
16020         * image.c, image.h, class.c, assembly.c: move module loading
16021         to MonoImage. When loading metadata, consider alignemnet from
16022         the start of metadata, not from the metadata address in memory.
16023
16024 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16025
16026         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16027         AssemblyBuilder objects. Factored out custom attribute creation into
16028         a separate function.
16029         (create_custom_attr): new function to create custom attributes.
16030
16031 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16032
16033         * Makefile.am: Got tired of typing the full pathname to pedump.
16034         Until there is another option, am installing this.
16035
16036 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16037
16038         * class.c (class_compute_field_layout): always set field->parent 
16039         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16040
16041 2003-02-11  Dick Porter  <dick@ximian.com>
16042
16043         * threads-types.h:
16044         * monitor.c: Rewrote Monitor, making lock much faster and
16045         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16046         creates them as needed.
16047
16048         * exception.c: Added SynchronizationLockException
16049
16050         * threads.c: Deleted old Monitor implementation.  The new one is
16051         in a new file.
16052
16053 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16054
16055         * class.c: handled TypedReference type code. Set the correct size for
16056         class data. Setup interface_offsets for interface classes, too.
16057
16058 2003-02-09  Martin Baulig  <martin@ximian.com>
16059
16060         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16061
16062 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16063
16064         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16065         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16066         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16067         * verify.c: check for code that runs after the end of the method.
16068
16069 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16070
16071         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16072         "System.Math::Round2".
16073         * sysmath.h: Added Floor, Round and Round2 definitions.
16074         * sysmath.c: Modified certain functions that were not 100% compliant
16075         with MS.NET (math precision) and added the implementation of Floor,
16076         Round and Round2.
16077
16078 2003-02-07  Martin Baulig  <martin@ximian.com>
16079
16080         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16081
16082 2003-02-07  Martin Baulig  <martin@ximian.com>
16083
16084         * debug-mono-symfile.c: Reflected latest symwriter changes.
16085         (mono_debug_create_mono_symbol_file): Removed.
16086         (mono_debug_open_mono_symbol_file): Take an argument which
16087         specifies whether to create a dynamic symbol file.
16088
16089 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16090
16091         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16092
16093 2003-02-05  Martin Baulig  <martin@ximian.com>
16094
16095         * reflection.c (mono_image_build_metadata): Make this public,
16096         protect it against being called multiple times, don't create
16097         resources and don't build the compressed metadata here.
16098         (mono_image_create_pefile): Do this here.
16099
16100         * icall.c
16101         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16102
16103 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16104
16105         * socket-io.c: fixed bug #36322.
16106
16107 2003-02-06  Piers Haken <piersh@friskit.com>
16108
16109         * appdomain.[ch]:
16110         * class.h:
16111         * debug-mono-symfile.c:
16112         * icall.c:
16113         * loader.c:
16114         * mono-config.c:
16115         * monosn.c:
16116         * reflection.c:
16117         * socket-io.c: warning cleanups
16118
16119 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16120
16121         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16122         function. works like remoting invoke, but does a check for the Proxy first.
16123
16124 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16125
16126         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16127
16128 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16129
16130         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16131         array of pointers.
16132         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16133         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16134
16135         * object.c (mono_store_remote_field_new): used by the new jit
16136         instead of mono_store_remote_field
16137         (mono_load_remote_field_new): used by the new jit
16138         instead of mono_load_remote_field
16139
16140 2003-02-05  Patrik Torstensson
16141
16142         * appdomain.c: changed unload to take the domain id instead
16143         of domain
16144         
16145         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16146
16147
16148 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16149
16150         * appdomain.c: don't look for assemblies in ApplicationBase if
16151         PrivateBinPathProbe is set.
16152
16153 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16154
16155         * object.c: make the first argument in main_args contain the absolute
16156         path to the assembly. Fixes bug #37511.
16157
16158 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16159
16160         * icall.c: get correct UTC offset for countries not using daylight
16161         time saving. Fixes bug #30030.
16162
16163 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16164
16165         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16166         and 1 are the family).
16167
16168 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16169
16170         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16171
16172         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16173
16174 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16175
16176         * reflection.c: added support for SignatureHelper tokens, which is
16177         needed by the Calli opcode.
16178
16179         * reflection.h: track changes to SignatureHelper class.
16180
16181         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16182
16183 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16184
16185         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16186
16187 2003-02-03  Patrik Torstensson
16188         * appdomain.[c|h], domain.c : 
16189          - Added support for getting a domain via domain id
16190          - Support for setting and getting domain from System.AppDomain 
16191            (used in cross appdomain channel)
16192          - Added support for get/set for a MonoAppContext on a thread 
16193            (Context class in System.Runtime.Remoting.Contexts),
16194          - Removed hack in Get/SetData and ExecuteAssembly.
16195         
16196         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16197         the managed world to get control when a proxy is created.
16198
16199         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16200         
16201 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16202
16203         * icall.c
16204         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16205         Populate the codebase field as well.
16206
16207 2003-02-02  Martin Baulig  <martin@ximian.com>
16208
16209         * debug-mono-symfile.c
16210         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16211         (mono_debug_symfile_add_method): Allow interncalls.
16212
16213 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16214
16215         * icall.c: throw parse exception if strtod fails or the string is empty.
16216
16217 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16218
16219         * marshal.c: handle object type separately from defined
16220         class types.
16221
16222 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16223
16224         * marshal.c: handle NATIVE_LPSTR for strings when it's
16225         explicitly specified.
16226
16227 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16228
16229         * reflection.c, reflection.h, icall.c: setup the reflection
16230         handle cache for ModuleBuilders and AssemblyBuilders.
16231
16232 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16233
16234         * reflection.c (reflection_methodbuilder_to_mono_method): set
16235         pinvoke flag
16236
16237 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16238
16239         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16240
16241 2003-01-29  Dick Porter  <dick@ximian.com>
16242
16243         * threads.c: No need for the fake_thread kludge now that Thread
16244         doesn't run a class constructor
16245         
16246 2003-01-29  Dick Porter  <dick@ximian.com>
16247
16248         * threads.c: Use g_direct_hash instead of the rather bogus
16249         g_int_hash
16250
16251 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16252
16253         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16254         (fix pinvoke12.exe)
16255         (mono_marshal_get_struct_to_ptr): generate valid IL code
16256         (mono_marshal_get_ptr_to_struct): generate valid IL code
16257         (*): correctly set sig->pinvoke, we need to memdup the signature
16258         to do that
16259
16260 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16261
16262         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16263         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16264
16265 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16266
16267         * profiler.c: provide more callers information.
16268
16269 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16270
16271         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16272
16273         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16274
16275         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16276
16277 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16278
16279         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16280         exception instead of going into an infinite loop on dates which it 
16281         can't yet handle.
16282
16283         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16284         out-of-range exception if needed.
16285
16286         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16287         an implementation for an interface method and to override an inherited
16288         method at the same time. 
16289         Imagine a scenario when a virtual method is used to override a
16290         virtual abstract method in a parent class, and this same method 
16291         provides an implementation for an method inherited from an interface. 
16292         In this case, the interface resolution code will set im->slot, which 
16293         means that the virtual method override pass will skip this method 
16294         which means a pointer to the abstract method inherited from the parent
16295         will remain in the vtable of this non-abstract class.
16296
16297         * class.c: (mono_class_setup_vtable): continue search for a real 
16298         method if only an abstract method is found.     
16299
16300 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16301
16302         * reflection.c: add size to encoding for ByValStr and ByValArray
16303         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16304
16305 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16306
16307         * class.c (mono_class_setup_vtable): pass the override info as an
16308         argument.
16309
16310         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16311         correctly.
16312         
16313         * reflection.c (ensure_runtime_vtable); add support for method 
16314         overrides.
16315         
16316 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16317
16318         * reflection.c (resolution_scope_from_image): Hack to work to work with
16319         dynamic assemblies.
16320
16321         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16322         added a 'force_ref' argument to force this function to allways return 
16323         a TypeRef. This is needed by mono_image_get_memberref_token ().
16324         
16325 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16326
16327         * reflection.c (mono_image_get_type_info): interfaces really don't have
16328         a parent.
16329
16330         * reflection.c (mono_image_basic_init): fill out missing fields of
16331         image structure.
16332
16333         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16334         dynamic assemblies. This is required so dynamic assemblies show up in
16335         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16336         Type::GetType() etc. This is consistent with MS behaviour.
16337
16338         * image.c image.h reflection.c: add newly created classes to the name 
16339         cache so mono_class_get () will find them.      
16340
16341 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16342
16343         First part of changes to get IKVM.NET running under mono.
16344         
16345         * appdomain.h, appdomain.c: added new function 
16346         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16347         This function will call AppDomain::DoTypeResolve to do the actual work.
16348
16349         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16350         moved existing code dealing with dynamic tokens to a new function 
16351         called mono_reflection_lookup_dynamic_token (). This function will 
16352         raise TypeResolve events when appropriate. Since reflection.c is not 
16353         part of libmetadata, a new hook function called 
16354         mono_lookup_dynamic_token() is added to class.c which will call this.
16355
16356         * assembly.h assembly.c: make the invoke_load_hook function public,
16357         so it can be called for dynamic assemblies.
16358
16359         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16360
16361         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16362         type isn't found.
16363
16364         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16365         MonoGHashTable, since it contains pointers to objects which the GC 
16366         needs to track.
16367
16368         * assembly.c (search_loaded): remove unused variable.
16369         
16370 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16371
16372         * object.c: fixed issue exposed by gcc-generated IL programs
16373         that use RVA data for pointers.
16374
16375 2003-01-25  Martin Baulig  <martin@ximian.com>
16376
16377         * threads.c (start_wrapper): Moved the initialization of
16378         `start_func' above the mono_new_thread_init() call to which we
16379         pass it as argument.
16380
16381 2003-01-24  Martin Baulig  <martin@ximian.com>
16382
16383         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16384         the MonoThread pointer.
16385
16386 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16387
16388         * icall.c: Rename `PowImpl' to Pow.
16389
16390 2003-01-23  Dick Porter  <dick@ximian.com>
16391
16392         * threads.c (start_wrapper): Create a Thread object if needed, so
16393         the Main() thread can do the class initialisation in a subthread
16394         that has been set up to allow managed code execution.
16395
16396         Pass the thread ID instead of the MonoThread pointer to the thread
16397         start and attach callbacks.  This change is required, because the
16398         jit thread start callback must be called _before_ the Thread
16399         object can be created.
16400         
16401         (mono_thread_init): Removed much object creation code that is no
16402         longer needed.  No managed code is called from here now.
16403
16404         * object.c (mono_runtime_exec_managed_code): Create a subthread
16405         for Main, and call back to the runtime to use it.
16406         Set the exit code when Main exits.
16407
16408         * gc.c: Make sure domain finalisation happens in a subthread.
16409         Re-enable threaded GC, fixing bug 31333 (again).
16410
16411         * environment.c: System.Environment internall calls (so far just
16412         ExitCode is here, the others are still in icall.c)
16413
16414         * appdomain.c (mono_runtime_cleanup): All threads running managed
16415         code should have finished before mono_runtime_cleanup() is
16416         reached, so no need to clean up threads.
16417
16418 2003-01-22  Martin Baulig  <martin@ximian.com>
16419
16420         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16421         `gpointer func' arguments.      
16422         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16423         but added `MonoThread *thread' argument.
16424         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16425
16426         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16427         and pass it to the mono_thread_start_cb callback.
16428         (mono_install_thread_callbacks): New public function to install a
16429         set of callbacks which are set by the debugger.
16430         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16431
16432 2003-01-22  Martin Baulig  <martin@ximian.com>
16433
16434         * Makefile.am: Install debug-mono-symfile.h.
16435
16436 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16437
16438         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16439
16440 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16441
16442         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16443         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16444         (mono_array_class_get): correctly set access levels of arrays
16445
16446 2003-01-20      Patrik Torstensson
16447         * image.h (MonoAssemblyName): changed major, minor, build, revision
16448         from signed to unsigned.
16449
16450 2003-01-20  sean kasun <skasun@azstarnet.com>
16451
16452         * reflection.c (load_cattr_value): Now this handles
16453         MONO_TYPE_SZARRAY.  Fixes bug #35629
16454
16455 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16456
16457         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16458         integer value
16459
16460 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16461
16462         * decimal.c: fixed bug #26056.
16463
16464 2003-01-17  Martin Baulig  <martin@ximian.com>
16465
16466         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16467
16468 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16469
16470         * exception.[ch]:
16471         (mono_get_exception_type_initialization): new function.
16472
16473         * object.c: throw a TypeInitializationException when an exception is
16474         thrown invoking the class constructor.
16475
16476 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16477
16478         * reflection.c: fixed attribute reading.
16479
16480 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16481
16482         * icall.c:
16483         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16484         provided, look for the type in the calling assembly and then in
16485         mscorlib; if the assembly name is provided, only try that one.
16486
16487 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16488
16489         * object.c: register the vtable before there is a chance it's
16490         queried again recursively.
16491
16492 2003-01-13  Duncan Mak  <duncan@ximian.com>
16493
16494         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16495         gc-internal.h. 
16496         
16497 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16498
16499         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16500
16501 2003-01-11  Martin Baulig  <martin@ximian.com>
16502
16503         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16504         this to 20 for the release.
16505
16506 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16507
16508         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16509
16510         * loader.c (mono_method_get_marshal_info): bug fix
16511
16512         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16513         structures with explicit layout
16514
16515 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16516
16517         * profiler.c: made the output more readable (and sorted). 
16518         Added caller information for the allocation profiler.
16519
16520 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16521
16522         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16523
16524 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16525
16526         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16527         to get value types.
16528         
16529 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16530
16531         * object.c, profiler.h, profiler.c, profiler-private.h:
16532         Added object allocation profiler.
16533
16534 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16535
16536         * reflection.h, reflection.c: handle global methods.
16537         Compress blob entries.
16538
16539 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16540
16541         * marshal.c: fix compilation.
16542
16543 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16544
16545         * loader.c (mono_method_get_marshal_info): impl.
16546
16547         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16548
16549 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16550
16551         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16552         for reference types.
16553
16554 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16555
16556         * loader.c: fixed off by one error in loaded parameter names.
16557
16558 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16559
16560         * marshal.c (mono_marshal_get_icall_wrapper): like
16561         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16562         instead of a MonoMethod.
16563
16564 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16565
16566         * decimal.c: fixed bug #36537.
16567
16568 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16569
16570         * marshal.c: throw a missing method exception if a
16571         P/Invoke method is not found.
16572
16573 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16574
16575         * icall.c: allow a null this for constructors.
16576
16577 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16578
16579         * icall.c: raise the proper exceptions if the arguments to the
16580         internal Invoke are incorrect.
16581
16582 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16583
16584         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16585
16586 2003-01-03  Martin Baulig  <martin@ximian.com>
16587
16588         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16589
16590 2002-12-31  Martin Baulig  <martin@ximian.com>
16591
16592         * debug-mono-symfile.c: Completely rewrote the type section.
16593         Instead of using individual malloc()ed fields, we use one big
16594         continuous memory area and offsets into this area.
16595         See the comments in the source code for details.
16596
16597 2002-12-30  Martin Baulig  <martin@ximian.com>
16598
16599         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16600
16601 2002-12-30  Martin Baulig  <martin@ximian.com>
16602
16603         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16604         line number table in this data blob instead of using an external
16605         pointer.
16606
16607 2002-12-28  Martin Baulig  <martin@ximian.com>
16608
16609         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16610
16611 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16612
16613         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16614         as a boxed return type.
16615
16616 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16617
16618         * appdomain.c
16619         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16620         g_build_filename to properly get separators on the filename created.
16621
16622         * object.h: Small change, introduce MonoMarshalByRefObject to
16623         track the layout of that structure in the C# universe as we make
16624         changes there.
16625
16626 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16627
16628         * object.c: removed assert to allow static fields on interfaces.
16629         * loader.c: a TypeSpec may be used for any type, not just arrays.
16630
16631 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16632
16633         * class.c, class.h: added mono_class_array_element_size ().
16634         Ignore static methods in interfaces.
16635
16636 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16637
16638         * threads.c: fixed the build under cygwin.
16639
16640 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16641
16642         * reflection.c: handle nullref constants. Allocate keys for
16643         reflection handles with the GC.
16644
16645 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16646
16647         * threads.c, threads.h: added mono_thread_get_abort_signal()
16648         to get a suitable signal for thread abort.
16649
16650 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16651
16652         * metadata.c: fix handling of ExportedType table.
16653
16654 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16655
16656         * icall.c: added WriteWindowsDebugString internal call.
16657
16658 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16659
16660         * reflection.h: added fields to match C# implementation.
16661
16662 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16663
16664         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16665
16666 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16667
16668         * gc.h, gc-internal.h: Rename header for GC internal calls to
16669         gc-internal.h from gc.h as to not clash with Boehm GC having its
16670         header installed as <gc.h> in outside include paths.
16671         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16672         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16673
16674 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16675
16676         * icall.c: assign minor, build and revision in FillName.
16677
16678 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16679
16680         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16681         Added support for running code generated by Reflection.Emit.
16682
16683 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16684
16685         * appdomain.c: check for NULL argument in LoadFrom.
16686
16687 2002-12-10  Dick Porter  <dick@ximian.com>
16688
16689         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16690
16691 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16692
16693         * appdomain.c: fix buglet when building exe file name.  Handle full
16694         assembly name (needed after latest changes to AssemblyName).
16695         * image.c:
16696         (mono_image_close): free some hashtables.
16697
16698 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16699
16700         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16701         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16702         on some systems (redhat 7.3) 
16703
16704 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16705
16706         * threads.c: delete the critical section of a sync block,
16707         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16708
16709 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16710
16711         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16712
16713 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16714
16715         * appdomain.[ch]: handle the assembly preload event to try loading the
16716         assemblies using the paths we have in the current domain.
16717
16718         * assembly.[ch]: created an assembly preload hook that is called to try
16719         loading the assembly by other means that the ones provided here.
16720
16721         * domain.c: initialize the domain search path.
16722
16723         From now on, assemblies (TODO: except corlib and System) are loaded
16724         according to these rules when using mono_assembly_load ():
16725
16726                 1. It tries to load the assembly from the ApplicationBase
16727                 of the current domain appending .dll and .exe (TODO: have to
16728                 try loading from name/name.dll and name/name.exe).
16729
16730                 2. It tries the search path specified in PrivateBinPath for the
16731                 current domain (if any).
16732
16733                 3. Previous behavior.
16734
16735 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16736
16737         * icall.c: implemented GetInterfaceMap() related icall.
16738         * domain.c, loader.h: load MethodInfo in mono_defaults.
16739
16740 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16741
16742         * gc.c: disable the finalizer thread for now, untill all the issues
16743         with it are resolved.
16744
16745 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16746
16747         * string-icalls.c: handle embedded nulls in string ctor when the
16748         length is specified.
16749
16750 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16751
16752         * class.c: look for explicit interface implementation in parent
16753         classes, too.
16754
16755 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16756
16757         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16758
16759 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16760
16761         * gc.c: protect handles with a critical section.
16762
16763 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16764
16765         * icall.c:
16766         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16767         parameters. If no assembly specified, try getting the type from all
16768         the assemblies in the current domain, else, load the assembly and get
16769         the type from it.
16770
16771 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16772
16773         * marshal.c: applied patch from Aleksey Demakov that fixes
16774         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16775
16776 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16777
16778         * icall.c: fixed get_location.
16779
16780 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16781
16782         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16783         declarations to make it work with older gcc. 
16784
16785         * loader.c (mono_get_method): set signature->pinvoke for native calls
16786
16787 2002-11-20  Dick Porter  <dick@ximian.com>
16788
16789         * threads.c (mono_thread_init): Set the main thread's handle
16790
16791 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16792
16793         * gc.c: allow compilation without GC support. Changed to match the
16794         mono coding style.
16795
16796 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16797
16798         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16799
16800 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16801
16802         * reflection.c: set a public key token on the core assemblies.
16803
16804 2002-11-18  Dick Porter  <dick@ximian.com>
16805
16806         * threads.c: Split out some thread initialisation so that other
16807         files can set the start callback function.
16808
16809         * gc.c: Run finalisers in a separate thread, to avoid stack
16810         overflow.  Fixes bug 31333.
16811
16812         * appdomain.c: Set up GC finalisation thread.
16813
16814         * reflection.c: 
16815         * object.c: 
16816         * domain.c: Use gc.h macros for GC_malloc
16817         
16818 2002-11-15  Dick Porter  <dick@ximian.com>
16819
16820         * threadpool.c: 
16821         * threads.c:
16822         * appdomain.c: Removed mono_runtime_init_with_attach(),
16823         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16824         merging the extra parameter with the existing function.  Removed
16825         unneeded code in mono_thread_attach().
16826
16827 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16828
16829         * image.c (mono_image_loaded_by_guid): a method to get loaded
16830         images by guid. 
16831         (load_metadata_ptrs): we store the guid as string.
16832
16833 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16834
16835         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16836
16837         * metadata.c (mono_guid_to_string): imported method form Zoltan
16838         Varga (slightly modified)
16839
16840         * assembly.c (mono_assembly_open): load precompiled code
16841
16842         * loader.h (MonoMethod): we store the method token for use in the
16843         aot compiler. 
16844
16845 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16846
16847         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16848         the hook function called when an assembly is loaded.
16849         
16850         * domain.c: Modified file.
16851         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16852
16853         Fixes bug #33196.
16854
16855 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16856
16857         * reflection.c: Map PEFileKind to the value expected by the WinNT
16858         image loader. 
16859
16860 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16861
16862         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16863         Read until the buffer is filled completely.
16864
16865 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16866
16867         * icall.c: implemented MonoType.InternalGetEvent ().
16868
16869 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16870
16871         * appdomain.c: implemented InitAppDomainSetup. Delayed
16872         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16873         the entry_assembly.
16874
16875         * assembly.c: base_dir is now an absolute path ending with
16876         G_DIR_SEPARATOR.
16877
16878         * icall.c: modified get_location according to the above changes.
16879
16880         * object.c: init AppDomain.SetupInformation for the default domain after
16881         we have the entry assembly.
16882
16883         * domain.c: when unloading a domain, setup = NULL.
16884
16885 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16886
16887         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16888
16889 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16890
16891         * object.h, object.c: introduced mono_object_get_virtual_method ()
16892         to lookup the method invoked on an object when a callvirt is done on
16893         a method.
16894         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16895
16896 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16897
16898         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16899         current domain when loaded an assembly and failed to load it.
16900
16901         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16902
16903 2002-10-31  Dick Porter  <dick@ximian.com>
16904
16905         * icall.c: 
16906         * file-io.h: 
16907         * file-io.c: Return the error status in a parameter, as the
16908         GetLastError() value has long since been blown away if we try and
16909         look it up in a subsequent internal call invocation.  Delete the
16910         GetLastError() internal call, because it's useless.
16911
16912 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16913
16914         * class.[ch]: added cast_class to fix bug 29517
16915
16916 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16917
16918         * marshal.c: create valid IL code in the filter clause:
16919         the new JIT is less forgiving:-)
16920
16921 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16922
16923         * icall.c: removed get_property internal call.
16924
16925 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16926
16927         * appdomain.h domain.c: Added an ID to appdomains.
16928         
16929         * threads.c threads.h icall.c: Implement icall
16930         Thread:GetDomainID(), and remove unused icall 
16931         CurrentThreadDomain_internal.
16932
16933 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16934
16935         * icall.c: Don't recurse through the base types in GetConstructor.
16936         Fixes bug #32063. 
16937
16938 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16939
16940         * mempool.h, mempool.c: added mono_mempool_empty() and
16941         mono_mempool_stats().
16942
16943 2002-10-23  Dick Porter  <dick@ximian.com>
16944
16945         * file-io.c: 
16946         * file-io.h: 
16947         * icall.c: Added MonoIO.GetFileType internal call
16948
16949 2002-10-17  Dick Porter  <dick@ximian.com>
16950
16951         * appdomain.c (mono_runtime_cleanup): Don't signal the async
16952         delegate semaphore before waiting for all threads to finish,
16953         because new threads can also call async delegates.  Fixes bug
16954         32004.
16955
16956         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
16957         of 3 seconds, in case another async job is queued.  (This part is
16958         needed because the bug fix reintroduced the 3s exit lag.)  This
16959         makes the mono_runtime_shutdown flag superfluous.
16960
16961 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16962
16963         * reflection.c: include ehader size in method section headers.
16964         Really check for suplicated modules entries.
16965
16966 2002-10-17  Martin Baulig  <martin@gnome.org>
16967
16968         * debug-mono-symfile.c: Added back support for locals.
16969
16970 2002-10-14  Martin Baulig  <martin@gnome.org>
16971
16972         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
16973         MONO_TYPE_VOID.
16974
16975 2002-10-14  Martin Baulig  <martin@gnome.org>
16976
16977         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
16978         mono_class_get() instead of looking in the class cache. 
16979
16980 2002-10-13  Martin Baulig  <martin@gnome.org>
16981
16982         * debug-mono-symfile.c: Set version number to 28, include the
16983         signature in method names.
16984
16985 2002-10-13  Martin Baulig  <martin@gnome.org>
16986
16987         * debug-mono-symfile.h: Set version number to 27.
16988
16989 2002-10-11  Martin Baulig  <martin@gnome.org>
16990
16991         * gc.c: Don't register/unregister NULL pointers as disappearing links.
16992
16993 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16994
16995         * metadata.c, metadata.h: added helper function to allocate signatures.
16996
16997 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16998
16999         * icall.c: added internal call to get the location of machine.config.
17000
17001 2002-10-08  Martin Baulig  <martin@gnome.org>
17002
17003         * debug-mono-symfile.c: Ignore classes with a pending init for the
17004         moment.
17005
17006 2002-10-03  Dick Porter  <dick@ximian.com>
17007
17008         * threads.c: Freebsd pthread_t is a pointer
17009
17010 2002-10-03  Dick Porter  <dick@ximian.com>
17011
17012         * socket-io.c: Implemented GetHostName_internal
17013
17014 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17015
17016         * mono-config.c:
17017         (mono_config_parse_file): don't leak the text.
17018
17019 2002-10-02  Martin Baulig  <martin@gnome.org>
17020
17021         * debug-mono-symfile.c: Added support for methods.
17022
17023 2002-10-01  Martin Baulig  <martin@gnome.org>
17024
17025         * debug-mono-symfile.c: Don't emit methods and line numbers for
17026         the dynamic symbol file, just write the type table.  We can easily
17027         have an external helper program which creates a symbol file for an
17028         IL file.        
17029
17030 2002-10-01  Dick Porter  <dick@ximian.com>
17031
17032         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17033         Only add the handle to the cleanup array when we're about to
17034         launch the thread.  Bug 31425 deadlocked when the test was run on
17035         mono under w32.
17036
17037 2002-10-01  Martin Baulig  <martin@gnome.org>
17038
17039         * debug-mono-symfile.c: Added support for properties.
17040
17041 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17042
17043         * reflection.c: unaligned store fix from Mark Crichton
17044         <crichton@gimp.org>.
17045
17046 2002-09-27  Martin Baulig  <martin@gnome.org>
17047
17048         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17049         New interncall.
17050
17051 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17052
17053         * assembly.h, assembly.c: use a sane API to hook into the assembly
17054         loading process instead of a useless special-purpouse hack
17055         (ngen needs a hook, too, for example).
17056
17057 2002-09-27  Dick Porter  <dick@ximian.com>
17058
17059         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17060         io-layer can set up some process handle info.  Not needed on w32,
17061         but doesn't hurt either.
17062
17063         * process.c: Pass the program name in the second parameter to
17064         CreateProcess, so the path is searched.  Include the working
17065         directory. Implemented process name, process enumeration, and some
17066         process detail internal calls.
17067         
17068         * icall.c: Added internal calls for process lookup, and some
17069         process details
17070
17071 2002-09-26  Martin Baulig  <martin@gnome.org>
17072
17073         * assembly.c (mono_install_open_assembly_hook): New global
17074         function to install a function to be invoked each time a new
17075         assembly is loaded.
17076         (mono_assembly_open): Run this callback function if set.
17077
17078         * debug-mono-symfile.c: Put back line numbers for the dynamic
17079         symbol file and also record the .il file as source file.  This
17080         allows us to install the temporary symbol file as `file.dbg' just
17081         like a compiler-generated one.
17082
17083 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17084
17085         * Corrected typo in gc.c (BOHEM vs BOEHM).
17086
17087 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17088
17089         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17090         GetProperties. Also avoid calling g_slist_length in GetProperties and
17091         GetMethods.
17092
17093 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17094
17095         * reflection.c: avoid unaligned stores (bug spotted by
17096         Mark Crichton  <crichton@gimp.org>).
17097
17098 2002-09-25  Martin Baulig  <martin@gnome.org>
17099
17100         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17101         instead of guint64 for addresses and added prologue/epilogue info.
17102
17103 2002-09-25  Martin Baulig  <martin@gnome.org>
17104
17105         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17106         store line number info.  For the dynamic symbol file, we only need
17107         to provide the JIT generated dynamic line number info for the dynamic
17108         symbol file.
17109
17110 2002-09-25  Martin Baulig  <martin@gnome.org>
17111
17112         * debug-mono-symfile.h: Incremented version number.
17113
17114 2002-09-24  Martin Baulig  <martin@gnome.org>
17115
17116         * class.c (mono_debugger_class_init_func): New global function
17117         pointer variable.
17118         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17119         call it.
17120
17121         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17122         function.  This is called via the mono_debugger_class_init_func
17123         hook to add all types to the dynamic type table.
17124         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17125         from its metadata token.
17126
17127         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17128         New interncall for the debugger.
17129
17130 2002-09-24  Nick Drochak <ndrochak@gol.com>
17131
17132         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17133         before using it in case it is null.
17134         
17135 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17136
17137         * metadata.c: allow custom modifiers in local var signatures
17138         (bug spotted by Zoltan Varga).
17139
17140 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17141
17142         * class.c: deal with the <Module> class that may have a NULL vtable.
17143         Eliminate warnings.
17144
17145 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17146
17147         * image.c, image.h: more strong name helpers.
17148         * monosn.c: more work: convert pem keys to cryptoapi format.
17149
17150 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17151
17152         * string-icalls.c: speedup IndexOf.
17153
17154 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17155
17156         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17157
17158 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17159
17160         * icall.c: cleanup: use mono_object_domain ().
17161
17162 2002-09-23  Martin Baulig  <martin@gnome.org>
17163
17164         * debug-mono-symfile.c: Improved type support.
17165
17166 2002-09-22  Martin Baulig  <martin@gnome.org>
17167
17168         * debug-mono-symfile.c: Added support for reference types and strings.
17169
17170 2002-09-22  Martin Baulig  <martin@gnome.org>
17171
17172         * debug-mono-symfile.c: Started to work on the type table.
17173
17174 2002-09-21  Martin Baulig  <martin@gnome.org>
17175
17176         * debug-mono-symfile.c: Largely reworked the symbol table format.
17177         The symbol table is now incrementally updated each time a new
17178         method is added.  We're now also using our own magic and version
17179         so that you don't need to recompile all your classes if the
17180         dynamic table changes.
17181         (mono_debug_update_mono_symbol_file): Removed.
17182         (mono_debug_symfile_add_method): New function to add a method.
17183
17184 2002-09-21  Martin Baulig  <martin@gnome.org>
17185
17186         * icall.c
17187         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17188         New interncall.
17189
17190         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17191         New interncall to get a method from its metadata token.
17192
17193 2002-09-21  Martin Baulig  <martin@gnome.org>
17194
17195         * debug-mono-symfile.c: Create type table.
17196
17197 2002-09-20  Martin Baulig  <martin@gnome.org>
17198
17199         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17200
17201 2002-09-20  Martin Baulig  <martin@gnome.org>
17202
17203         * debug-mono-symfile.c: Provide information about params and locals.
17204
17205 2002-09-20  Martin Baulig  <martin@gnome.org>
17206
17207         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17208         New interncall.
17209
17210         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17211         interncall to get a method from its metadata token.
17212
17213 2002-09-20  Martin Baulig  <martin@gnome.org>
17214
17215         * debug-mono-symfile.c: Added a few checks for method->header
17216         being non-NULL.  This should never happen, but for the moment
17217         let's use a g_warning() rather than a g_assert().
17218
17219 2002-09-19  Mark Crichton  <crichton@gimp.org>
17220
17221         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17222         even if support for it isn't present.  Added an #ifdef to fix this.
17223
17224         * socket-io.c: Added checks back for Solaris support.
17225
17226 2002-09-19  Martin Baulig  <martin@gnome.org>
17227
17228         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17229         changes in the symbol file format.
17230
17231 2002-09-18  Martin Baulig  <martin@gnome.org>
17232
17233         * debug-mono-symfile.c: Set version number to 21.
17234
17235 2002-09-18  Dick Porter  <dick@ximian.com>
17236
17237         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17238         on netbsd.  Fixes bug 30051.
17239
17240 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17241
17242         * reflection.c:
17243         (set_version_from_string): little fix.
17244
17245 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17246
17247         * monosn.c, Makefile.am: added strong name utility.
17248         * reflection.h, reflection.c: implemented delayed signing,
17249         locale, version and hash id assembly attributes.
17250
17251 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17252
17253         * loader.c, metadata.c: load param attributes in signatures.
17254
17255 2002-09-16  Martin Baulig  <martin@gnome.org>
17256
17257         * debug-mono-symfile.c: Added string table with all method names.
17258
17259 2002-09-14  Martin Baulig  <martin@gnome.org>
17260
17261         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17262         fast method lookup.
17263
17264 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17265
17266         * reflection.c: record the public key token of referenced assemblies.
17267
17268 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17269
17270         * image.c, image.h: added functions to get the strong name and the
17271         public key of an assembly.
17272         * pedump.c: use them.
17273
17274 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17275
17276         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17277
17278 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17279
17280         * marshal.c (mono_marshal_get_managed_wrapper): Added
17281         MONO_TYPE_BOOLEAN 
17282
17283 2002-09-11  Martin Baulig  <martin@gnome.org>
17284
17285         * gc.c: Call GC_unregister_disappearing_link() on all links when
17286         finalizing them, this is necessary to aviod a crash in boehm's
17287         finalize handler.
17288
17289 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17290
17291         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17292         nick@chemlab.org.
17293
17294 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17295
17296         * icall.c: implemented MonoType::Module.
17297         * reflection.c, reflection.h: mono_module_get_object () from
17298         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17299
17300 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17301
17302         * icall.c: ignore overridden methods in GetMethods ().
17303         Fix for FieldInfo::SetValue().
17304         * object.c: handle float/double in runtime invoke.
17305
17306 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17307
17308         * object.c: allow a constructor to be called again on an object.
17309
17310 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17311
17312         * class.h, class.c: move field layout code to it's own function and
17313         export it. Get an interface id earlier. Move fields in MonoClass
17314         so they are more cache friendly and align the bitfields.
17315         * loader.c: temporary handle get_param_names() for a runtime method.
17316         * reflection.c, reflection.h: more code to handle runtime creation of
17317         types.
17318
17319 2002-09-09  Martin Baulig  <martin@gnome.org>
17320
17321         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17322         signature with the pinvoke field being set for the actual call.
17323
17324 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17325
17326         * icall.c: removed some unused icalls. Start of map of glib charsets
17327         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17328
17329 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17330
17331         * debug-helpers.c: break infinite loop (found and fixed by
17332         Holger Arnold <harnold@gmx.de>).
17333
17334 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17335
17336         * icall.c: target may be null in create_delegate.
17337
17338 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17339
17340         * marshal.c: handle a boolean return type.
17341
17342 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17343
17344         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17345
17346 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17347
17348         * gc.c: fix weakreferences.
17349
17350 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17351
17352         * icall.c: added icall to get default codepage.
17353
17354 2002-09-03  Dick Porter  <dick@ximian.com>
17355
17356         * threads.h: 
17357         * threads.c: Use MonoThread instead of MonoObject where
17358         apropriate.
17359
17360         Store running thread objects in a hash table, so that we have all
17361         the info to hand when waiting for them to finish
17362         (means we don't need OpenThread() any more, so mingw builds should
17363         be fully functional again.)
17364
17365         * verify.c:
17366         * object.h: Added thread ID to MonoThread
17367
17368 2002-09-03  Martin Baulig  <martin@gnome.org>
17369
17370         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17371
17372 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17373
17374         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17375
17376 2002-09-03  Martin Baulig  <martin@gnome.org>
17377
17378         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17379         argument to store the end address of the disassembled instruction.
17380
17381         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17382         here from debug-symfile.h.
17383         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17384         JIT into this struct.
17385         (MonoSymbolFile): Added `char *image_file' field.
17386         (MonoDebugGetMethodFunc): Removed.
17387         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17388         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17389         (mono_debug_find_method): New method.
17390
17391         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17392         create a full symbol file.
17393         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17394         and static symbol files.
17395         (mono_debug_find_method): The symbol file keeps an internal method hash,
17396         call this to get a MonoDebugMethodInfo from a MonoMethod.
17397
17398         * debug-symfile.[ch]: Removed.
17399
17400 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17401
17402         * image.c (do_mono_image_open): Remove linker version check.
17403
17404 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17405
17406         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17407         wrappers for instance methods.
17408         
17409 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17410
17411         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17412
17413 2002-08-28  Dick Porter  <dick@ximian.com>
17414
17415         * Makefile.am: Export HOST_CC for w32 builds
17416
17417 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17418
17419         * file-io.c process.c: MonoString are null terminated, no
17420         need for mono_string_to_utf16() anymore.
17421
17422 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17423
17424         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17425
17426 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17427
17428         * icall.c, reflection.h: speedup System.MonoType.
17429
17430 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17431
17432         * reflection.c: allow null as the value of a string argument in
17433         custom attributes constructors.
17434
17435 2002-08-27  Martin Baulig  <martin@gnome.org>
17436
17437         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17438         `trampoline_address' field.
17439
17440 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17441
17442         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17443         check (fixes bug #29486) 
17444
17445 2002-08-27  Martin Baulig  <martin@gnome.org>
17446
17447         * debug-mono-symfile.c: Changed the file format in a way that allows us
17448         open it read-only and to use a specially malloced area for all the
17449         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17450         debugging IL code and there is no MCS generated symbol file for it.
17451
17452 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17453
17454         * object.c: added a define for a good string and array
17455         creation speedup (not enabled by default because we need to deal with
17456         the synch stuff).
17457
17458 2002-08-26  Martin Baulig  <martin@gnome.org>
17459
17460         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17461         function to create a dynamic symbol file.  This is used by the
17462         debugger to create a symbol file for IL code on-the-fly.
17463
17464 2002-08-26  Martin Baulig  <martin@gnome.org>
17465
17466         * loader.c (mono_lookup_pinvoke_call): Include the error message
17467         from g_module_error() in the error message.
17468
17469 2002-08-24  Martin Baulig  <martin@gnome.org>
17470
17471         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17472         function to update the symbol file.  The symbol file is mmap()ed
17473         writable, but private.  This allows us to install the symbol file
17474         together with the assembly.
17475
17476 2002-08-24  Martin Baulig  <martin@gnome.org>
17477
17478         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17479         but they can read the new symbol file format which mcs is now creating.
17480
17481         * debug-symfile.c (mono_debug_find_source_location): Moved to
17482         debug-mono-symfile.c; this is now operating on the new symbol file.
17483
17484 2002-08-23  Martin Baulig  <martin@gnome.org>
17485
17486         * debug-helpers.c (mono_method_desc_from_method): New function to get
17487         a MonoMethodDesc from a MonoMethod.
17488
17489 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17490
17491         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17492         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17493
17494 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17495
17496         * string-icalls.[ch]: make helper methods static.
17497
17498 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17499
17500         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17501         types to it and to SetValueInternal.
17502
17503         * object.c: Moved handle_enum label to its proper place. This was the
17504         f... bug! ;-)
17505
17506         This time i compiled mcs and gtk-sharp and they both work.
17507
17508 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17509
17510         * icall.c: reverted partially my previous patch until 
17511         object.c:set_value handles enums correcly.
17512
17513 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17514
17515         * icall.c:
17516         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17517         (ves_icall_System_Environment_get_MachineName): removed warning when
17518         compiling under cygwin.
17519
17520 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17521
17522         * object.c: fixed field_get_value() for reference types.
17523
17524 2002-08-22  Dick Porter  <dick@ximian.com>
17525
17526         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17527         Don't free a buffer while it's still needed.  Patch from Jonathan
17528         Liger <Jonathan.liger@wanadoo.fr>
17529
17530 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17531
17532         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17533         internal call.
17534
17535 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17536
17537         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17538         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17539
17540         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17541         we call unmanaged code which throws exceptions.
17542
17543 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17544
17545         * appdomain.h: added per-domain entry_assembly.
17546         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17547         arguments.
17548         * icall.c: Assembly::GetEntryAssembly icall.
17549         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17550         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17551
17552 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17553
17554         * appdomain.h, gc.c: added mono_domain_finalize ().
17555
17556 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17557
17558         * object.c:
17559         (mono_print_unhandled_exception): changed g_warning by g_printerr
17560         because g_log has a 1024 characters limit (yeah, i got a big stack
17561         trace). Don't print exception name, that should be in ToString 
17562         returned string.
17563
17564 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17565
17566         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17567         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17568
17569 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17570
17571         * object.c:
17572         (mono_print_unhandled_exception): after previous commit, i realized
17573         that MS calls ToString on the exception. I changed this function to
17574         do that. This way we get stack_trace for free.
17575
17576 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17577
17578         * object.c:
17579         (mono_print_unhandled_exception): invoke Message property instead of
17580         getting 'message' field from Exception. Don't allocate memory for
17581         'trace' and 'message' if not needed.
17582
17583 2002-08-18  Dick Porter  <dick@ximian.com>
17584
17585         * unicode.c: Fix asserts to match Encoder.cs checks
17586
17587 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17588
17589         * marshal.c: fix unaligned store issue and a few wrong
17590         opcode argument types.
17591
17592 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17593
17594         * icall.c: added GetUninitializedObjectInternal internal call.
17595
17596 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17597
17598         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17599         to the right domain.
17600
17601 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17602
17603         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17604
17605         * class.c (class_compute_field_layout): set blittable to false for Strings
17606
17607         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17608
17609 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17610
17611         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17612         first chunk of code to create types at runtime. Code to
17613         handle ReflectedType/DeclaringType. Make reflection handles
17614         domain specific.
17615
17616 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17617
17618         * class.c: set correct name in arrays.
17619
17620 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17621
17622         * appdomain.c (mono_domain_transfer_object): make it work with
17623         valuetypes. bug fixes.
17624
17625 2002-08-12  Dick Porter  <dick@ximian.com>
17626
17627         * object.h: Rename some parameters to avoid c++ keywords (Patch
17628         from Joseph Wenninger <kde@jowenn.at>)
17629
17630 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17631
17632         * icall.c: added icall to implement Assembly.GetFile*.
17633
17634 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17635
17636         * reflection.h, reflection.c: code to embed managed resources.
17637
17638 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17639
17640         * class.c: move all the type size stuff into
17641         class_compute_field_layout().
17642
17643 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17644
17645         * class.c: ensure enums have always the correct instance size.
17646         * unicode.c: remove wrong assert.
17647
17648 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17649
17650         * assembly.c: fix mem corruption issue.
17651         * image.h, image.c: added mono_image_get_resource () to access
17652         managed resources.
17653         * icall.c: implemented Assembly.EntryPoint property and some
17654         Managed Resources related internalcalls.
17655
17656
17657 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17658
17659         * image.c, image.h: impemented mono_image_get_entry_point ().
17660         * appdomain.c: use mono_image_get_entry_point.
17661
17662 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17663
17664         * reflection.c: support the object type argument when loading
17665         custom attributes.
17666
17667 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17668
17669         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17670         String as return type.
17671
17672 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17673
17674         * reflection.c: fix encoding of named args for custom attrs to match
17675         the ms implementation. Read them back when instantiating custom
17676         attributes.
17677
17678 2002-08-02  Radek Doulik  <rodo@ximian.com>
17679
17680         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17681         by Dietmar as quick fix
17682         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17683         16 as stack size, used on more places as quick fix before Dietmar
17684         will fix it properly
17685
17686 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17687
17688         * object.h, object.c: added accessors for fields and properties.
17689
17690 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17691
17692         * class.c, class.h: made mono_class_get_field_from_name ()
17693         loop on parent types.
17694         Added mono_class_get_property_from_name ().
17695
17696 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17697
17698         * class.c, class.h: move the code to setup the type vtable in its own
17699         function so that it can be reused also for types created at runtime.
17700         Eliminate the "class" identifier from the header file.
17701         * reflection.c: setup the vtable for enums so that we can create
17702         objects for use in SetConstant ().
17703
17704 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17705
17706         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17707         instead of the delegate itself as this pointer (bug #28383)
17708
17709 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17710
17711         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17712         conversions.
17713
17714 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17715
17716         * loader.c: don't set the pinvoke bit on icalls.
17717
17718 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17719
17720         * debug-helpers.c (mono_method_full_name): only print a number to
17721         indicate wrapper type (so that the output is more readable in traces).
17722
17723 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17724
17725         * class.c (mono_class_init): include method override patch from Paolo
17726
17727 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17728
17729         * icall.c: fixed GetTypeCode().
17730
17731 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17732
17733         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17734         use real delegate invoke function to make it work with multicast
17735         delegates (fix bug# 28291).
17736
17737 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17738
17739         * object.c: load constant strings.
17740
17741 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17742
17743         * reflection.c: no magic numbers.
17744         * tabledefs.h: security action enum.
17745
17746 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17747
17748         * assembly.c: fix possible memory corruption.
17749
17750 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17751
17752         * reflection.h, reflection.c: added support for linking resources.
17753         * verify.c: check we have an updated corlib.
17754
17755 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17756
17757         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17758         string arrays.
17759         (mono_marshal_string_array): null terminate unmanaged string arrays.
17760         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17761
17762 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17763
17764         * icall.c: Type.GetType () can now return also types from the
17765         calling assembly.
17766
17767 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17768
17769         * loader.h, loader.c: stack walking support.
17770         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17771         GetCallingAssembly.
17772
17773 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17774
17775         * marshal.c: added optimisations for blittable types 
17776
17777         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17778         (mono_class_setup_mono_type): set blittable attribute for single
17779         and double.
17780
17781         * marshal.c (mono_string_utf8_to_builder): impl.
17782         (mono_string_builder_to_utf8): impl.
17783         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17784
17785 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17786
17787         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17788         (mono_marshal_get_managed_wrapper): impl. byref types
17789
17790 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17791
17792         * icall.c:
17793         (search_method): don't display debug message. 
17794
17795 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17796
17797         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17798
17799 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17800
17801         * appdomain.c: set the missing filename when throwing exception.
17802
17803 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17804
17805         * metadata.c (mono_type_size): code cleanup
17806         (mono_type_stack_size): removed some test code
17807
17808 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17809
17810         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17811         mono_get_exception_file_not_found now.
17812
17813         * exception.c (mono_exception_from_name_two_strings): New version
17814         that will call a constructor with two string arguments. 
17815         (mono_get_exception_file_not_found): New helper routine, used to
17816         report file-not-found errors.
17817
17818 2002-07-20  Dick Porter  <dick@ximian.com>
17819
17820         * process.h:
17821         * process.c: Pass file handles to CreateProcess
17822         
17823         * icall.c:
17824         * file-io.h:
17825         * file-io.c: Implemented CreatePipe
17826
17827 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17828
17829         * metadata.c (mono_get_param_info): set alignment for value types
17830
17831 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17832
17833         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17834         Constify mono_domain_assembly_open().
17835         * loader.c: handle null namespace in icalls.
17836
17837 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17838
17839         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17840         (emit_str_to_ptr_conv): marshal object as structs
17841
17842         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17843
17844         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17845
17846 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17847
17848         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17849         (mono_marshal_get_native_wrapper): we an now return value types
17850
17851 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17852
17853         * verify.c: more checks implemented.
17854
17855 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17856
17857         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17858         (fix bug #27695)
17859         (mono_marshal_get_native_wrapper): allow byref arguments
17860         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17861         impl. PtrToStringXXX methods
17862         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17863         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17864         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17865         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17866         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17867
17868 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17869
17870         * reflection.c: fix buglet in parsing an assembly name.
17871
17872 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17873
17874         * marshal.c (emit_ptr_to_str_conv): first impl.
17875
17876 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17877
17878         * object.c, class.h: cache the vtable in the class as suggested by
17879         vargaz@freemail.hu (Zoltan Varga).
17880
17881 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17882
17883         * class.h, loader.c: added mono_field_from_token().
17884         * verify.c: first cut of type checking code.
17885
17886 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17887
17888         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17889
17890 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17891
17892         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17893         (fix bug #27782)
17894         (mono_marshal_get_remoting_invoke): impl.
17895         (mono_delegate_begin_invoke): impl.
17896         (mono_mb_emit_save_args): impl.
17897         (mono_delegate_end_invoke): impl.
17898         (mono_marshal_get_delegate_begin_invoke):
17899         (mono_marshal_get_delegate_end_invoke):
17900         (mono_marshal_get_delegate_invoke): generate a special name for
17901         those methods (including the signature) and associate them whith
17902         the delegate class. 
17903
17904 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17905
17906         * reflection.[ch]: 
17907         (mono_reflection_type_from_name): now it has a MonoImage parameter
17908         which is used as the default image to search the type in. If the image
17909         is NULL or getting the type from it fails, it defaults to corlib.
17910
17911         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17912         new parameter.
17913
17914 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17915
17916         * reflection.c: update the parameter table index.
17917
17918 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17919
17920         * domain.c: don't include the mark byte in the string hash.
17921
17922 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17923
17924         * icall.cs: icall for Type.GetTypeCode ().
17925         * verify: a couple of fixes and disabled local initialization checks.
17926
17927 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
17928
17929         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
17930
17931         * debug-helpers.c (mono_method_full_name): print the type of the
17932         runtime wrapper
17933
17934         * metadata.c (mono_signature_hash): a hash function for signatures
17935         (mono_signature_hash): better hash algorithm
17936
17937         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
17938
17939         * debug-helpers.c (mono_method_full_name): this can now generate
17940         method names with signatures
17941
17942         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
17943         method dont have this pointers.
17944
17945 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17946
17947         * reflection.c: fixup typebuilder tokens.
17948         * image.c: fix buglet.
17949         * marshal.h: remove whitespace.
17950         * metadata.h, metadata.c: reinstate code that was removed.
17951         * verify.c: handle catch directives and fix another couple of bugs.
17952
17953 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
17954
17955         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
17956         (mono_marshal_get_native_wrapper): make it comp. with the old code
17957         (mono_marshal_get_native_wrapper): support boolean
17958         (mono_marshal_get_managed_wrapper): support more types
17959
17960 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
17961
17962         * class.c (class_compute_field_layout): compute class->blittable attribute.
17963
17964 2002-07-09  Dick Porter  <dick@ximian.com>
17965
17966         * threads.c: Make the thread cleaning up cope with threads that
17967         call ExitThread()
17968
17969 2002-07-08  Radek Doulik  <rodo@ximian.com>
17970
17971         * reflection.c (method_encode_code): use non-translated values to
17972         compute finally_start, this fixes exception handling on ppc, yay!
17973
17974         * decimal.h (struct signscale): fix endianess
17975
17976 2002-07-07  Radek Doulik  <rodo@ximian.com>
17977
17978         * reflection.c: swap box_val and not val
17979
17980 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17981
17982         * reflection.c, reflection.h: handle full assembly info in type name.
17983         Handle Type arguments when loading custom attributes.
17984         * icall.c: updated to use new mono_reflection_type_from_name () method.
17985
17986 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17987
17988         * loader.c:
17989         (method_from_memberref): also print assembly name when method not found.
17990
17991 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17992
17993         * icall.c:
17994         (ves_icall_TypeGetProperties): fixed bug #27473. 
17995
17996 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17997
17998         * reflection.c: display image name and token when cannot find the
17999         .ctor for an attribute.
18000
18001 2002-07-05  Martin Baulig  <martin@gnome.org>
18002
18003         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18004
18005 2002-07-04  Dick Porter  <dick@ximian.com>
18006
18007         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18008         compile on mingw.  This will cause mingw builds to not wait for
18009         subthreads to terminate after the main thread does.  I've lodged a
18010         bug with the mingw developers for them to wrap OpenThread().
18011
18012 2002-07-03  Dick Porter  <dick@ximian.com>
18013
18014         * threads.c: Store thread IDs instead of handles, because
18015         GetCurrentThread() returns a pseudohandle and therefore stores
18016         useless values.  mono_thread_cleanup() continues checking the
18017         array of threads until it is empty, to cope with subthreads
18018         spawning new threads after the main thread has finished.
18019
18020         * profiler.h:
18021         * profiler.c:
18022         * profiler-private.h: Pass the thread ID to thread profiler
18023         functions, instead of a handle
18024
18025 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18026
18027         * verify.c: fixes to make it more usable.
18028         * pedump.c: added --verify code to verify IL code in an assembly.
18029
18030 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18031
18032         * reflection.c: turn errors into warnings to allow compiling corlib.
18033
18034 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18035
18036         * reflection.c: add special cases to compile corlib.
18037
18038 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18039
18040         * reflection.c: handle properties with only a set method.
18041
18042 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * opcodes.h: add enum with opcodes in opval order.
18045
18046 2002-07-01  Dick Porter  <dick@ximian.com>
18047         
18048         * object.h:
18049         * object.c (mono_runtime_run_main): Removed unneeded argument
18050
18051 2002-06-28  Martin Baulig  <martin@gnome.org>
18052
18053         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18054
18055 2002-06-27  Dick Porter  <dick@ximian.com>
18056
18057         * threads.c: Store the handle in both the parent thread and in the
18058         subthread, to minimise the time between starting a new thread and
18059         storing its ID.
18060
18061 2002-06-26  Dick Porter  <dick@ximian.com>
18062
18063         * appdomain.c (mono_runtime_cleanup): Close the socket library
18064         after all the threads have finished, not before
18065
18066 2002-06-26  Martin Baulig  <martin@gnome.org>
18067
18068         * debug-symfile.c (mono_debug_find_source_location): Added
18069         `guint32 *line_number' argument.  If it's not NULL, store the line number
18070         there and return the file name without the line number.
18071
18072 2002-06-25  Dick Porter  <dick@ximian.com>
18073
18074         * icall.c:
18075         * process.h:
18076         * process.c: Process forking and other support functions
18077
18078 2002-06-25  Dick Porter  <dick@ximian.com>
18079
18080         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18081         things dont happen when the image is closed.
18082         (mono_image_lookup_resource): Walk the resource section looking
18083         for a particular entry
18084
18085         * cil-coff.h: PE resource section decoding
18086
18087 2002-06-25  Dick Porter  <dick@ximian.com>
18088         
18089         * assembly.h:
18090         * assembly.c: 
18091         (mono_assembly_foreach): Accessor functions to walk the list of
18092         loaded assemblies
18093         (mono_assembly_set_main):
18094         (mono_assembly_get_main): Process methods need to know which
18095         assembly is the "main" one
18096
18097         * object.c (mono_runtime_run_main): Record the main assembly
18098
18099         * debug-helpers.c: Fix typo
18100
18101 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18102
18103         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18104         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18105
18106 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18107
18108         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18109
18110 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18111
18112         * image.c (do_mono_image_open): Initialize reference count,
18113         otherwise we leak the MonoImage.
18114
18115 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18116
18117         * reflection.c: small tweak to handle self-hosting.
18118
18119 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18120
18121         * reflection.c: fix type name parse code.
18122
18123 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18124
18125         * reflection.c: break out of the loop.
18126         * image.c: special case corlib.
18127
18128 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18129
18130         * reflection.c: add all the custom attrs at the end to ensure the
18131         ctors have been properly initialized when the attributes are defined
18132         in the current assembly.
18133
18134 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18135
18136         * reflection.c: handle correctly multiple-nested types.
18137
18138 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18139
18140         * row-indexes.h: fix typos.
18141         * reflection.c: adjust for typos and fix method_def_or_ref
18142         encoding in MethodImpl table.
18143
18144 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18145
18146         * reflection.c: fix entry point patching (thanks Serge!).
18147
18148 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18149
18150         * verify.c: add check for System.Exception
18151
18152 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18153
18154         * image.c, class.c: minifix for code just c&p'ed.
18155         * reflection.c: warning fix.
18156         * object.h, loader.h, domain.c: load also StringBuilder.
18157
18158 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18159
18160         * marshal.h, marshal.c: some support code to handle complex marshaling.
18161
18162 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18163
18164         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18165         Better signatures with vtable error dump.
18166
18167 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18168
18169         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18170
18171 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18172
18173         * icall.c (ves_icall_Type_GetField): impl.
18174
18175 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18176
18177         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18178         to retrieve a marshal description blob for a field or param.
18179
18180 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18181
18182         * reflection.h, reflection.c: change order of nested type emission
18183         to avoid table corruption. The NestedTypes table is sorted.
18184         * icall.c: change order of GetConstructor results to workaround mcs bug.
18185
18186 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18187
18188         * reflection.h, reflection.c: handle field and param marshal
18189         information.
18190
18191 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18192
18193         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18194
18195 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18196
18197         * reflection.c: fix call convention.
18198
18199 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18200
18201         * reflection.h, reflection.c: mono_image_get_memberref_token()
18202         takes a type instead of a class, now. Added
18203         mono_image_get_array_token() to create tokens for the special
18204         multi-dim array methods.
18205
18206 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18207
18208         * assembly.c: handle modules (no assembly table). Split
18209         loading references in its own function.
18210         * class.c: handle moduleref resolution scope.
18211         * image.c, image.h: cache module name in image.
18212
18213 2002-06-07  Martin Baulig  <martin@gnome.org>
18214
18215         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18216         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18217
18218 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18219
18220         * icall.c: more signature fixes that used uint instead of int.
18221
18222 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18223
18224         * reflection.c: fixed signature of field refs.
18225
18226 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18227
18228         * class.c, reflection.c: handle typerefs of nested types
18229         (both on read and when writing files).
18230
18231 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18232
18233         * icall.c: fix method signatures that tried to workaround the previous
18234         typo, d'oh!
18235
18236 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18237
18238         * debug-helpers.c: fix typo.
18239
18240 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18241
18242         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18243         rewrote the PE/COFF writing code (our programs are understood by the
18244         ms runtime, now).
18245
18246 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18247
18248         * gc.c, gc.h, icall.c: weakreference support.
18249
18250 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18251
18252         * Makefile.am, mono-config.c: use $(sysconfdir).
18253
18254 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18255
18256         * icall.c: changed default precision of Double.ToString() to 15.
18257         Fixed memory leak. Unified with Single.ToString.
18258
18259 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18260
18261         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18262
18263 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18264
18265         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18266         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18267         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18268         and myself.
18269
18270 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18271
18272         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18273
18274 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18275
18276         * reflection.c, socket-io.c: more compilation fixes.
18277
18278 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18279
18280         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18281         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18282         unicode.c: warning and compiler compatibility fixes.
18283
18284 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18285
18286         * class.h, metadata.c: fixed warnings/compilation errors.
18287
18288 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18289
18290         * Makefile.am, mono-config.c, mono-config.h: configuration file
18291         support routines.
18292         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18293         config file. Export methods to insert and lookup mappings.
18294
18295 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18296
18297         * reflection.c: handle types and boxed objects in custom attr
18298         constructors.
18299
18300 2002-05-30  Martin Baulig  <martin@gnome.org>
18301
18302         * debug-symfile.c
18303         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18304
18305 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18306
18307         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18308         to lookup the implmap row for a P/Invoke method.
18309         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18310         P/Invoke method from the runtime on an as needed basis.
18311
18312 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18313
18314         * metadata.c (mono_metadata_parse_signature): impl.
18315
18316 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18317
18318         * class.c: handle .pack directive.
18319
18320 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18321
18322         * object.c: initialize static fields with RVA data.
18323
18324 2002-05-25  Martin Baulig  <martin@gnome.org>
18325
18326         * debug-symfile.c
18327         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18328
18329 2002-05-24  Martin Baulig  <martin@gnome.org>
18330
18331         * debug-symfile.c
18332         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18333         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18334         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18335
18336 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18337
18338         * object.c: special case string ctros in invoke.
18339         * gc.c: silly whitespace changes.
18340
18341 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18342
18343         * threadpool.[ch]: impl. a threadpool that can
18344         be used by mint and mono.
18345
18346 2002-05-22  Martin Baulig  <martin@gnome.org>
18347
18348         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18349         The first argument is now a `MonoReflectionModuleBuilder *', the return
18350         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18351         `methods' field to get the method builder.  The `token' argument is the
18352         unfixed token.
18353
18354         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18355         invalid characters instead of g_assert_not_reached()ing.  This seems
18356         to be the behaviour of mscorlib.
18357
18358 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18359
18360         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18361         Hestilow to fix bug #25104
18362
18363 2002-05-21  Martin Baulig  <martin@gnome.org>
18364
18365         * debug-symfile.c (mono_debug_find_source_location): New function.
18366         Looks up an IL offset in the line number table and returns the source
18367         location as a string.
18368
18369 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18370
18371         * icall.c:
18372         (mono_double_ToStringImpl): changed %f by %g until we have something
18373         better.
18374
18375 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18376
18377         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18378         parameters first in C#.
18379
18380 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18381
18382         * icall.c, reflection.h: added icall to get info about an event.
18383
18384 2002-05-20  Radek Doulik  <rodo@ximian.com>
18385
18386         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18387         endian
18388         (mono_value_box): don't use memcpy for small sizes on
18389         architectures with unaligned access
18390
18391 2002-05-20  Martin Baulig  <martin@gnome.org>
18392
18393         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18394         if `tb->parent == NULL'.
18395         (mono_reflection_create_internal_class): New function.  This is
18396         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18397         for enum types.
18398
18399         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18400         New interncall.
18401
18402 2002-05-19  Martin Baulig  <martin@gnome.org>
18403
18404         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18405         argument to get the length, don't default to the array length.
18406
18407 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18408
18409         * assembly.c (mono_assembly_setrootdir): New function used to
18410         override the MONO_ASSEMBLIES directory.
18411
18412 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18413
18414         * icall.c: ValueType_GetHashCode() initialize local var.
18415
18416 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18417
18418         * reflection.c: sort custom attributes table.
18419
18420 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18421
18422         * reflection.c: support named args in custom attributes (write support).
18423
18424 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18425
18426         * reflection.c: fix finally position calculation.
18427
18428 2002-05-15  Radek Doulik  <rodo@ximian.com>
18429
18430         * reflection.c: fixed endianess at many places
18431
18432         * icall.c (ves_icall_InitializeArray): comment out debug msg
18433
18434 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18435
18436         * object.c (mono_unhandled_exception): new function to handle
18437         unhandled exceptions.
18438         (mono_unhandled_exception): call the UnhandledException event.
18439         (mono_runtime_delegate_invoke): impl.
18440
18441 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18442
18443         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18444         returns the RVA, not the direct pointer to the data. Handle the case
18445         when the class size is fixed.
18446
18447 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18448
18449         * reflection.c: fix some endianess issues.
18450
18451 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18452
18453         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18454
18455         * threads.c (mono_thread_init): added a callback which is invoked
18456         at thread start.
18457
18458 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18459         
18460         * icall.c: make GetHashCode return non-negative values.
18461
18462 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18463
18464         * object.c, icall.c, gc.c: revert to address-based hashcode.
18465
18466 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18467
18468         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18469
18470 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18471
18472         * icall.c, class.c: special case <Module>.
18473
18474 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18475
18476         * icall.c: fix bug in GetNow().
18477
18478 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18479
18480         * object.c (mono_runtime_class_init): make sure that we call all
18481         static class constructors.
18482
18483 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18484
18485         * reflection.c: sort methodsemantics table.
18486
18487 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18488
18489         * reflection.h, reflection.c: honour init locals setting.
18490
18491 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18492
18493         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18494
18495 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18496
18497         * reflection.c: support ContructorBuilders in attribute blob creation.
18498
18499 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18500
18501         * reflection.c: some changes to build a binary that can be run
18502         directly in windows.
18503
18504 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18505
18506         * loader.c: print a big message when an icall can't be found.
18507
18508 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18509
18510         * string-icalls.c: fix bug 24248.
18511
18512 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18513
18514         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18515         icall.c, reflection.h: separate assembly loading by pathname and by
18516         assembly name. Use the MONO_PATH env var to search for assemblies.
18517
18518 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18519
18520         * assembly.c, image.h: add some support for assemblies
18521         with multiple modules.
18522         * class.c, class.h: export mono_class_from_typeref().
18523         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18524         instead.
18525
18526 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18527
18528         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18529         documentation says (the ECMA one is correct).
18530
18531 2002-05-02  Dick Porter  <dick@ximian.com>
18532
18533         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18534         Don't name the synchronisation mutex.
18535
18536 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18537
18538         * rand.c
18539         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18540         Make the prototypes match.
18541         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18542         Same.
18543
18544         * icall.c
18545         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18546         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18547         all systems have tm.tm_zone, so use strftime() with %Z to print
18548         the timezone abreviation into a temp string.
18549
18550         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18551         rather than mono_array_addr() on a MonoString on Big Endian
18552         machines.
18553
18554 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18555
18556         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18557         fix bug 24041
18558
18559 2002-04-30  Dick Porter  <dick@ximian.com>
18560
18561         * socket-io.c: Cope with SOCKET being an integer rather than a
18562         pointer now.
18563
18564         * threads.c: Added Thread_free_internal, to deal with thread
18565         handle cleanup.  Moved calls to handle_store() and handle_remove()
18566         to start_wrapper(), so each can only be called once.  Allocate
18567         synchronisation blocks with GC_malloc(), and use GC finalisation
18568         to close the handles.
18569
18570         * icall.c: added System.Threading.Thread::Thread_free_internal
18571
18572 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18573
18574         * icall.c: support Environment.Exit, CommandLineArgs().
18575
18576 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18577
18578         * object.c, object.h: added mono_runtime_run_main () and
18579         mono_runtime_get_main_args () for use in System.Environment.
18580
18581 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18582
18583         * gc.c: fix thinko, enable actual finalization since the jit is now
18584         fixed.
18585
18586 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18587
18588         * gc.c, object.c: take into account that an object may be offset wrt the address
18589         returned by GC_malloc().
18590
18591 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18592
18593         * image.c: handle files without entries in the assembly table (modules).
18594
18595 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18596
18597         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18598         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18599         allowed to be null when it's System.Object class setup.
18600
18601 2002-04-27  Martin Baulig  <martin@gnome.org>
18602
18603         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18604         if `tb->parent == NULL' rather than crashing.
18605
18606 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18607
18608         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18609         calling acos() where asin() should have been called.
18610
18611 2002-04-26  Martin Baulig  <martin@gnome.org>
18612
18613         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18614         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18615         there's a subdirectory called `System', but we don't want to read that
18616         subdirectory as an assembly.
18617
18618 2002-04-25  Martin Baulig  <martin@gnome.org>
18619
18620         * debug-symfile.c: Reflect latest MonoString changes.
18621
18622 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18623
18624         * rand.c, rand.h: instance method icalls need to have an explicit
18625         this pointer as first argument in the C implementation.
18626
18627 2002-04-25  Nick Drochak <ndrochak@gol.com>
18628
18629         * icall.c: Fix typo in map for GetNonZeroBytes
18630
18631 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18632
18633         * string-icalls.c : String does now passes unit tests without any 
18634         errors, the following changes has been made:
18635         
18636         Implemented replace methods.
18637         Renaming of methods to (try) follow the standard.
18638         Fixed compare ordinal
18639         Made all memory allocated directly to function instead of via icall function.
18640         Small performance fix in is_in_array function
18641                         
18642  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18643
18644         c (mono_string_Internal_ctor_charp_int_int):
18645         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18646         sindex < 0, throw ArgumentOutOfRangeException instead of
18647         ArgumentNullException.
18648
18649         Added new check for length == 0, however
18650         I need to make it return String.Empty from the C code.
18651         
18652         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18653         that calculate the length for us here.
18654         
18655         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18656         mono_string_new_utf16 with mono_string_new, since value is utf8.
18657
18658 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18659
18660         * object.c: register the object for finalization if needed.
18661         Allocate one more char in the string for the terminating 0 char.
18662
18663 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18664
18665         * class.c, class.h, image.c: check if a type implemenst a destructor.
18666         Use the proper key for array class lookups.
18667         * icall.c: register the icalls in the System.GC class.
18668         * gc.c, gc.h: GC-related functions and icalls.
18669
18670 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18671
18672         * icall.c:
18673         * socket-io.c:
18674         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18675         changed a couple of free () by g_free ().
18676
18677         * decimal.c: one-liner in the comments for decimal2string ().
18678
18679 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18680
18681         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18682
18683 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18684
18685         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18686         * object.c (mono_runtime_invoke_array) : handle null in params
18687
18688 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18689
18690         * string-icalls.c: fixed bug in split (one off bug)
18691
18692 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18693
18694         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18695         * icalls.c: added String::Equals as internal method
18696
18697 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18698
18699         * threads.c: fixed bug in the double interlocked functions
18700
18701 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18702
18703         * threads.c: implemented all of the new interlocked icalls.
18704         * string-icalls.c: fix a bug in insert.
18705         * icalls.c: added the icalls for interlocked, removed old string functions.
18706         
18707 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18708
18709         * loader.c: fix off-by-one error when reading argument names.
18710
18711 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18712
18713         * profiler.c: win32 counter implementation (untested).
18714         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18715         (the latter needs testing and more complete impl. from win32 folks).
18716
18717 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18718
18719         * object.c: mono_array_new_full workaround mono_array_class_get
18720         problem.
18721
18722 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18723
18724         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18725         * object.h (mono_string_chars): Changed casting type.
18726
18727 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18728
18729         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18730                            method signatures to use gunichar2 instead of gint16.
18731
18732 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18733
18734         * object.h, object.c: domain-specific versions of mono_object_new and
18735         mono_array_new.
18736
18737 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18738
18739         * object.c: changed String layout
18740
18741         * string-icalls.c (mono_string_Internal_ctor_chara): added
18742         internal string constructors.
18743
18744 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18745
18746         * threads.c: pass 'this' to the thread start routine.
18747
18748 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18749
18750         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18751         InternalCompareStr don't call twice mono_string_cmp_char for the last
18752         character. Improved performance in mono_string_cmp_char.
18753
18754 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18755
18756         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18757         code into its own library: libmonoruntime.
18758
18759 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18760
18761         * object.h, object.c: changed array format so that szarrays do not
18762         require a bounds structure.
18763         * icall.c, appdomain.c: support for new szarray format.
18764
18765 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18766
18767         * metadata.c: compare also the retuns type when comparing signatures:
18768         we didn't do this as an optimization since really overloaded methods
18769         must differ also in the arguments, but this doesn't work with
18770         low-level IL code (or when using explicit conversion operators: see
18771         bug#23498 for an example).
18772
18773 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18774
18775         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18776
18777 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18778
18779         * icall.c: make MonoType::GetElementType its own icall.
18780
18781 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * icall.c: remove MonoMethod_get_Name().
18784         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18785         object.
18786
18787 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18788
18789         * string-icalls.c: optimized a few methods.
18790
18791 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18792
18793         * icall.c: added all new string internal calls
18794         * string-icalls.c: added, new string internal call implementation.
18795         * object.c: added mono_string_new_size for allocating a string a size
18796
18797 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18798
18799         * object.c (mono_object_isinst): use the same code as in the
18800         optimized x86 version.
18801
18802 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18803
18804         * profiler.c: TSC-based timer code (faster and more accurate).
18805         Not hooked up in configure, yet (set USE_X86TSC to 1).
18806
18807 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18808
18809         * profiler.c, profiler.h: track time spent compiling methods.
18810         * threads.c: track thread creation/destruction.
18811
18812 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18813
18814         * profiler.c, profiler.h, profiler-private.h: profiling interface
18815         and sample implementation. Moved here so that it can be used also by
18816         the jit.
18817
18818 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18819
18820         * reflection.c, reflection.h: keep types and other handles separate in
18821         the hash tables for referred tokens. Add guid for modules.
18822
18823 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18824
18825         * assembly.c: fix bugs found with valgrind.
18826         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18827
18828 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18829
18830         * threads: added icall support for getting current domain for
18831                    the thread.
18832  
18833 2002-04-13  Martin Baulig  <martin@gnome.org>
18834
18835         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18836         (MonoDebugVarInfo): Added `index' field for register based addresses.
18837         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18838         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18839         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18840         `MonoDebugVarInfo *this_var'.
18841
18842         * debug-symfile.c (relocate_variable): New static function to write
18843         a location description for a local variable or method parameter.
18844
18845 2002-04-12  Martin Baulig  <martin@gnome.org>
18846
18847         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18848         stack offset and begin/end scope address of a local variable.
18849         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18850         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18851         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18852
18853         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18854         Added new relocation types for start/end scope of a local variable.
18855
18856 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18857
18858         * object.h: add mono_object_domain() macro.
18859         * reflection.c: handle typespecs.
18860         * icall.c: MonoMethod::get_Name() implementation.
18861
18862 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18863
18864         * icall.c: String::GetHashCode() icall implementation.
18865
18866 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18867
18868         * icall.c: String::IndexOfAny icall.
18869         * object.c, object.h: make array->max_length more useful.
18870         Intrduced mono_object_class() and mono_string_length() macros.
18871
18872 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18873
18874         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18875         instead of g_unichar_isdigit.
18876
18877 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18878
18879         * icall.c: Implement a simple Double.ToString().
18880
18881 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18882
18883         * appdomain.h: only io-layer.h is supposed to be included.
18884         * icall.c: explicitly import environ. Fix warning.
18885
18886 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18887
18888         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18889                 return true even if it's not Daylight Savings time.
18890                 Only return false for the case where the function isn't
18891                 implemented for a plaform (read Windows).
18892
18893 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18894
18895         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18896         data with a mutex.
18897
18898 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18899
18900         * mempool.c (mono_mempool_alloc): only use g_malloc when
18901         absolutely necessary.
18902
18903 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18904
18905         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18906
18907         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18908         (mono_class_proxy_vtable): use domain mempool
18909
18910 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18911
18912         * appdomain.h, appdomain.c: split initialization that requires the
18913         execution engine support into mono_runtime_init().
18914
18915 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18916
18917         * class.c (mono_class_init): don't include vtable inside MonoClass
18918         to save some memory, gather some statistics.
18919         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18920
18921 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18922
18923         * icall.c: internalcall implementation for ValueType.Equals().
18924
18925 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18926
18927         * object.c (mono_message_init): moved 
18928         (mono_runtime_exec_main): new arch. independent impl.
18929         (mono_runtime_invoke_array): new method - like
18930         mono_runtime_invoke, but you can pass an array of objects.
18931         (mono_remoting_invoke): new arch. independent impl.
18932         (mono_message_invoke): new arch. independent impl.
18933         (mono_runtime_class_init): new arch. independent impl.
18934         (mono_runtime_object_init): new arch. independent impl.
18935
18936 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18937
18938         * metadata.c, object.c, reflection.c: documented the exported
18939         functions.
18940
18941 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18942
18943         * icall.c: simpler code to pass the assembly builder data to corlib.
18944         Implement GetNestedTypes() internalcall.
18945
18946 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18947
18948         * class.c: warn if a type can't be loaded.
18949
18950 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
18951
18952         * image.h: typedef MonoImageOpenStatus
18953         * types.h: removed unused file
18954         
18955 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
18956
18957         * icall.c: Enum_ToObject accepts enum value arguments.
18958
18959 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18960
18961         * class.c: move initialization of properties, events and nested
18962         classes, so that they happen for interfaces, too.
18963
18964 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18965
18966         * icall.c: cleanup some ugly casts in Array_SetValue*.
18967
18968 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18969
18970         * icall.c: the values array fro enums is of the correct type, now.
18971         Implement (correctly) getFullName instead of assQualifiedName for
18972         MonoType.
18973         * reflection.h, reflection.c: added mono_type_get_name ().
18974
18975 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18976
18977         * assembly.c, image.h: for each MonoImage, record from wich assembly
18978         it was loaded.
18979         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
18980         Make Type.Assembly work.
18981
18982 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
18983
18984         * debug-symfile.h: use char* instead of gpointer to avoid
18985         unnecessary casts.
18986
18987         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
18988
18989         * icall.c (ves_icall_InternalExecute): impl. FielSetter
18990         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
18991
18992 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
18993
18994         * icall.c (mono_message_init): impl. (code cleanup)
18995         (ves_icall_InternalExecute): impl. FieldGetter
18996
18997         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
18998         defined we call all (non-static)methods through the vtable. 
18999
19000 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19001
19002         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19003         finalizer even though the memory is still referenced (and the chunk of
19004         memory is not freed).
19005
19006 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19007
19008         * assembly.c: fix brokeness.
19009
19010 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19011
19012         * class.c: kill some warnings. Check explicit interface method
19013         implementation also without considering the namespace.
19014         Load also literal strings in static class data.
19015
19016 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19017
19018         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19019         (default_assembly_name_resolver): Make the resolver take the
19020         "base" directory where the assembly was originally defined, so we
19021         can load DLLs that are in the same directory as the assembly that
19022         is being referenced.
19023
19024 2002-03-28  Dick Porter  <dick@ximian.com>
19025
19026         * file-io.h: 
19027         * file-io.c:
19028         * socket-io.c: 
19029         * unicode.h: 
19030         * unicode.c: Warning cleanups
19031
19032 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19033
19034         * object.h, reflection.h: use the correct type instead of MonoObject.
19035
19036 2002-03-28  Martin Baulig  <martin@gnome.org>
19037
19038         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19039         (mono_debug_update_symbol_file): Initialize classes if necessary.
19040
19041 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19042
19043         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19044         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19045
19046 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19047
19048         * assembly.h: fix function prototype.
19049         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19050         * mono-endian.h: use const cast.
19051
19052 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19053
19054         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19055
19056 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19057
19058         * loader.c: don't assert when a typeref can't be loaded, give
19059         a chance to the runtime to trow an exception instead.
19060         * loader.h: fix warning.
19061
19062 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19063
19064         * class.c (mono_class_proxy_vtable): added proxy support
19065
19066 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19067
19068         * icall.c: removed last of PAL calls, added System.Environment
19069         * file-io.h, file-io.c: MonoIO implementation
19070         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19071
19072 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19073
19074         * appdomain.c: do not use the byte marker in ldstr table lookup.
19075         * debug-helpers.c: allow two ':' to separate class and method name.
19076         * object.c: allocate arrays bounds with the GC, too.
19077         * verify: add a few more checks.
19078
19079 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19080
19081         * reflection.c: output also literal strings. Allocate parameter data
19082         with GC_malloc() (thanks, Martin, for catching this!).
19083
19084 2002-03-26  Martin Baulig  <martin@gnome.org>
19085
19086         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19087         include the `this' offset in the `param_offsets'.
19088
19089 2002-03-25  Martin Baulig  <martin@gnome.org>
19090
19091         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19092         mono_debug_get_class() function to get the classes. Added new
19093         relocation types for arrays and strings.
19094         (mono_debug_get_class): New static function to search in all
19095         referenced assemblies for a metadata token.
19096
19097         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19098
19099 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19100
19101         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19102         hold gc-allocated objects. Make the string heap a stream like the
19103         others. Removed duplicated code when writing stream info.
19104         Added asserts to catch possible buffer overflows. Set the sorted map
19105         for tables that need sorting. Added some documentation.
19106
19107 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19108
19109         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19110         for interned strings and vtables.
19111
19112 2002-03-24  Martin Baulig  <martin@gnome.org>
19113
19114         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19115         it in the array since it was created with g_slist_prepend().
19116
19117 2002-03-24  Martin Baulig  <martin@gnome.org>
19118
19119         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19120         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19121         (mono_debug_method_from_token): Renamed to
19122         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19123         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19124
19125         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19126         relocation types.
19127
19128         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19129
19130 2002-03-24  Martin Baulig  <martin@gnome.org>
19131
19132         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19133         (mono_debug_method_from_token): New func.
19134
19135         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19136         New interncall, calls mono_debug_local_type_from_signature().
19137         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19138         calls mono_debug_method_from_token().
19139
19140 2002-03-23  Martin Baulig  <martin@gnome.org>
19141
19142         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19143         specifies the number of bytes to be converted, not the array size.
19144         Return the number of chars, not the number of bytes.
19145         (ves_icall_iconv_get_chars): The `byteCount' argument
19146         specifies the number of bytes to be converted, not the array size.
19147
19148 2002-03-23  Martin Baulig  <martin@gnome.org>
19149
19150         * reflection.h (MonoReflectionSigHelper): New type.
19151
19152         * reflection.c (mono_reflection_sighelper_get_signature_local),
19153         (mono_reflection_sighelper_get_signature_local): New functions.
19154
19155         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19156         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19157         interncalls.
19158
19159 2002-03-23  Martin Baulig  <martin@gnome.org>
19160
19161         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19162         is_writeable is set.
19163         (mono_raw_buffer_update): New function to write the modified map
19164         back to disk.
19165
19166         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19167
19168         * debug-symfile.c (mono_debug_update_symbol_file): Call
19169         mono_raw_buffer_update() when done writing.
19170
19171 2002-03-23  Martin Baulig  <martin@gnome.org>
19172
19173         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19174
19175         * debug-symfile.c: Added support for arguments and local variables.
19176
19177 2002-03-23  Dick Porter  <dick@ximian.com>
19178
19179         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19180         protected by ifdefs, hence breaking the w32 build.
19181
19182 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19183
19184         * object.c: implement is_interned() the right way.
19185
19186 2002-03-21  Martin Baulig  <martin@gnome.org>
19187
19188         * debug-symfile.[ch]: New files to handle debugging information
19189         files. There's also support to dynamically update these symbol
19190         files to include machine dependent information.
19191
19192 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19193
19194         * threads.c (mono_thread_create): new function to create thread
19195         from C
19196
19197 2002-03-20  Martin Baulig  <martin@gnome.org>
19198
19199         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19200         method is a constructor.
19201         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19202         points to ves_icall_InternalInvoke().
19203
19204 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19205
19206         * file-io.c: Flush shouldn't throw exceptions.
19207
19208 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19209
19210         * file-io.c: FileStream flush support; FileSetLength now
19211         restores file pointer.
19212
19213 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19214
19215         * class.c: set image for pointer classes.
19216
19217 2002/03/19  Nick Drochak <ndrochak@gol.com>
19218
19219         * sysmath.c: Forgot one.
19220
19221 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19222
19223         * sysmath.c: Avoid redefining existing names.
19224
19225 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19226
19227         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19228         handled by runtime as icall rather than dllimport from libm.so
19229         * file-io.c, file-io.h: fixed handle argument type.
19230
19231 2002-03-18  Dick Porter  <dick@ximian.com>
19232
19233         * reflection.c (mono_image_get_type_info): rename interface to
19234         iface, because of "#define interface struct" on windows.
19235
19236 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19237
19238         * class.c, class.h: rename and export mono_ptr_class_get().
19239         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19240         * reflection.c, reflection.h, icall.c: better/saner type name
19241         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19242         method signatures.
19243
19244 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19245
19246         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19247
19248         * icall.c (ves_icall_InternalInvoke): impl.
19249
19250 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19251
19252         * reflection.c: output the interface map table, too.
19253
19254 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19255
19256         * class.c (class_compute_field_layout): separate computation of 
19257         static field layout
19258
19259 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19260
19261         * icall.c: added System.Buffer support.
19262         * file-io.c: moved file icalls from PAL to FileStream.
19263
19264 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19265
19266         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19267
19268 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19269
19270         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19271
19272 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19273
19274         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19275
19276 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19277
19278         * debug-helpers.{c,h}: moved here from monograph some useful functions
19279         to locate a method by name/signature in a class or image. Included
19280         also a small and flexible IL disassembler.
19281
19282 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19283
19284         * reflection.c: fixup tokens in methods with small header size, too.
19285
19286 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19287
19288         * object.c (mono_string_to_utf8): remove assert(!error), instead
19289         print a warning. 
19290
19291 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19292
19293         * icall.c: update to the new mono_Array_class_get interface.
19294
19295 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19296
19297         * appdomain.c, object.c: Boehm-GC enable.
19298         * icall.c: make get_data_chunk() support split data requests.
19299         Ensure a class is initialized in more cases. Return only the first
19300         property found in GetProperties() or the compiler gets confused. 
19301         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19302         * reflection.h, reflection.c: add fixup mechanism for field and method
19303         tokens. Initialize assembly->typeref in a single place. Output
19304         properties after events. Support custom attributes for events, too.
19305         Typo fix for paramter custom attrs.
19306
19307 2002-03-07  Martin Baulig  <martin@gnome.org>
19308
19309         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19310
19311 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19312
19313         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19314
19315 2002-03-06  Martin Baulig  <martin@gnome.org>
19316
19317         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19318         non-zero lower bounds. See testcases #F10-#F13.
19319
19320 2002-03-05  Martin Baulig  <martin@gnome.org>
19321
19322         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19323
19324         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19325         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19326         here.
19327         (ves_icall_System_Array_SetValue): Likewise.
19328         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19329         as argument and does the actual work. This function is used when copying a
19330         multi-dimensional array.
19331         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19332         now do all the widening conversions of value types.
19333         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19334
19335 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19336
19337         * class.c: remove some magic numbers and use the smbolic names,
19338         instead. Added init_events() to load event info at class init time.
19339         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19340         and mono_metadata_methods_from_event().
19341         * reflection.h, reflection.c: added support for writing out the evnets
19342         related information.
19343
19344 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19345
19346         * reflection.h, icall.c: use a different method (GetInterfaces)
19347         to gather interface info and add isbyref, isprimitive and
19348         ispointer to the ves_icall_get_type_info() return value.
19349
19350 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19351
19352         * class.h: stared adding support for events.
19353         * icall.c: split find_members implementation. Added debug icall to get
19354         the address of an object.
19355         * reflection.c: handle TypeBuilders in mono_type_get_object().
19356
19357 2002-03-01  Martin Baulig  <martin@gnome.org>
19358
19359         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19360         ArgumentOutOfRangeException(), not an ArgumentException().
19361         (ves_icall_System_Array_GetLowerBound): Likewise.
19362         (ves_icall_System_Array_GetValue): Improved argument checking.
19363         (ves_icall_System_Array_SetValue): Improved argument checking.
19364
19365 2002-03-01  Martin Baulig  <martin@gnome.org>
19366
19367         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19368         called with invalid arguments rather than just dying with g_assert().
19369         (ves_icall_System_Array_SetValue): Likewise.
19370         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19371         raise a NotImplementedException instead.
19372         (ves_icall_System_Array_GetLength): Added argument checking.
19373         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19374
19375 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19376
19377         * object.h (mono_assert): new macros mono_assert and
19378         mono_assert_not_reached
19379
19380 2002-02-28  Martin Baulig  <martin@gnome.org>
19381
19382         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19383         and "System::String::IsInterned" to "System::String::_IsInterned".
19384
19385 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19386
19387         * icall.c: remove hacks for typebuilder. Added icall to create a
19388         modified type from a tybebuilder.
19389         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19390         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19391         to create a backing MonoClass for a TypeBuilder.
19392
19393 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19394
19395         * class.c, class.h: more refactoring of class init.
19396         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19397
19398 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19399
19400         * marshal.c, marshal.h: start of marshaling interface.
19401
19402 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19403
19404         * icall.c: fix order in assembly qualified name icall.
19405
19406 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19407
19408         * class.c: do not free str, since we store it in the hash table.
19409         * reflection.h: add label field to MonoILExceptionInfo.
19410         * reflection.c: handle references to more than one assembly. Handle
19411         case when there isn't a module created in the assembly.
19412
19413 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19414
19415         * class.c: Fix typo. Start refactoring of class init code.
19416
19417 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19418
19419         * appdomain.c: exit with 1 on error.
19420         * class.c: we already have the name in MonoClassField.
19421         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19422         MonoStreamHeader instead of an offset of image->raw_metadata.
19423
19424 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19425
19426         * appdomain.c (mono_init): Be even more descriptive about the error.
19427
19428 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19429
19430         * appdomain.c: give the user an informative message when corlib can't
19431         be loaded.
19432
19433 2002-02-26  Martin Baulig  <martin@gnome.org>
19434
19435         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19436         New icall to get the time zone data.
19437
19438 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19439
19440         * reflection.c: set virtual and raw size of section correctly.
19441         * threads.c: transfer domain information to newly created threads.
19442
19443 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19444
19445         * class.c: when instancing a class in a domain, load the default
19446         vaules for static fields from the constant table. Fix System.Enum to
19447         not be an enum.
19448         * icall.c: implement Object::GetType() internalcall. Implemented
19449         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19450         Fixed checking of binding flags in find_members().
19451         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19452         * reflection.c: handle enumerations when writing to the constant
19453         table. Use a different object cache for types.
19454
19455
19456 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19457
19458         * object.c (mono_object_isinst): fix for arrays
19459
19460         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19461
19462 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19463
19464         * object.c: don't use mprotect ()  and fix intern pool hash table
19465         lookup for big endian systems.
19466
19467 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19468
19469         * icall.c: change type_is_subtype_of () signature.
19470
19471 2002-02-21  Mark Crichton  <crichton@gimp.org>
19472
19473         * rand.c, rand.h: Added random number generator for
19474         System.Security.Cryptography classes.
19475
19476         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19477
19478         * icall.c: Added System.Security.Cryptography calls.
19479
19480 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19481
19482         * class.c, icall.c, metadata.c: better support for pointer types.
19483         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19484         * reflection.c: Add support for getting custom attrs for properties
19485         and simplify some code.
19486
19487 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19488
19489         * icall.c: change getToken () and add custom attribute GetBlob()helper
19490         method.
19491         * reflection.h: add custom attrs array to the reflection builder structures.
19492         * reflection.c: encode and emit custom attributes for all the relevant
19493         reflection objects. Cache fieldref and methodref tokens. Change
19494         mono_image_create_token() interface to take a MonoDynamicAssembly.
19495         More complete custom attributes decoder. Load custom attributes for
19496         Assembly, Field, Method and Constructor objects, too. Make the
19497         returned array an Attribute[] one, not object[]. Added
19498         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19499         custom attribute constructor.
19500
19501 2002-02-20  Dick Porter  <dick@ximian.com>
19502
19503         * icall.c:
19504         * rawbuffer.c:
19505         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19506         problem code out for now).
19507
19508 2002-02-19  Radek Doulik  <rodo@ximian.com>
19509
19510         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19511
19512 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19513
19514         * icall.c: register the GetCustomAttributes method.
19515         * object.c, object.h: add mono_string_new_len ().
19516         * reflection.h, reflection.c: added mono_runtime_invoke(),
19517         mono_install_runtime_invoke(). Added
19518         mono_reflection_get_custom_attrs () to load custom attributes and
19519         create the attribute objects.
19520
19521 2002-02-19  Dick Porter  <dick@ximian.com>
19522         * threads-dummy-types.c:
19523         * threads-dummy-types.h:
19524         * threads-dummy.c:
19525         * threads-dummy.h:
19526         * threads-pthread-types.c:
19527         * threads-pthread-types.h:
19528         * threads-pthread.c:
19529         * threads-pthread.h:  Deleted obsolete files
19530
19531 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19532
19533         * class.c (mono_class_vtable): runtime init the class when we
19534         allocate static class data.
19535
19536         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19537
19538         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19539         and String - but we will need generic marshalling support in the
19540         future. 
19541         (mono_init): set the domain name in a ms compatible way
19542
19543         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19544         String[].
19545
19546 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19547
19548         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19549         for sizes
19550
19551         * appdomain.c (mono_domain_unload): impl.
19552
19553 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19554
19555         * appdomain.c, object.c: fix intern pool implementation.
19556         * class.c: fix alignment code.
19557
19558 2002-02-16  Radek Doulik  <rodo@ximian.com>
19559
19560         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19561         and s2 > s1, just copy lower bytes to be compatible with little
19562         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19563         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19564
19565         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19566         force big_endian to be 1 for big endian machines 
19567         (ves_icall_iconv_new_decoder): ditto
19568
19569 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19570
19571         * socket-io.c (convert_sockopt_level_and_name): If the system
19572         doesn't define SOL_IP or SOL_TCP, get them by hand using
19573         getprotobyname() and caching the values (because this could be a
19574         slow operation).
19575         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19576         Use the appropriate struct when the system does support it. Ie,
19577         not all systems have struct ip_mreqn so use struct ip_mreq when
19578         appropriate.
19579
19580 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19581
19582         * reflection.c: handle finally clauses.
19583
19584 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19585
19586         * socket-io.c: use g_snprintf() instead of snprintf.
19587
19588 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19589
19590         * reflection.c (mono_param_get_objects): Cast second argument to
19591         mono_method_get_param_names to a const char** to silence the
19592         compiler warning.
19593
19594         * appdomain.c (mono_domain_assembly_open): Put parens around the
19595         truth statement in the for-loop.
19596
19597         * unicode.c (iconv_convert): Got rid of a compiler warning about
19598         int i being unused when the system has a new iconv.
19599         (iconv_get_length): Same.
19600
19601         * image.c (load_class_names): Cast the second argument to
19602         g_hash_table_insert() to char* to hush compiler warnings about the
19603         arg being a const.
19604         (mono_image_open): Same here.
19605
19606         * socket-io.c: Don't conditionally include sys/filio.h or
19607         sys/sockio.h here anymore since we now get them from
19608         io-layer/io-layer.h
19609         (inet_pton): If the system doesn't support inet_aton, implement
19610         using inet_addr and also #define INADDR_NONE if it isn't defined
19611         by the system.
19612
19613 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19614
19615         * metadata.c, metadata.h: added function to get packing and size info
19616         of a typedef.
19617         * reflection.h, reflection.c: handle field RVA data. Save info about
19618         the table layout if needed. Assign typedef indexes to all the types
19619         before dumping the info about them to avoid forward reference problems.
19620
19621 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19622
19623         * socket-io.c (convert_sockopt_level_and_name): ifdef
19624         SO_ACCEPTCONN because it is not defined on my system (old debian)
19625
19626 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19627
19628         * opcode.c: use stddef.h to get NULL.
19629
19630 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19631
19632         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19633         for FIONBIO, FIONREAD and SIOCATMARK.
19634         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19635         define INADDR_NONE and besides, inet_addr() is deprecated and
19636         should not be used. Use inet_pton() instead - it also has the
19637         added bonus that it can easily handle IPv6 addresses as well.
19638         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19639
19640 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19641
19642         * decimal.c: remove _MSC_VER conditional.
19643
19644 2002-02-13  Dick Porter  <dick@ximian.com>
19645
19646         * socket-io.c: 
19647         * icall.c: Internal calls for Blocking, Select, Shutdown,
19648         GetSocketOption and SetSocketOption
19649
19650 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19651
19652         * assembly.cs: better resolver: use it instead of some kludgy
19653         code.
19654
19655 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19656
19657         * reflection.c: the best way to speed-up the compiler is to avoid
19658         infinite loops.
19659
19660 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19661
19662         * class.c (mono_class_vtable): changed the object layout
19663         (obj->vtable->class). 
19664         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19665
19666 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19667
19668         * assembly.c: look for assemblies in the assembly dir, too.
19669
19670 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19671
19672         * class.c: fix thinko in mono_class_from_type().
19673
19674 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19675
19676         * exception.h, exception.c: added TypeLoadException.
19677         * object.h, object.c: added mono_array_clone ().
19678         * icall.c: handle throwOnError in AssemblyGetType().
19679         Added Array.Clone().
19680         * opcode.h, opcode.c: use a single value for the opcode val.
19681         Compile fix for non-gcc compilers.
19682
19683 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19684
19685         * opcodes.c, opcodes.h: export interesting info about opcodes.
19686
19687 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19688
19689         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19690         icalls. 
19691
19692         * class.c (class_compute_field_layout): set element_class for enums
19693         (mono_class_create_from_typedef): set element_class for normal classes
19694
19695         * icall.c (ves_icall_System_Enum_get_value): impl.
19696
19697         * class.c (mono_class_create_from_typedef): do not set valuetype
19698         flag for System.ValueType and System.Enum
19699
19700 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19701
19702         * unicode.c (iconv_convert): fix big endian problem.
19703
19704 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19705
19706         * class.c: add asserts if we are ever going to scribble over memory.
19707         * socket-io.c: not all systems have AF_IRDA defined.
19708
19709 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19710
19711         * class.c (class_compute_field_layout): do not consider static
19712         fields to compute alignment
19713
19714 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19715
19716         * appdomain.c (mono_appdomain_get): impl.
19717         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19718
19719 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19720
19721         * icall.c: ignore "file://" prefix when loading an assembly.
19722
19723 2002-01-23  Dick Porter  <dick@ximian.com>
19724
19725         * socket-io.c:
19726         * icall.c:
19727         * Makefile.am: Added socket support
19728
19729 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19730
19731         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19732         code back.  This should return the assemblies that are loaded by
19733         the runtime on behalf of an application domain. 
19734
19735         The current implementation is still broken, it just returns every
19736         assembly loaded, but until we get real applications domain this
19737         will do.
19738
19739 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19740
19741         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19742         AppDomain object.
19743
19744 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19745
19746         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19747         the mono_class_from_name lookup.
19748         (ves_icall_get_parameter_info): ditto.
19749         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19750         method.
19751         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19752
19753 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19754
19755         * class.c: load also nested classes on class init.
19756         System.ValueType instance methods gets passed boxed
19757         values, unless methods in derived classed that get a pointer to the
19758         data.
19759         * icall.c: use better name parsing code in GetType().
19760         * image.c, image.h: add mono_image_loaded ().
19761         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19762         * reflection.c, reflection.h: added mono_reflection_parse_type().
19763
19764 2002-01-22  Veronica De Santis <veron78@interfree.it>
19765
19766         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19767         * threads.c : Added the implementation of internal calls for events
19768         * threads.h : Added prototypes of internal calls for events
19769         
19770 2002-01-21  Radek Doulik  <rodo@ximian.com>
19771
19772         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19773
19774 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19775
19776         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19777         (mono_class_value_size): use min_align
19778
19779 2002-01-20  Dick Porter  <dick@ximian.com>
19780
19781         * threads.h:
19782         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19783         so it compiles on w32.
19784
19785 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19786
19787         * metadata.c (mono_type_stack_size): impl.
19788
19789         * class.c (mono_class_get_field): impl. memberref token
19790
19791 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19792
19793         * icall.h : Added the internal calls mapping for CreateMutex_internal
19794                     and ReleaseMutex_internal.
19795         * threads.h : Added the prototype of mutexes internal calls.
19796         * threads.c : Added the implementations of mutexes internal calls.
19797
19798 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19799
19800         * metaparse.h: removed unused file.
19801         * reflection.c, reflection.h: added stream_data_align () function 
19802         to align data in streams and keep stream aligned. Add support for
19803         exception support in method headers.
19804
19805 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19806
19807         * unicode.c: make iconv_convert () return the number of bytess written
19808         in the output buffer.
19809
19810 2002-01-15  Dick Porter  <dick@ximian.com>
19811         * threads.c: Make the runtime's idea of infinite timeouts coincide
19812         with the class library's
19813
19814         Fix a particularly egregious bug in mono_thread_cleanup(). That
19815         code was so utterly bogus it must have been written on a Monday.
19816
19817 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19818
19819         * reflection.h: add subtypes field to TypeBuilder.
19820         * reflection.c: encode constants for literal fields.
19821         Handle subtypes. Fix user string token (and add a zero byte)
19822         at the end.
19823         
19824 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19825
19826         * class.c (mono_class_init): bug fix: assign slot numbers for
19827         abstract methods.
19828
19829 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19830
19831         * reflection.c: don't try to output a code RVA for abstract methods.
19832         Small fixes for method header format. Output parameter info to the
19833         ParamDef table. Save method overriding info to MethodImpl table.
19834         Fix property support. Allow typedef.extends to be a type in the
19835         building assembly.
19836         * verify.c: fix off-by-one error.
19837
19838 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19839
19840         * class.c: fix mono_class_from_mono_type () for szarray types.
19841         Remove unused cache check in mono_class_from_type_spec().
19842         * icall.c: *type_from_name () functions handle simple arrays and byref.
19843         * reflection.c: handle byref and szarray types. Handle methods without
19844         body (gets P/Invoke compilation working). Handle types and fields in
19845         get_token ().
19846         * reflection.h: add rank to MonoTypeInfo.
19847
19848 2002-01-10  Dick Porter  <dick@ximian.com>
19849
19850         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19851         internal calls
19852
19853 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19854
19855         * icall.c: initialize class in type_from_handle ().
19856         Loop also in parent classes for get_method ().
19857         * reflection.c: properly encode class and valuetype types.
19858         Start on encoding TypeBuilder types. Handle fieldrefs.
19859         Use correct length when registering a user string.
19860         Handle ConstructorBuilder and MonoMethod in get_token ().
19861         Make mono_type_get_object () aware of cached types.
19862         * object.c: back out change to mono_string_new ().
19863
19864 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19865         * object.c: mono_string_new should return a NULL when the string 
19866         passed in is NULL -- not try to deference it.
19867         
19868 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19869
19870         * icall.c: hack to make IsSubType work for TypeBuilders.
19871         * reflection.c: emit constructors before methods.
19872         Retrieve param names in mono_param_get_objects().
19873
19874 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19875
19876         * Makefile.am: fix list of headers and sources so automake 1.5
19877         doesn't complain. Removed \# at end of list.
19878
19879 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19880
19881         * reflection.c: get token for a method ref. Set return type of
19882         constructor to void.
19883         * loader.c: debug message.
19884         * class.c: typo fix.
19885
19886 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19887
19888         * icall.c: fix array init with rank > 1. FindMembers
19889         loops in parent class as well.
19890         * image.c: do not insert nested types in name cache.
19891         * reflection.c: warning fix.
19892         * reflection.h: add override method (for interface impl).
19893
19894 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19895
19896         * metadata.c: fix customattr decoding.
19897
19898 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19899
19900         * rawbuffer.cs: Added native Win32 implementation, avoids using
19901         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19902
19903 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19904
19905         * class.c: make the low-level routines handle the cache.
19906
19907 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19908
19909         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19910
19911 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19912
19913         * class.c: fix mono_array_element_size() for objects.
19914         * class.h, class.c: add properties to MonoClass and load them
19915         at init time.
19916         * icall.c: check with isinst() when assigning a value to an array
19917         instead of requiring the classes to match exactly.
19918         Implemented icall for System.Type::GetType().
19919         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19920         enums. Handle bindingflags when looking for methods and fields.
19921         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19922         and mono_metadata_methods_from_property().
19923         * reflection.h, reflection.c: added structures for propreties,
19924         parameters and enums. Implemented mono_property_get_object() and
19925         mono_param_get_objects().
19926
19927 2001-12-18  Dick Porter  <dick@ximian.com>
19928
19929         * file-io.c: Use mono_string_to_utf16() instead of
19930         mono_string_chars()
19931
19932         * object.c: Added mono_string_to_utf16(), which copies the non
19933         NULL-terminated MonoString into a new double-null-terminated
19934         buffer.
19935
19936 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
19937
19938         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
19939
19940 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
19941
19942         * file-io.c: raise exceptions if handle is invalid.
19943
19944 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
19945
19946         * assembly.c: yet another check for mscorlib.
19947         * class.c, class.h: load nesting info for classes.
19948         * icall.c: many new functions to support the Reflection classes.
19949         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
19950         * reflection.h, reflection.c: mono_image_create_token(),
19951         mono_assembly_get_object(), mono_type_get_object(),
19952         mono_method_get_object(), mono_field_get_object(): methods to return
19953         objects that parallel the C representation of assemblies, types,
19954         methods, fields.
19955
19956 2001-12-11  Dick Porter  <dick@ximian.com>
19957
19958         * icall.c:
19959         * file-io.c: Internal calls for file IO.
19960
19961 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
19962
19963         * tabledefs.h: missing FileAttributes.
19964         * verify.h, verify.c: use is_valid_string () to simplify and check for
19965         valid strings more correctly. Fix warnings and speeling.
19966         Check more tables: Filed, File, ModuleRef, StandAloneSig.
19967         Check code: branches, maxstack, method calls.
19968
19969 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
19970
19971         * object.c (mono_object_allocate): removed static, so that the jit
19972         can allocate value types.
19973
19974         * icall.c (ves_icall_System_DateTime_GetNow): impl.
19975
19976 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19977
19978         * class.c: init enum types right away and register the
19979         token->MonoClass map in mono_class_create_from_typedef ().
19980         * verify.h, verify.c: first cut of the verifier.
19981         * pedump.c: add --verify switch to verify metadata tables.
19982         * tabledefs.h: add some missing enums.
19983
19984 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
19985
19986         * class.c (mono_install_runtime_class_init): impl.
19987         (mono_class_init): renamed mono_class_metadata_init to
19988         mono_class_init, also removed the metadata_inited flag
19989
19990         * object.c (mono_object_isinst): use faster algorithm
19991
19992 2001-11-30  Radek Doulik  <rodo@ximian.com>
19993
19994         * mono-endian.h: reverted last change
19995         added function prototypes
19996
19997         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
19998         add mono-endian.c back
19999
20000         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20001         for unaligned access, I've mistaked it with endianess. I am
20002         sorry.
20003         (mono_read16): fix reverted endianess
20004         (mono_read64): ditto
20005         (mono_read32): ditto
20006
20007 2001-11-30  Dick Porter  <dick@ximian.com>
20008
20009         * exception.c: Implement mono_exception_from_name()
20010
20011 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20012
20013         * metadata.h, metadata.c: remove params_size and locals_size and their
20014         calculation from the metadata code: they are only usefult to the
20015         interp.
20016
20017 2001-11-29  Radek Doulik  <rodo@ximian.com>
20018
20019         * object.c (mono_ldstr): swap bytes here, it's probably not the
20020         best place, but works for me now, I'll redo it once I know mono
20021         better, also note that I add PROT_WRITE and don't reset back, also
20022         note that it's only affects big endians, so x86 should be OK
20023
20024         * mono-endian.h (read16): use just glib macros for both endians
20025
20026         * mono-endian.c: removed as glib macros are used in in
20027         mono-endian.h so we don't need to care about endianess for read
20028         macros as glib does that for us already
20029
20030 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20031
20032         * class.h, class.h: take minimum alignment into consideration so
20033         that the fields of a class remain aligned also when in an array.
20034
20035 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20036
20037         * loader.h, loader.c: add mono_method_get_param_names().
20038         * class.c: 0-init class fields.
20039
20040 2001-11-26  Dick Porter  <dick@ximian.com>
20041
20042         * icall.c:
20043         * threads-types.h:
20044         * threads.c: New file that handles System.Threading on all platforms
20045
20046         * object.c: 
20047         * object.h: Remove the synchronisation struct from MonoObject,
20048         replace it with a pointer that gets initialised on demand
20049
20050         * Makefile.am: Replace all the system-specific threading code with
20051         a single file that uses the new wrapper library
20052
20053 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20054
20055         * class.c, class.h: add mono_install_trampoline() so that the runtime
20056         can register a function to create a trampoline: removes the ugly
20057         requirement that a runtime needed to export arch_create_jit_trampoline.
20058         * object.h, object.c: added mono_install_handler() so that the runtime
20059         can install an handler for exceptions generated in C code (with
20060         mono_raise_exception()). Added C struct for System.Delegate.
20061         * pedump.c: removed arch_create_jit_trampoline.
20062         * reflection.c: some cleanups to allow registering user strings and
20063         later getting a token for methodrefs and fieldrefs before the assembly
20064         is built.
20065         * row-indexes.h: updates and fixes from the new ECMA specs.
20066
20067 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20068
20069         * class.h, class.c: add enum_basetype field to MonoClass.
20070         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20071         to get index in the constant table reated to a field, param or
20072         property.
20073         * reflection.h, reflection.c: handle constructors. Set public-key and
20074         version number of the built assembly to 0.
20075         * row-indexes.h: update from new ECMA spec.
20076
20077 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20078
20079         * class.h, class.c: add a max_interface_id to MonoClass.
20080         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20081         since it's used to do that. Added mono_type_type_from_obj().
20082         Make GetType() return NULL instead of segfaulting if the type was not
20083         found. Handle simple arrays in assQualifiedName.
20084         * object.h: add a struct to represent an Exception.
20085         * reflection.c: output call convention in method signature.
20086         Add code to support P/Invoke methods and fixed offsets for fields.
20087
20088 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20089
20090         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20091         the value.
20092         * icall.c: use mono_array_addr instead of array->vector: fixes the
20093         reflection image writing.
20094         * reflection.c: init call convention byte to 0 in method signature.
20095         Encode the property signature. Don't output property-related methods
20096         twice. Really process the properties for a type (don't cast a field to
20097         a property, my mom always told me that).
20098         Fix 64 bit issues in pointer alignment in a different and more
20099         readable way.
20100
20101 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20102
20103         * loader.h: Removed type class from MonoDefaults, added monotype
20104
20105         * loader.c: Loaded MonoType, removed loading of Type
20106
20107         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20108         and fills in System.Type._impl with a RuntimeTypeHandle rather
20109         than the actual MonoClass *
20110
20111         (ves_icall_type_from_handle): change from type_class to
20112         monotype_class
20113
20114         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20115         implemented
20116
20117         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20118         implemented
20119
20120         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20121
20122         (ves_icall_System_Reflection_Assembly_GetType): implemented
20123
20124         (ves_icall_System_MonoType_assQualifiedName): implemented
20125
20126         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20127
20128 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20129
20130         * assembly.c (mono_assembly_open): Implement a cache for the
20131         assemblies. 
20132
20133         (mono_assembly_close): only destroy the assembly when the last
20134         reference is gone.
20135         
20136 2001-11-09  Dick Porter  <dick@ximian.com>
20137
20138         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20139
20140 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20141
20142         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20143
20144 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20145
20146         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20147         from Martin Weindel.
20148         * object.h: add mono_string_chars ().
20149
20150 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20151
20152         * reflection.c (build_compressed_metadata): Eliminates warnings
20153         and uses 64-bit clean code.
20154
20155         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20156         (mono_type_equal): Change signature to eliminate warnings.
20157
20158 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20159
20160         * icall.c, loader.c: remove the internalcall array constructors.
20161         Changes to match the new MonoArray structure.
20162         * object.h, object.c: an array object doesn't allocate an extra
20163         vector. Add mono_array_new_full () to create jagged arrays easily.
20164
20165 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20166
20167         * metadata.h, metadata.c: add mono_metadata_field_info () to
20168         retreive all the info about a field from vairous tables.
20169         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20170         * class.h, class.c: augment MonoClassField with more info.
20171         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20172         policy and load a field's RVA if needed.
20173
20174 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20175
20176         * class.c (mono_class_metadata_init): create a trampoline for all
20177         virtual functions instead of actually compiling them.
20178
20179 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20180
20181         * class.h, class.c: include name in MonoClassField.
20182         * class.c: fix fundamental type of System.Object and System.String.
20183         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20184         tokens in ldtoken.
20185         * icall.c: remove internalcalls for the Reflection stuff that is now
20186         done in C# code.
20187         * loader.c: mono_field_from_memberref () implementation.
20188         * mono-endian.c: thinko (s/struct/union/g).
20189         * object.c, object.h: make the mono_string_* prototypes actually use
20190         MonoString instead of MonoObject.
20191         * reflection.c, reflection.h: updates for changes in the reflection
20192         code in corlib: we use C structures that map to the actual C# classes.
20193         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20194         fat method header if needed and use the info from the ILGenerator for
20195         methods. Handle fields in types. Misc fixes.
20196
20197 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20198
20199         * class.c (mono_class_metadata_init): bug fix: always allocate
20200         space for static class data
20201
20202 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20203
20204         * class.c (mono_compute_relative_numbering): use relative
20205         numbering to support fast runtime type checks.
20206
20207 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20208
20209         * class.c (mono_class_create_from_typeref): added debugging output
20210         to print class name when MonoDummy is returned instead of real class
20211
20212 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20213
20214         * class.c (mono_class_metadata_init): interface offset table now
20215         contains pointers into the vtable - this is more efficient for the jit
20216
20217 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20218
20219         * class.c (mono_class_metadata_init): use a temporary vtable (the
20220         old algorithm only worked for the interpreter, but not for the jit)
20221
20222 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20223
20224         * loader.c (method_from_memberref): use mono_class_get to get the
20225         class of an array instead of using System.Array directly.
20226         (mono_get_method): also add MEMBERREF methods to the method cache
20227         which usefull for arrays.
20228
20229 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20230
20231         * pedump.c (arch_compile_method): added to compute vtable entry
20232
20233         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20234         number of interfaces.
20235         
20236         * class.h: merged MonoArrayClass into MonoClass
20237
20238         * class.c (mono_class_create_from_typedef): compute the vtable size and
20239         allocate space to include the vtable inside MonoClass
20240         (mono_class_metadata_init): initialize the vtable
20241
20242 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20243
20244         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20245         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20246         * image.c: endian fixes by Laurent Rioux.
20247         * object.h, object.c: rename MonoStringObject to MonoString and
20248         MonoArrayObject to MonoArray. Change some function names to conform to
20249         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20250         guint16* as first argument, so don't use char*.
20251         Provide macros to do the interesting things on arrays in a portable way.
20252         * threads-pthread.c: updates for the API changes and #include <sched.h>
20253         (required for sched_yield()).
20254         * icall.c: updates for the API changes above.
20255         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20256         platforms that need them.
20257
20258 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20259
20260         * class.c: set the correct type for all the fundamental
20261         type when loading the class.
20262
20263 2001-10-05  Dick Porter  <dick@ximian.com>
20264
20265         * threads-pthread.c (pthread_mutex_timedlock): Simple
20266         compatibility version for C libraries that lack this call.
20267
20268 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20269
20270         * class.c: MonoTypes stored in MonoClass are stored as
20271         fundamental MonoTypes when the class represents a
20272         fundamental type (System.Int32, ...).
20273         The TypeHandle return by ldtoken is a MonoType*.
20274         * icall.c: ves_icall_get_data_chunk () write out all the
20275         PE/COFF stuff. Implement ves_icall_define_method (),
20276         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20277         * image.c: properly skip unknown streams.
20278         * loader.h, loader.c: add type_class to mono_defaults.
20279         * metadata.c, metadata.h: export compute_size () as
20280         mono_metadata_compute_size () with a better interface.
20281         Typo and C&P fixes.
20282         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20283         * reflection.c, reflection.h: many cleanups, fixes, output method
20284         signatures and headers, typedef and typeref info, compress the metadata
20285         tables, output all the heap streams, cli header etc.
20286         * row-indexes.h: typo fixes.
20287
20288 2001-10-04  Dick Porter  <dick@ximian.com>
20289
20290         * object.h: Add a synchronisation mutex struct to MonoObject
20291
20292         * object.c (mono_new_object): Initialise the object
20293         synchronisation mutexes
20294
20295         * icall.c: System.Threading.Monitor internal calls
20296         
20297         * threads-pthread.h:
20298         * threads-pthread.c: System.Threading.Monitor internal calls
20299
20300         * threads-types.h: New file, includes the system-specific thread
20301         structures
20302         
20303         * threads-pthread-types.h:
20304         * threads-pthread-types.c: New files, handle pthread-specific
20305         synchronisation types
20306
20307         * threads-dummy-types.h: 
20308         * threads-dummy-types.c: New files of dummy support for
20309         thread-specific types
20310
20311         * metadata.c:
20312         * image.c:
20313         * pedump.c: include mono-endian.h not endian.h
20314         
20315         * Makefile.am: More threads files.
20316         Name mono-endian.h not endian.h
20317
20318 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20319
20320         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20321         stuff and implement a few more bits.
20322         * icall.c: a field needs to be dereferenced twice. Do not use the same
20323         name for two variables in the same scope.
20324         * image.c, image.h: cleanups.
20325
20326 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20327
20328         * class.c (mono_class_metadata_init): bug fix: compute the right size
20329
20330 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20331
20332         * icall.c: implemented some of the Reflection internalcalls.
20333         * image.c, image.h: start writing out the PE/COFF image.
20334         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20335         that does the reverse than decode_blob_size ().
20336         * object.c: use mono_metadata_encode_value (). Move here
20337         temporary implementation of mono_string_to_utf8 ().
20338         * rawbuffer.c: make malloc_map static.
20339
20340 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20341
20342         * metadata.c: fix type comparison for arrays.
20343         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20344         Added a couple of new classes to monodefaults.
20345         * icall.c: added a couple of Reflection-related internalcalls.
20346         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20347         Added a byval_arg MonoType to MonoClass.
20348
20349 2001-09-28  Dick Porter  <dick@ximian.com>
20350
20351         * icall.c:
20352         * threads-pthread.h: 
20353         * threads-pthread.c: Implemented internal calls for
20354         LocalDataStoreSlot operations.  Applied mutexes around all shared
20355         data.  Reworked the thread creation and Start() operations to
20356         avoid a race condition.
20357         
20358         * threads-dummy.h:
20359         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20360
20361 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20362
20363         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20364
20365 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20366
20367         * class.c, loader.c: warn and return NULL instead of erroring out.
20368         * icall.c: added System.AppDomain::getCurDomain().
20369         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20370
20371 2001-09-25  Dick Porter  <dick@ximian.com>
20372
20373         * threads-pthread.h:
20374         * threads-pthread.c: Implemented timed thread joining and added
20375         System.Threading.Thread::Join_internal internal call
20376
20377         * icall.c: Added System.Threading.Thread::Join_internal internal call
20378
20379         * threads-dummy.h:
20380         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20381
20382 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20383
20384         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20385         mono_string_intern () to implement the semantics of the ldstr opcode
20386         and the interning of System.Strings.
20387         * icall.c: provide hooks to make String::IsIntern and String::Intern
20388         internalcalls.
20389
20390 2001-09-23  Dick Porter  <dick@ximian.com>
20391
20392         * threads-dummy.c: 
20393         * threads-dummy.h: New files of dummy threading routines
20394
20395         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20396         support code based on system specifics
20397
20398         Rename PTHREAD_LIBS to THREAD_LIBS
20399         
20400 2001-09-23  Dick Porter  <dick@ximian.com>
20401
20402         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20403         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20404         internal calls.
20405         (mono_thread_init): Set up a Thread object instance to return when
20406         the main thread calls Thread.CurrentThread
20407         (mono_thread_cleanup): Wait for all subthreads to exit
20408
20409         * icall.c: New internal calls for System.Threading.Thread::Sleep
20410         (including Schedule) and CurrentThread
20411
20412         * threads.h: New file, to insulate thread-specific stuff from the
20413         rest of the code
20414
20415 2001-09-21  Dick Porter  <dick@ximian.com>
20416
20417         * threads-pthread.h: 
20418         * threads-pthread.c: New file, for handling pthreads-style
20419         threading support.  Start() now starts a new thread and executes
20420         the ThreadStart delegate instance.
20421
20422         * icall.c: Added the internalcall for
20423         System.Threading.Thread::Start_internal
20424
20425         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20426
20427 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20428
20429         * loader.c: work around the different signatures for delegates
20430         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20431
20432 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20433
20434         * class.h, class.c: add mono_class_get_field_from_name ().
20435         * *: Fix C comments and other ANSI C issues.
20436
20437 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20438
20439         * endian.h, assembly.c: fix some endianness issues.
20440
20441 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20442
20443         * loader.h, load.c: add delegate_class to mono_defaults.
20444         Handle runtime provided methods in mono_get_method ().
20445
20446 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20447
20448         * loader.c (mono_get_method): use pinvoke for internal call
20449
20450         * icall.c: use pinvoke for internal call
20451
20452         * loader.c (method_from_memberref): set the method name
20453
20454 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20455
20456         * metadata.c: help the compiler generate better code for
20457         mono_class_from_mono_type ().
20458
20459 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20460
20461         * class.c (mono_class_metadata_init): delayed computing of the
20462         class size to mono_class_metadata_init ()
20463
20464 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20465
20466         * class.c, class.h: add an interfaces member to MonoClass.
20467         * image.c, image.h: add assembly_name field to MonoImage
20468         from the assembly table.
20469         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20470
20471 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20472
20473         * class.c: Handle Array in mono_class_from_mono_type ().
20474         * metadata.c, pedump.c: some endian fixes.
20475
20476 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20477
20478         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20479         * metadata.c: fix small problem introduced with the latest commit.
20480
20481 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20482
20483         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20484         We don't need a MonoMetadata pointer anymore to compare signatures in
20485         mono_metadata_signature_equal (), update callers.
20486         Reduced memory usage an number of allocations for MonoMethodHeader and
20487         MonoMethodSignature.
20488
20489 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20490
20491         * metadata.c: added compare for szarray.
20492
20493 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20494
20495         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20496         and add a couple more types to it and mono_defaults. Give an hint on
20497         classes that need implementing in our corlib and are referenced
20498         in mscorlib.
20499
20500 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20501
20502         * class.h, class.c: keep track if a class is also an Enum.
20503         * loader.c: Implement a couple more types for use in libffi
20504         marshalling. Gives better diagnostics when failing to dlopen
20505         a library. Set method->klass for P/Invoke methods, too.
20506
20507 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20508
20509         * class.c, class.h: add a MonoType this_arg to MonoClass that
20510         represents a pointer to an object of the class' type that
20511         can be used by the interpreter and later the type cache.
20512         Add best guess alignment info for valuetype objects.
20513
20514 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20515
20516         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20517         into MonoType: one less level of indirection and allocation and
20518         simplifies quite a bit of code. Added cache for MonoTypes that are
20519         used frequently, so that we don't need to allocate them all the time.
20520
20521 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20522
20523         * class.c (mono_class_create_from_typedef): System.Enum is also a
20524         value type, although it does not derive from System.ValueType
20525         (maybe a bug in the ms compiler?)
20526
20527         * metadata.c (mono_type_size): return the right size for value types
20528
20529         * loader.c (mono_get_method): only initialize method header if not abstract
20530
20531         * class.c (mono_class_from_mono_type): use mono_default values. 
20532
20533 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20534
20535         * *: use MonoClass pointers instead of <type_tokens>
20536         
20537         * class.h: new flag: metadata_inited.
20538
20539         * class.c (mono_class_metadata_init): impl.
20540         (mono_class_instance_size): impl.
20541         (mono_class_data_size): impl.
20542
20543 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20544
20545         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20546         MonoClass now has the name and name_space fields. 
20547         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20548         mono_get_method () takes and optional MonoClass as argument.
20549         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20550         instead that takes advantage of a map from class names to typedef
20551         tokens in MonoImage.
20552
20553 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20554
20555         * metadata.c: zero is not a valid alignment boundary.
20556         Merge MONO_TYPE_VOID in default decoding code.
20557
20558 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20559
20560         * image.h: merged MonoMetadata into MonoImage
20561
20562         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20563         identify the type of elements.
20564
20565 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20566
20567         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20568         * cil-coff.h: split MonoMSDOSHeader and add size info.
20569         * image.c: add some consistency checks.
20570         * metadata.c: fix row size computation: one programmer
20571         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20572         add explanation for the locator routine.
20573         Fix decoding of size in method header.
20574         
20575 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20576
20577         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20578         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20579         function from gnome-libs.  This uses the right path separator
20580         based on the OS, and also works around a bug in some systems where
20581         a double slash is not allowed. 
20582         (default_assembly_name_resolver): Use g_concat_dir_and_file
20583         (mono_assembly_open): ditto.
20584
20585 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20586
20587         * metadata.c (mono_metadata_signature_equal): impl.
20588
20589         * *: void is now a realy MonoType (instead of using NULL)
20590         
20591         * metadata.c (do_mono_metadata_parse_type): use
20592         mono_metadata_parse_type to parse void value.
20593
20594 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20595
20596         * metadata.c, metadata.h: in the signature and method header store
20597         only the space required for holding the loca vars and incoming arguments.
20598
20599 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20600
20601         * metadata.c (do_mono_metadata_parse_type): treat void like any
20602         other type (instead of assigning NULL);
20603
20604 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20605
20606         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20607
20608 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20609
20610         * image.c (do_mono_image_open): added a cache for arrays.
20611
20612 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20613
20614         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20615         decode a single column from a row in a metadata table and changes
20616         to take advantage of it in the typedef locator (gives a nice speed up).
20617         Store offset info for function params.
20618
20619 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20620
20621         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20622
20623 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20624
20625         * assembly.c: how could mono_assembly_close () had ever worked?
20626         * metadata.c, metadata.h: provide offset info for local vars.
20627         Implement mono_type_size () to take care of alignment as well
20628         as size (it was mono_field_type_size in cli/class.c before).
20629
20630 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20631
20632         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20633
20634         * assembly.h (CORLIB_NAME): set to corlib.dll
20635
20636         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20637
20638 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20639
20640         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20641         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20642         tokentype.h: massive namespace cleanup.
20643
20644 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20645
20646         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20647
20648 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20649
20650         * metadata.c (mono_metadata_free_type): added check for type !=
20651         NULL (void) before calling mono_metadata_free_type()
20652
20653 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20654
20655         * metadata.h, row_indexes.h: added header with enumerations to use
20656         to index in the columns from tables in metadata and to decode coded
20657         tokens: we should start using this instead of embedding magic numbers
20658         all over the code.
20659
20660 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20661
20662         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20663         Move metadata_t info from cli_image_info_t to MonoImage, where
20664         it's easily accessible. Changed all the uses accordingly.
20665         Added the method and class caches to MonoImage.
20666         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20667         and mono_metadata_decode_value () signature to be more consistent
20668         with the other parse functions (and simplify code). Taken advantage
20669         of zero-length array allocation with GCC. Removed reduntant (and
20670         wrong) MonoFieldType struct and use MonoParam instead. Changed
20671         mono_metadata_parse_field_type () to use common code for parsing.
20672         Added mono_metadata_typedef_from_field () and
20673         mono_metadata_typedef_from_method () to lookup a typedef index from a
20674         field or method token.
20675         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20676
20677 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20678
20679         * metadata.c (mono_metadata_parse_field_type): Implement. 
20680         (do_mono_metadata_parse_type): Split engine from
20681         mono_metadata_parse_type, so that we can create smaller structures
20682         for things that just have one pointer to the MonoType (look at
20683         the MonoFieldType)
20684
20685 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20686
20687         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20688         as Jan Gray found out, it is incorrect. 
20689
20690 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20691
20692         * assembly.c: Implement asssembly loading.  This loads an image
20693         and loads all the referenced assemblies.  Come to think of it, we
20694         could always do lazy loading of the assemblies. 
20695
20696         * image.c (mono_image_open): Keep loaded images in a hashtable.
20697
20698         * image.h (MonoImage): Add reference count.
20699
20700 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20701
20702         * assembly.c (mono_assembly_open): Keep track of the file name in
20703         case the assembly has no ASSEMBLY table.
20704
20705         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20706         from get.c here.
20707
20708 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20709
20710         * metadata.c, metadata.h: decode local vars in method header
20711         parse function. Change callers accordingly.
20712
20713 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20714
20715         * metadata.h, cil-coff.h: protect against multiple inclusion.
20716         Added some new structures to hold information decoded from metadata:
20717         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20718         and relevant decoding/free functions.
20719         * metadata.c: implement decoding functions. Add warning for out of bounds
20720         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20721         all the info about a method signature and invocation. Remove check on
20722         uninitialized local var in parse_mh() and fix memory leak.
20723
20724 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20725
20726         * metadata.h: More macros.
20727
20728         * tokentype.h: New file.
20729
20730 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20731
20732         * assembly.c: added a consistency check and initialize
20733         some structures with g_new0().
20734         * metadata.c: fixed a couple more bugs in table size computation
20735         and add other checks for out-of bound access to metadata.
20736
20737 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20738
20739         * metatada.c: fix bugs computing table sizes. Spew a
20740         warning when index in string heap is out of bounds.
20741
20742 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20743
20744         * metadata.h: Add a couple of macros to manipulate tokens. 
20745
20746 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20747
20748         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20749         cli_section_tables).
20750
20751 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20752
20753         * metadata.c (mono_metadata_user_string): New function, provides
20754         access to the UserString heap. 
20755
20756 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20757
20758         * metadata.c: Add inline documentation.
20759
20760 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20761
20762         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20763         files. 
20764
20765 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20766
20767         * typeattr.h: New file, TypeAttribute flags. 
20768
20769 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20770
20771         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20772         mono_assembly_ensure_section): Section loading code.
20773         (load_section_tables): Load the sections.
20774
20775         * mono/metadata/metadata.c (mono_metadata_locate_token,
20776         mono_metadata_locate): Functions to locate the information
20777         definition given a token or a table and an index.
20778         (mono_metadata_compute_table_bases): New.
20779         (compute_size): New function to compute the sizes of the various
20780         tables.
20781
20782         * mono/metadata/metadata.h: Finish listing the different index
20783         types. 
20784
20785         * mono/metadata/pedump.c: Improve to dump new information.
20786
20787 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20788
20789         * mono/metadata/metadata.c: Entered all the tables matching
20790         Beta2. 
20791
20792         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20793
20794
20795